Set up a project
Check the Zig toolchain, create a project from Eggy's template, and open its editor.
Build and distribute a game
Build a standalone runtime, select its startup scene, and export the directory or ZIP
Read player input
Read keyboard, mouse, controller, or touch state from app.input in a game or
Map player controls
Give gameplay actions names such as jump, move, and look, bind them to
Control the mouse and window
Use SDL3 to lock the mouse for camera movement, capture a drag, confine or hide the
Use timers and time scaling
Add a cooldown or delay with eggy.Timer, and change how quickly gameplay time
Load assets and instantiate scenes
Load project resources through app.resources() and create scene instances through
Render entities and cameras
Create a Mesh entity and a Camera to draw a 3D scene, then move them through their
Build game UI
Add a Weeoui interface to a game with gameUi, or draw a custom interface with
Create reusable plugins
Put components, systems, and settings in a plugin that your own game or another package
Extend the editor
Add a plugin panel that edits the selected entity with undo support, then expose
Diagnose and handle errors
Decide which operations your game requires, handle specific recoverable failures, and
Save games
Use app.storage for a player's progress. Save slots are separate from project
Debug drawing and profiling
Draw gameplay diagnostics
Edit entity trees
Copy and paste
Materials and scene lights
Add Material, SceneLight and Environment through the Inspector's component menu. They are
Graphics settings
Eggy lets you and your players choose how the game is drawn: graphics backend, graphics
Draw world sprites and text
Use app.draw2d during update, an ECS update system, or editorUpdate to request