Project Sacrifice — Android vertical slice

An original landscape puzzle-platformer prototype inspired by the broad “death changes the puzzle” genre formula. It does not reuse the title, art, audio, text, characters, or level layouts of any commercial game.

Project documents:

Playable content

The APK contains ten sequential levels:

  1. movement and jumping;
  2. bodies covering a spike lane;
  3. a corpse holding a pressure plate and door;
  4. a toggle-controlled moving lift;
  5. a saw launching a corpse onto a remote plate;
  6. a frozen corpse becoming a stable step;
  7. an electrified corpse completing a relay;
  8. a timed switch and moving platform;
  9. a two-signal door requiring weight and electricity;
  10. a mastery level combining saw, freeze, electricity, pressure plate, pit, moving lift, and final gate.

Death does not reset the level. A new volunteer respawns after a short delay while retained bodies stay in the simulation. The restart button deliberately clears the puzzle state. Progress, best time, and lowest volunteer count are stored locally.

Controls

  • Hold the left/right arrows to move.
  • Hold a direction and tap jump simultaneously; multitouch is supported.
  • Restart restores the current level.
  • II pauses the game and exposes level selection.
  • Settings on the level-select screen cycles three control sizes, three opacity presets, and vibration on/off. Changes persist across app restarts.

The movement constants include 130 ms coyote time and 140 ms input buffering.

Build

Requirements: JDK 17 and Android SDK Platform/Build Tools 34.

./gradlew testDebugUnitTest assembleDebug

All ten levels have device-level acceptance bots. They drive the production GameView through the same movement and jump inputs as the touch controls and run each intended solution three times. Level 8 also has a dedicated recovery scenario for an expired timer on the far side of the pit. Stage 2 additionally checks clean restart and long-term stability of the saw-delivered body on the level 10 lift plate. The final Stage 2 build passed all 16 instrumentation methods (36 gameplay executions plus lifecycle and restart) on Android 16 in a single unfiltered run. With an emulator or phone connected, run the complete matrix with:

./gradlew connectedDebugAndroidTest

The debug APK is written to app/build/outputs/apk/debug/app-debug.apk. It is signed with Android's standard debug key and can be installed with:

adb install -r app/build/outputs/apk/debug/app-debug.apk

Scope

This is a dependency-free vertical slice rendered through a custom Android Canvas view. It is intended for gameplay evaluation on phones and tablets, not as a content-complete commercial release.

S
Description
No description provided
Readme
2.1 MiB
Languages
Java 99.8%
Shell 0.2%