Running the Game

How to launch Galaxy Eggbert after building.

Linux

./cmake-build-u3d/GalaxyEggbert

The binary looks for assets relative to its own location. The build system copies Content/, worlds/, and U3D's Data/ and CoreData/ directories next to the executable via post-build commands in CMakeLists.txt.

Windows

Double-click build-windows\GalaxyEggbert.exe, or from PowerShell:

.\build-windows\GalaxyEggbert.exe

Web (Emscripten)

emrun cmake-build-web/GalaxyEggbert.html

Alternatively, serve cmake-build-web/ with any HTTP server and open GalaxyEggbert.html in a browser. The game will not run from file:// directly due to browser security restrictions on WebAssembly loading.

Audio Note Browsers may block audio until the user interacts with the page. If no sound plays, click the canvas once.

Required Files at Runtime

The following must be present relative to the executable:

PathSource in RepoNotes
Content/backgrounds/Content/backgrounds/Sky and menu PNGs
Content/icons/Content/icons/Sprite sheets
Content/sounds/Content/sounds/WAV audio files
worlds/worlds/Level data (.txt or .vwr)
Data/U3D build outputUrho3D shaders and resources
CoreData/U3D build outputUrho3D core shaders and models

Save File Location

On Linux and Windows, save data is stored at:

<UserDocumentsDir>/GalaxyEggbert/save.dat

On Web, save data is written to /save/.cna_isolated_storage/SpeedyBlupi inside an Emscripten IDBFS virtual filesystem backed by the browser's IndexedDB. The file is flushed on every write and on page unload.

Window Settings

These are set in GalaxyEggbertApp::Setup() (src/GalaxyEggbert/GalaxyEggbertApp.cpp:9):

SettingValue
Window titleGalaxy Eggbert
Initial size1280 × 720
Full screenNo
Log fileGalaxyEggbert.log
Resource pathsData;CoreData;Content

First-Run Behavior

  1. The engine initializes and calls GalaxyEggbertApp::Setup() to configure the window.
  2. GalaxyEggbertApp::Start() creates GalaxyEggbertGame and starts it.
  3. Save data is loaded from disk if present; otherwise defaults (3 lives, world 1) are used.
  4. World 1 is loaded: first tries worlds/world001.vwr, then worlds/world001.txt, then generates a demo world.
  5. If a demo world is generated, it is saved as worlds/world001.vwr for future runs.
  6. The game enters the Init phase (gamer-select screen).