Terrain Zigger
Project description
TerrainZigger: Procedural 3D World Builder
A lightweight, cross-platform 3D terrain generator and game engine built in Zig, with Python scripting for dynamic behaviors like NPC pathing, dialogues, and interactions. Powered by Raylib for rendering procedural worlds from noise to explorable scenes in minutes.
Why ZigTerrain?
- Performance-First: Zig's safety + speed for real-time 3D.
- Scriptable: Python integration via ctypes for AI, events, and mods.
- Procedural Magic: Perlin/FBM terrain, foliage via Poisson Disk, and dungeons generated with wave function collapse.
- Interactive: Raycasting, pathfinding, dialogues.
Features
- Procedural terrain gen (noise, base maps, biomes)
- Object spawning/movement (humans, birds, rain, beams)
- User controls: Orbit/FPV camera, selection, spawning
- Python hooks: Callbacks for clicks, chats, ticks
- Exports: WASM-ready for web demos
Quick Start
Prerequisites
To build and run TerrainZigger, you'll need:
Build & Run
zig build run: Builds and runs the main game (walk.zig).
zig build run-chat: Runs the standalone Chat UI test (chat.zig).
zig build run-object: Runs the 3D Object/Primitive viewer (object.zig).
zig build run-dungeon: Runs the Dungeon generation demo (dungeon.zig).
zig build run-wasm: WebAssembly compilation of terrain.zig (demo index.html).
pip install zigger: Python scripting (see below)
Usage Example (Python)
from zigger import Zigger
game = Zigger(size=terrain_size)
game.load_map(get_base_map(terrain_size, 'N42W071')) # Procedural or real topo data
game.spawn(2, 20, 20) # Spawn object (house)
game.start() # Start game
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is open source and available under the Apache License 2.0.
Acknowledgments
- Terrain generation algorithm inspired by Perlin Noise
- 3D rendering made possible by Raylib
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file zigger-0.0.1a0.tar.gz.
File metadata
- Download URL: zigger-0.0.1a0.tar.gz
- Upload date:
- Size: 34.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2782358212f8f777bdb614b18f54b85b98377038f4b8e247f30065b4a9f2fcb2
|
|
| MD5 |
426d20e42b6ffdfbb96e9c341cafecdf
|
|
| BLAKE2b-256 |
318d1f1f267a890c0760f8a12a558667d480c8f93f6f1b0b6bd60ab4e621e994
|