🐣 Mobile Eggbert

Gameplay Mechanics

Game Overview

Mobile Eggbert is a 2D side-scrolling platform game. The player controls Blupi through 78 levels organized into a tutorial plus 9 chapters. Each level is a 100×100-tile grid. The objective is to collect treasures and reach the goal exit.

Win Conditions

  • Collect all treasures in the level
  • Reach the goal exit marker

Lose Conditions

  • Fall into lava
  • Drowning (deep water with no swim power)
  • Bomb explosion
  • Run out of lives

Game Phase System

Def::Phase drives the top-level game mode. All phase transitions go through Game1::SetPhase(), which handles asset loading, InputPad reconfiguration, and fade animations.

PhaseDescription
NoneInitial / uninitialized state
FirstFirst frame after startup — triggers load sequence
WaitLoading progress screen with an artificial delay and a gauge bar
InitMain menu / gamer slot selection screen
PlayActive gameplay — Decor is updated and rendered each frame
PausePause overlay — game logic frozen
LostLevel failure screen
WinLevel completion screen
TrialDemo/trial paywall screen
MainSetupSettings opened from the main menu
PlaySetupSettings opened during gameplay (from pause)
ResumeCheckpoint continuation prompt
RankingHigh-score / ranking screen

All 12 phases are handled in Game1::Update() and Game1::Draw(). Transitions use fade-out/fade-in animations managed by Game1.

Player Animation States

Blupi has 88 named animation states defined in BlupiAction. The active state drives sprite selection via the 2911-entry Tables animation table.

Basic Movement

StateDescription
StopStanding still
MarchWalking
TurnTurning around
StopMarchStopping from a walk
JumpBeginning of jump
AirIn the air (mid-jump)
StopJumpLanding from jump
VertigoEdge vertigo ("whoops" at ledge)
TeleporteTeleporting animation

Special Animations

StateDescription
WinVictory animation
MockeryMockery/taunt animation
GluGlued / trapped
ElectroElectrocuted
BalloonStung by wasp (swelling)
HideInvisible (cloud power active)
StopEcrase / MarchEcraseFlattened state (standing / moving)

Vehicles

Five vehicles can be entered by walking over them. Each has its own set of BlupiAction states and unique physics rules.

🚁
Helicopter
Fly freely. States: StopHelico, MarchHelico, TurnHelico, HelicoGlu. ObjectType: Helico (13), BlupiHelico (32).
🚗
Jeep
Fast ground vehicle. States: StopJeep, MarchJeep, TurnJeep. ObjectType: Jeep (19).
🎯
Tank
Fires bullets. States: StopTank, MarchTank, TurnTank, FireTank. Has ammo counter (m_blupiBullet). ObjectType: Tank (28), BlupiTank (33).
🛸
Hovercraft
Hovers over ground and water. States: StopOver, MarchOver, TurnOver. ObjectType: Over (46).
🛹
Skateboard
Fast ground movement, can jump. States: StopSkate, MarchSkate, JumpSkate, TakeSkate, DeposeSkate. ObjectType: Skate (24).

Power-Ups

Active power states are tracked in the SecretPower enum and corresponding Decor fields:

Power-UpSecretPowerEffectDuration
ShieldShieldDamage protection100-tick timer (m_blupiShield)
LollipopPowerStrength boost (push heavier objects, etc.)Timer-based
CloudCloudInvisibility to enemiesTimer (m_blupiCloud)
HiddenHideHidden / invisible rendering stateTimer (m_blupiPhantom)
DrinkSpecial drinkable item effectOne-shot
ChargeCharging station interactionOne-shot
DynamiteExplosive item (counter: m_blupiDynamite)Count-based

Enemies & Hazards

ObjectTypeIDBehaviour
BombeDown2Stationary floor bomb
BombeUp3Hanging ceiling bomb
BombeMove16Moving bomb along a path
BombeFollow1/296–97Homing bomb that tracks the player
Bulldozer4Ground enemy, pushes Blupi
Oiseau20Bird, aerial patrol enemy
Guepe44Wasp — stings Blupi, causing Balloon swelling
Poisson17Fish, aquatic enemy
Tentacule53Slime tentacle rising effect
Creature54Moving slime creature

Environmental Hazards (tile-based)

  • Lava — instant kill tiles; detected by Decor::IsLave()
  • Deep water — drowning if Blupi cannot swim; Decor::IsDeepWater()
  • Electric zonesElectro object type + ElectricShake camera action
  • Pollution / toxic zonesPollution object type

Collectibles

ObjectTypeIDDescription
Tresor5Treasure — collect all to unlock the goal exit
Egg6Egg — grants an extra life
Goal7Level exit marker — active only after all treasures collected

Keys & Doors

Three coloured keys unlock corresponding coloured doors. Key state is tracked as a 3-bit bitmask in DoorKeyFlags.

Key ObjectTypeIDColourDoorKeyFlags bit
Cle21GoldGeneral key (all doors?)
Cle149RedKey1 (bit 0)
Cle250GreenKey2 (bit 1)
Cle351BlueKey3 (bit 2)

Player Input

Input is handled by InputPad. On non-touch platforms, keyboard bindings replace the touch buttons. Input is represented as two values:

  • DirectionDirection::None, Left, or Right
  • KeyPressFlags — bitmask: Jump (bit 0), Fire (bit 1), Down (bit 2)

Game Speed

The settings menu allows selecting a game speed multiplier via the GameSpeed enum:

SettingMultiplier
Slow0.5×
Normal1.0× (default)
Fast2.0×
Faster3.0×
Fastest4.0×

Camera & Shake

The camera follows Blupi with smooth scrolling. In-game events trigger camera shake via the DecorAction enum:

DecorActionValueTrigger
None0No shake
SmallShake1Minor impact (crate landing, bonus collection)
BigShake2Major impact (fan blade hit, large explosion)
ElectricShake5Electric contact