Adding first APK build

This commit is contained in:
ml
2026-07-20 09:45:08 +02:00
parent 8712269b51
commit 9e2c9ffbe6
42 changed files with 10012 additions and 6 deletions
+35 -3
View File
@@ -23,7 +23,13 @@ a cross-platform port of the original game.
- `Makefile` - assembles `dist/`, a self-contained runnable copy of the
game, out of the compiled engine and the extracted assets. Also builds
`dist/questshock-<version>-linux-<arch>.tar.gz`, a redistributable
package that omits the proprietary game assets (`make package`).
package that omits the proprietary game assets (`make package`), and
`dist/questshock-debug.apk` for the Quest (`make apk`).
- `android/` - the Quest app (Java `SDLActivity` glue, Gradle project).
`android/engine-patches/` holds the one small patch needed to build
`engine/` as an Android shared library instead of a desktop executable
- applied to a scratch copy at build time; `engine/` itself is never
modified.
## Building
@@ -72,11 +78,37 @@ package on every push, using the build-image as its container (so no
extra setup is needed in CI beyond the image itself), and publishes the
resulting tarball to dl.ladkau.de.
## Playing on Meta Quest
`make apk` builds `dist/questshock-debug.apk` - a plain (non-VR) Android
app that runs as a flat, floating panel in the Quest's Home environment,
same as any other sideloaded Android app. It's not a head-tracked 6DoF VR
port (that's a much larger, separate undertaking); play with a Bluetooth
mouse/keyboard connected to the headset.
1. Install the APK with [SideQuest](https://sidequestvr.com/) (or `adb
install`).
2. Launch it once. It'll ask for storage permission, then create
`/sdcard/questshock/` and extract its own bundled files (shaders, a
default MIDI soundfont) there - `res/data/` and `res/sound/` are
deliberately left missing, since that's the proprietary game data.
3. With the Quest connected to a PC, use SideQuest's file browser (or any
MTP file manager) to copy your own `res/data/` and `res/sound/` (see
`/sdcard/questshock/GET_ASSETS_QUEST.txt`, extracted in step 2, for
exactly what's needed and where it comes from) into
`/sdcard/questshock/res/`.
4. Launch it again.
## License
The original tooling in this repository (the Docker build image, build
scripts, Makefile, and asset extraction script) is licensed under the
[MIT License](LICENSE).
scripts, Makefile, asset extraction script, and the Quest app in
`android/` - aside from `org/libsdl/app/`, see below) is licensed under
the [MIT License](LICENSE).
`android/app/src/main/java/org/libsdl/app/` is copied from
[SDL2](https://www.libsdl.org/)'s own android-project template and is
zlib-licensed, same as SDL2 itself.
The vendored engine snapshot in `engine/` is
[Shockolate](https://github.com/Interrupt/systemshock), which is licensed