The goal of this project is to create a small game in Zig, both as a learning opportunity and a proof-of-concept, to see Zig would be a good language to stick with for future game development needs.
It would also be a good learning opportunity to learn lower-level concepts such as graphics and audio APIs, and ECS implementation.
- Vulkan Tutorial (Highly Recommended!)
- Vulkan (c++) Game Engine Tutorials by Brendan Galea
- GLFW Docs
- Vulkan-Zig by Snektron
- Vulkan Docs
- Mach-GLFW by Hexops
- Mach-GLFW-Vulkan-example by Hexops
- Vulkan by GetIntoGameDev
- OpenGL Tutorial
- Vulkan-Cookbook by Packt
- Kohi Game Engine by Travis Vroman
- Model-View-Projection
- Matrix Transformations by Jordan Santell
- Perspective Projection Matrix by pikuma
- Making WAVs by Low Byte Productions
- WAVE PCM soundfile format
- Understanding Audio Basics by waveroom
- Viking Room by nigelgoh (models/viking_room.obj, textures/viking_room.bmp)
- Blinding Lights by Zander Noriega (sounds/blinding-lights.wav)
- Completion by Brandon Morris (sounds/competion.wav)
- Files with underscores as names (e.g.
_.zig
) will be known as exporters. These serve as the entrypoints of a directory that expose its public contents. This should have nothing in it except a list ofpub const <name> = @import("<file>");
. This is as opposed tomain.zig
which may contain functionalities.