rzvxa/yume
A batteries included game engine and editor written in Zig
refs
Yume is a 3D game engine focused on ease of use over modularity. The goal is to provide a battery-included engine with a focus on tooling and a user-friendly editor over hackability.
Yume is a self-contained, highly portable game engine that doesn't rely on extensive third-party dependencies. Designed in Zig, it offers low-level control and high performance while maintaining an intuitive workflow for rapid prototyping and development.
Yume comes with tools that both artists and developers need to maximize their productivity. Things like live previews, built-in animation systems, first-class scripting support, terrain, foliage, and node-based BSDF shading should be part of the core engine, not an afterthought.
v0.13.0
installed in your PATH
.Clone the repository and navigate into the project directory:
git clone https://github.com/rzvxa/yume.git
cd yume
# build and run the editor
zig build run
For advanced build options and platform-specific configuration, please refer to our Build Guide.
Yume is under active development. Our near-term goals include:
In the long run, we envision Yume to grow into a robust solution capable of supporting projects from indie prototypes to more ambitious productions.
There is already a plethora of amazing open-source and proprietary engines written in C++. C++ is a mature, well-established language with a vast ecosystem. However, this maturity also means that many engines adhere strictly to industry conventions, which can sometimes restrict creative innovation. Zig offers modern memory safety and performance benefits while allowing low-level control. This means we can experiment with innovative design patterns and build an engine that breaks from conventional molds—ensuring that every game has its own unique feel instead of following a cookie-cutter formula.
Zig brings modern facilities to the table while keeping a minimalistic approach that closely resembles C. Key advantages include:
These improvements provide developers with powerful tools while avoiding some of the pitfalls and undefined behaviors common in C.
While Rust is celebrated for its strong emphasis on memory safety and concurrency, it also breaks so easily when interacting with an unsafe API, and as soon as you break the borrow checker, the whole program becomes unsound. Unfortunately, it is a very common occurrence in game development where you have to rely on existing libraries written in C++, which can easily cause aliasing issues and break the borrow checker. It's also true the other way around, it's really hard to provide a stable ABI(even for Rust-Rust calls), which makes scripting hard to implement.
This, and the fact that game logic can become overly entangled with each other, makes it really hard to prototype in a language such as Rust. Yes, for a highly optimized game world where you want to support, let's say, an MMO for 10+ years, it might be feasible to invest in the extra development time required; however, it isn't a silver bullet. For a general-purpose game engine, flexibility is more favorable compared to absolute safety. As long as user-generated content is running in a sandboxed scripting language, nobody cares if the game crashes after 48 hours of uptime if it means you get to play the game 3 years sooner.
These aspects make Zig an appealing alternative for projects that demand simplicity without sacrificing performance.
Not yet. Yume is in its experimental phase, and while our goal is to achieve feature parity with earlier iterations of mainstream engines like Unity, you should consider current builds for prototyping and experimentation rather than for critical production use.
We welcome community contributions! If you're interested in helping shape Yume, please review our Contribution Guidelines to learn more about reporting bugs, submitting feature requests, or contributing code. Every bit of feedback helps us grow.
Yume is licensed under the MIT License. You are free to use, modify, and distribute this software as long as you adhere to the license terms.
We hope Yume inspires you to build something amazing. Whether you're an indie developer, student, or professional, your feedback and contributions will help us shape Yume into a powerful tool for creative game development. Let's explore the future of game engines together!
Happy coding and keep innovating!