Example applications built with the Nightshade game engine.
# run a specific example
just run alpha_blending
# interactive pickers
just pick # pick from examples/
just pick-wasm # pick from examples/, serve in browser
just pick-native # pick from examples-native/
just pick-terminal # pick from examples-terminal/, run in terminal
just pick-tui # pick from examples-terminal/, run in a window
just pick-wasm-tui # pick from examples-terminal/, serve in browser
# run by name
just run alpha_blending # windowed example
just run bouncing_balls # terminal game (in terminal)
just run-tui bouncing_balls # terminal game (in a window)
just run-wasm alpha_blending # windowed example (in browser)
just run-tui-wasm bouncing_balls # terminal game (in browser)
just run-openxr prefabs # VR (OpenXR)Run
justwith no arguments to list all commands
Install WASM tooling:
just init-wasmExamples are organized into three directories:
| Directory | Description | Run with |
|---|---|---|
examples/ |
Windowed examples using the full rendering engine. Run natively, in browser (WASM), or in VR (OpenXR). | just run <name> |
examples-native/ |
Native-only examples that cannot be compiled to WASM (Steam SDK, raw terminal, etc). | just run <name> |
examples-terminal/ |
Terminal UI games built with the TUI framework. Run directly in a terminal, in a window via SDF text rendering, or in a browser. | just run <name>, just run-tui <name>, just run-tui-wasm <name> |
| Category | Examples |
|---|---|
| Rendering | alpha_blending, bloom, custom_multipass, custom_pass, decals, depth_of_field, hiz, lights, psx, render_layers, shadows, skybox, spotlight_shadows, sprites, ssao, textures, water |
| Games | block_breaker, block_breaker_scripts, chess, doom, farming, hex_war, jigsaw, platformer, pong, roguelike, space_shooter, survivors, tower_defense |
| TUI (windowed) | tui_breakout, tui_frogger, tui_roguelike, text_adventure, shell, speedreader |
| 3D Scenes | asteroid_belt, demo_scene, horror, immersive_sim, level, maps, prefabs, winter |
| Physics | physics, physics_benchmark, navmesh |
| UI | hud_text, menu, ui, sdf_text, gizmo, picking |
| Procedural | cyberdust, fireworks, sdf_sculpt, terrain, voxels, lattice, city |
| Audio | audio |
| Benchmarks | bunnymark, physics_benchmark |
| Advanced | morph, multi_world, dance |
| Example | Description |
|---|---|
benchmark |
Performance benchmark |
multiplayer_pong |
Multiplayer pong (requires Steam SDK) |
steam |
Steam integration (requires Steam SDK) |
terminal_breakout |
Breakout running directly in the terminal |
These are TUI games that run in your terminal, in a window (via just run-tui), or in a browser (via just run-tui-wasm).
| Category | Examples |
|---|---|
| Arcade | asteroids, breakout, flappy_bird, frogger, pacman, space_invaders, bouncing_balls |
| Puzzle | match3, minesweeper, puzzle_2048, solitaire, terminal_chess, terminal_sokoban, wordle |
| Action | bomberman, bullet_hell, terminal_platformer, terminal_doom |
| Strategy | colony, deck_builder, hex_strategy, terminal_tower_defense |
| RPG | terminal_roguelike, terminal_text_adventure, wasteland |
| Simulation | falling_sand, game_of_life, lemonade, pathfinding_demo |
| Classic | snake, tetris, terminal_pong, typing_game, rhythm |
Build and run natively:
just run alpha_blending # run a windowed example
just run bouncing_balls # run a terminal example
just build # release build all examplesRun terminal games in a native window with SDF text rendering:
just run-tui bouncing_balls
just run-tui snakeBuild for web browsers with WebGPU support:
just run-wasm alpha_blending # serve windowed example in browser
just run-tui-wasm bouncing_balls # serve terminal example in browser
just build-wasm alpha_blending # build only
just build-wasm-tui bouncing_balls # build onlyAll chromium-based browsers like Brave, Vivaldi, Chrome, etc support WebGPU. Firefox also supports WebGPU starting with version
141.
Run examples in VR with OpenXR support:
just run-openxr prefabssteamandmultiplayer_pongrequire the Steam SDKpluginsis a standalone workspace demonstrating the WASI plugin system
These examples are free, open source and permissively licensed under either:
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
at your option.