- Notifications
You must be signed in to change notification settings - Fork0
Main monorepo for@zig-gamedev libs and example applications
License
Xan5/zig-gamedev
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Libraries -Getting Started -Sample applications -Others using zig-gamedev
We build game development ecosystem forZig programming language, every day since July 2021. Please considersupporting the project. We create:
- Cross-platform and composablelibraries
- Cross-platformsample applications
- DirectX 12sample applications
- Very modular "toolbox of libraries", user can use only the components she needs
- JustZig is required to build on Windows, macOS and Linux - no Visual Studio, Build Tools, Windows SDK, gcc, dev packages, system headers/libs, cmake, ninja, etc. is needed
- Building is as easy as
zig build - Libraries are written from scratch in Zigor provide Ziggified bindings for carefully selected C/C++ libraries
- Uses native wgpu implementation (Dawn) or OpenGL for cross-platform graphics and DirectX 12 for low-level graphics on Windows
Download thelatest archive or clone/submodule with Git.
Note: If using Git then you will needGit LFS to be installed.
Ourmain branch is currenly tracking Zig0.12.0-dev.2063+804cee3b9 asnominated by the Mach engine project to maintain compatibilty for users of both projects.
zigup is recommended for managing compiler versions. Alternatively, you can download and install manually using the links below:
| OS/Arch | Download link |
|---|---|
| Windows x86_64 | zig-windows-x86_64-0.12.0-dev.2063+804cee3b9.zip |
| Linux x86_64 | zig-linux-x86_64-0.12.0-dev.2063+804cee3b9.tar.xz |
| macOS x86_64 | zig-macos-x86_64-0.12.0-dev.2063+804cee3b9.tar.xz |
| macOS aarch64 | zig-macos-aarch64-0.12.0-dev.2063+804cee3b9.tar.xz |
If you need to use a more recent version of Zig, you can try ourunstable branch. But this is not generally recommended.
Build and run theSamples
To get started on Windows/Linux/macOS try outphysically based rendering (wgpu) sample:
zig build physically_based_rendering_wgpu-runTo get a list of all available build steps:
zig build -lUsing theLibraries
Copy each library to a subdirectory in your project and add them as local package dependencies. For example:
build.zig.zon
.{ .name="MyGame", .version="0.0.0", .dependencies= .{ .zglfw= .{ .path="libs/zglfw" }, .system_sdk= .{ .path="libs/system-sdk" }, }, .paths="",}build.zig
pubfnbuild(b:*std.Build)void {constexe=b.addExecutable(.{... });constzglfw=b.dependency("zglfw", .{});exe.root_module.addImport("zglfw",zglfw.module("root"));exe.linkLibrary(zglfw.artifact("glfw"));}
Refer to each lib's README.md for further usage intructions.
Option to download packages using Zig Package Managercoming soon!
| Library | Description |
|---|---|
| zaudio | Cross-platform audio usingminiaudio |
| zbullet | Build package,C API and bindings forBullet physics |
| zd3d12 | Helper library for DirectX 12 |
| zflecs | Build package and bindings forflecs ECS |
| zglfw | Build package & bindings forGLFW |
| zgpu | Small helper library built on top ofDawn native WebGPU implementation |
| zgui | Build package and bindings forDear Imgui (includesImPlot) |
| zjobs | Generic job queue implementation |
| zmath | SIMD math library for game developers |
| zmesh | Loading, generating, processing and optimizing triangle meshes |
| znoise | Build pacakge & bindings forFastNoiseLite |
| zopengl | OpenGL loader (supports 4.2 Core Profile and ES 2.0 Profile) |
| zphysics | Build package,C API and bindings forJolt Physics |
| zpix | Support for GPU profiling with PIX for Windows |
| zpool | Generic pool & handle implementation |
| zsdl | Bindings for SDL2 and SDL3 |
| zstbi | Image reading, writing and resizing withstb libraries |
| ztracy | Support for CPU profiling withTracy |
| zwin32 | Bindings for Win32 API (d3d12, d3d11, xaudio2, directml, wasapi and more) |
| zxaudio2 | Helper library for XAudio2 |
Some of the sample applications are listed below. More can be found insamples directory.
physically based rendering (wgpu): This sample implements physically-based rendering (PBR) and image-based lighting (IBL) to achive realistic looking rendering results.
zig build physically_based_rendering_wgpu-runaudio experiments (wgpu): This sample lets the user experiment with audio and observe data that feeds the hardware.
zig build audio_experiments_wgpu-runbullet physics test (wgpu): This sample application demonstrates how to use full 3D physics engine in your Zig programs.
zig build bullet_physics_test_wgpu-runprocedural mesh (wgpu): This sample shows how to efficiently draw several procedurally generated meshes.
zig build procedural_mesh_wgpu-rungui test (wgpu): This sample shows how to use ourzgui library.
zig build gui_test_wgpu-run
Some of the sample applications are listed below. More can be found insamples directory. They can be built and run on Windows and Linux (Wine + VKD3D-Proton 2.8+):
bindless: This sample implements physically based shading and image based lighting to achieve realistic looking rendering results. It uses bindless textures and HLSL 6.6 dynamic resources.
zig build bindless-runrasterization: This sample application shows how GPU rasterizes triangles in slow motion.
zig build rasterization-runsimple raytracer: This sample implements basic hybrid renderer. It uses rasterization to resolve primary rays and raytracing (DXR) for shadow rays.
zig build simple_raytracer-runmesh shader test: This sample shows how to use DirectX 12 Mesh Shader.
zig build mesh_shader_test-run
- Tides of Revival - First-person, open-world, fantasy RPG being developed in the open
- Simulations - GPU Accelerated agent-based modeling to visualize and simulate complex systems
- krateroid - 3D strategy game
- blokens - Voxel game
- Delve Framework - Simple game framework for making games with Lua
- jok - A minimal 2D/3D game framework for Zig
- Aftersun - Top-down 2D RPG
- Pixi - Pixel art editor made with Zig
About
Main monorepo for@zig-gamedev libs and example applications
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Languages
- C54.5%
- C++29.7%
- Objective-C10.5%
- Zig4.3%
- R0.7%
- Rez0.3%








