Gameplay
What GalaxyEggbertCNA actually does today, and what mobile-eggbert requires it to do eventually.
GalaxyEggbertCNA currently has no real gameplay — no hazards,
no enemies, no pickups, no exit condition, no lives, no score. What exists is terrain
rendering and an invisible, collision-only player controller. Everything below the "Today"
section describes mobile-eggbert's actual mechanics as the fidelity target CNA must eventually
reach — per the project rule that Galaxy Eggbert may not invent mechanics beyond mobile-eggbert.
Today: What Runs
- The game loads
worlds3d/world001.vwrand renders its terrain. - An invisible
GEBlupiControllerspawns at(0, 1, 0). - Arrow keys move it on X/Z; Space jumps when grounded; gravity and 1-block step-up traversal apply.
- The camera follows the controller's position.
- Nothing else happens: no damage, no win/lose condition, no HUD, no sound.
GEBlupiController Physics Constants
| Constant | Value |
|---|---|
kMoveSpeed | 5.5 units/s |
kJumpSpeed | 12.0 units/s |
kGravity | 25.0 units/s² |
kFallLimit | −10.0 units/s (terminal fall velocity clamp) |
kStepLimit | 1.0 unit (max step-up height) |
These constants match GalaxyEggbertSimple3D's equivalent controller.
The Faithful-Remake Rule
From CLAUDE.md: "Galaxy Eggbert is a faithful 3D remake of mobile-eggbert.
Nothing more." Before any feature is implemented or suggested, it must first be verified
to exist in mobile-eggbert.
Explicitly forbidden (do not exist in mobile-eggbert): coins/mince, time bonuses or star ratings, coyote time, wall jump, double jump, combo multipliers, or any other invented mechanic.
Allowed 3D adaptations (natural technical consequences of 3D, not new gameplay): perspective camera, billboard sprites, shadows, step-up traversal.
The Eventual Target: mobile-eggbert's Mechanics
These are ported (or planned to be ported) from mobile-eggbert exactly — icons and IDs are frozen, not renumbered.
Collectibles (ObjectType)
| ObjectType | Name |
|---|---|
| 5 | Treasure |
| 6 | Extra-life egg |
| 7 | Level-exit goal marker |
| 21 | Secret-level exit marker |
| 49 / 50 / 51 | Key 1 / 2 / 3 (map to DoorKeyFlags) |
| 25 | Shield (100-tick invincibility) |
| 30 | Drink power-up |
| 31 | Charge/cloud power-up (100 ticks) |
Enemies (ObjectType)
| ObjectType | Name | Behavior |
|---|---|---|
| 2, 3 | Horizontal patrol enemies | Linear patrol |
| 96, 97 | Follow-enemy variants | 97 tracks Blupi exactly |
| 16 | Spider | Patrol |
| 17 | Fish | Patrol (water) |
| 20 | Bird | Patrol |
| 32 / 33 | Blupih / Blupit tank | Fires projectiles (ObjectType23) on turn |
| 44 | Wasp/bee | Fast patrol |
| 54 | Large creature | Destroys helicopter on contact |
Hazard Tiles (animated in CNA terrain today, but not yet damaging)
| Tile | Frames |
|---|---|
| Lava | 8 |
| Spike | 16 |
| Crusher | 10 |
| Saw | 6 |
These tiles already animate correctly in GETerrainRenderer (6 fps, matching
mobile-eggbert), but touching them currently has no gameplay effect — hazard damage is not wired up.
Game Phases (GamePhase — defined, not yet dispatched by CNA)
| Phase | Meaning |
|---|---|
| Init | Gamer-select / main menu |
| Play | Active gameplay |
| Pause | Pause overlay |
| Win / Lost | Level complete / game over |
| MainSetup / PlaySetup | Settings screens |
Roadmap
The E3D-MIG task list (plan.md) sequences remaining gameplay work roughly as:
billboard rendering for Blupi and objects → gameplay porting (pickups, hazards, enemy stomp,
respawn invincibility, exit gate) → sound → HUD → save/load. See
Known Issues for the full list.