Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AIGodotVoxels (Voxel Penguin Boom)

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.

Media

A short gameplay clip (12s, 1280x720): media/gameplay.mp4

Features

  • Pure voxel meshes - every penguin, person, and tree is built at runtime from individual voxels merged into a single ArrayMesh (see scripts/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 by scripts/generate_mega_scene.gd).

Requirements

  • Godot 4.7 (any build - the project uses the GL Compatibility renderer)

Running

godot --path .                      # play the main scene
godot --path . scenes/mega.tscn     # play the mega scene

Or open the project in the Godot editor and press F5.

Controls

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

How it works

  • 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 for mega.tscn.
  • scripts/generate_audio.py - regenerates the WAV sounds (boom, revive, melody) if you ever need to.

Notes

  • Debris voxels only collide with the static world (not with each other) to keep physics fast even with thousands of flying voxels.
  • .uid files are part of the project and should be committed.

Releases

Packages

Contributors

Languages