Gameplay

What GalaxyEggbertCNA actually does today, and what mobile-eggbert requires it to do eventually.

Read this first 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

  1. The game loads worlds3d/world001.vwr and renders its terrain.
  2. An invisible GEBlupiController spawns at (0, 1, 0).
  3. Arrow keys move it on X/Z; Space jumps when grounded; gravity and 1-block step-up traversal apply.
  4. The camera follows the controller's position.
  5. Nothing else happens: no damage, no win/lose condition, no HUD, no sound.

GEBlupiController Physics Constants

ConstantValue
kMoveSpeed5.5 units/s
kJumpSpeed12.0 units/s
kGravity25.0 units/s²
kFallLimit−10.0 units/s (terminal fall velocity clamp)
kStepLimit1.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)

ObjectTypeName
5Treasure
6Extra-life egg
7Level-exit goal marker
21Secret-level exit marker
49 / 50 / 51Key 1 / 2 / 3 (map to DoorKeyFlags)
25Shield (100-tick invincibility)
30Drink power-up
31Charge/cloud power-up (100 ticks)

Enemies (ObjectType)

ObjectTypeNameBehavior
2, 3Horizontal patrol enemiesLinear patrol
96, 97Follow-enemy variants97 tracks Blupi exactly
16SpiderPatrol
17FishPatrol (water)
20BirdPatrol
32 / 33Blupih / Blupit tankFires projectiles (ObjectType23) on turn
44Wasp/beeFast patrol
54Large creatureDestroys helicopter on contact

Hazard Tiles (animated in CNA terrain today, but not yet damaging)

TileFrames
Lava8
Spike16
Crusher10
Saw6

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)

PhaseMeaning
InitGamer-select / main menu
PlayActive gameplay
PausePause overlay
Win / LostLevel complete / game over
MainSetup / PlaySetupSettings 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.