A tiny voxel playground built with Godot 4.7. Waddle around with a flock of blocky penguins, drop in some pixel people, then blow them all to pieces and watch every voxel scatter with physics. Revive them with a button and they magically reassemble.
A short gameplay clip (12s, 1280x720): media/gameplay.mp4
- Pure voxel meshes - every penguin, person, and tree is built at runtime
from individual voxels merged into a single
ArrayMesh(seescripts/voxel_mesh.gd). No external 3D assets. - Explode & revive - click any character or hit the EXPLODE! button to shatter a character into 100+ physics-driven voxel debris pieces. REVIVE! tweens every piece back into place.
- Autonomous characters - penguins and people wander on their own, stay inside a walk radius, avoid trees, and avoid each other (Area3D-based separation that scales to 200 characters).
- Alive / Died HUD - a live count of how many characters are standing and how many have been blown up.
- Orbit camera - drag to orbit, scroll to zoom, WASD to pan, click to explode.
- Two scenes:
scenes/main.tscn- the small demo: 10 penguins, 2 people, 5 trees.scenes/mega.tscn- the big one: 200 penguins and 100 trees on a 100x100 terrain (generated byscripts/generate_mega_scene.gd).
- Godot 4.7 (any build - the project uses the GL Compatibility renderer)
godot --path . # play the main scene
godot --path . scenes/mega.tscn # play the mega sceneOr open the project in the Godot editor and press F5.
| Input | Action |
|---|---|
| Left drag | Orbit camera |
| Mouse wheel | Zoom |
| WASD / arrows | Pan camera |
| Left click | Explode the clicked character |
| EXPLODE! | Randomly explode 2 characters |
| REVIVE! | Reassemble every exploded character |
scripts/voxel_character.gd- base class for every destructible character (penguin and person). Builds the mesh, the click hit-body, the debris on explode, and the tween-back on revive.scripts/voxel_penguin.gd/scripts/voxel_person.gd- the two character models: a 126-voxel penguin and a 76-voxel person.scripts/steering.gd- random-walk AI with walk-radius, tree avoidance, and character separation.scripts/voxel_mesh.gd- merges voxel data into a single vertex-colored mesh (flat faces, shared material).scripts/tree.gd- the voxel tree model with collision + avoidance radius.scripts/main.gd- UI wiring, explode/revive policy, HUD, camera shake.scripts/camera.gd- orbit/zoom/pan camera with click-to-explode raycast.scripts/generate_mega_scene.gd- headless generator formega.tscn.scripts/generate_audio.py- regenerates the WAV sounds (boom,revive,melody) if you ever need to.
- Debris voxels only collide with the static world (not with each other) to keep physics fast even with thousands of flying voxels.
.uidfiles are part of the project and should be committed.