Skip to content

N3RDIUM/voxl

Repository files navigation

Voxl

A procedural voxel engine written from scratch in Python. Screenshots!

TODOs

  • Update the directory structure.
  • Engine: provide an "update"/"tick" listener that runs on another thread.
  • Read about ECS. Then implement a basic/minimal ECS inspired by bevy. Thread-local, non-parallel for now.
  • All docstrings what -> why
  • Renderer: Implement as ECS-based, using wgpu.
  • Documentation of the ECS system.
  • Rewrite the ECS system to Cython and wrap in engine.ecs
  • Add decorator support for registering event listeners and ECS systems.
  • Engine: integrate the compute manager with the update tick event. handled by window instead of computemanager in case of headless use.
  • Separate the engine into a separate repo, package the engine under that name and put it up on PyPI. Test on a win vm too (eek).
  • Chunk generation with octree impl.
  • Client-side rendering of these^ chunks.

Roadmap

  • Generate interesting terrain.
  • Implement structure generation.
  • Implement true voxel lighting, on the client using compute shaders.

Usage

Install the Nix Package Manager:

$ sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install) --daemon

Clone this repo and cd into it:

git clone https://n3rdium/Voxl.git voxl
cd voxl

Enter nix shell (this will "install" all deps for you):

nix-shell

Now, to start Voxl, run:

python -m src.client.main

About

A procedural multiplayer voxel engine written from scratch in Python.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Contributors