Mach
Zig game engine & graphics toolkit
For building high-performance, truly cross-platform, robust & modular games, visualizations, and desktop/mobile GUI apps.
Zig is a general-purpose simple programming language featuring compile-time code execution, blazing-fast compilation speeds, and bare-metal performance.
On your machine in just ~60 seconds
Zero system dependencies to slow you down; only zig is needed, we build and package the few relevant dependencies on our own.
To run on your machine:
$ git clone https://github.com/hexops/mach
$ cd mach/
$ zig build run-core-textured-cube
Requires this nominated Zig version | known issuesEffortless cross-compilation
Cross-compile to any OS at the flip of a switch. WebAssembly, Android & iOS coming soon.
$ zig build -Dtarget=x86_64-windows
$ zig build -Dtarget=x86_64-linux-gnu
$ zig build -Dtarget=x86_64-macos
$ zig build -Dtarget=aarch64-macos
First-class Linux support
Linux is a first-class target for us, with Vulkan, OpenGL/GLES fallbacks, support for both X11 and Wayland in the same binary via runtime detection, and gamemode optimization support out of the box.
From mesa drivers-to your experimental compositor (and broken vsync implementation), we'll make it run well.
Mach core: window+input+GPU
Mach core: Low-level window+input+GPU
Mach core provides a window, input, GPU, and nothing else.
Truly cross-platform, it supports desktop today, WebAssembly (soon) and Mobile (future) using the same unified API.
Today, it is available to use via Zig. Support for other languages is planned in the future via a C ABI.
Powerful, multi-threaded, efficient
The power of Vulkan/DirectX/Metal in a unified, concise, modern graphics API (including GPU compute) by using Google Chrome's WebGPU implementation natively as a graphics abstraction layer.
mach-core handles rendering and input on separate threads, for butter-smooth window resizing and mid-frame input handling should you desire.
Linux gamemode optimizations enabled by default (optional.)
Standalone libraries
Mach additionally provides some of the highest-quality standalone gamedev libraries in the Zig ecosystem, including:
Mach engine (coming soon)
Mach engine is not ready for use yet and is in very early-stages of development.
FAQ: "Can I use Mach to make a simple 2D game?"
Competitive with other engines
Our ultimate aim is for Mach engine to be a full modern engine, with a full GUI editor and all. A custom UI library, rendering engine, physics & more are all in scope and will be built out incrementally over the coming years.
Deeply rooted in modularity
Unlike the monolithic engines of today, we aim for Mach to be deeply modular, data & tooling driven. Essentially, our entity component system will be more opinionated than others and will employ a unique message passing system, which will enable deep editor integration, debug tooling, and more. The ECS will act as a shared integration point for _modules_, which will all be optional, so that you can easily plug-and-play different modules for making UIs, rendering 2D sprites, 3D models, physics, etc.
Roadmap
There is a long road ahead, it's going to require a lot of work to get to where we are going.
We've been working on Mach for ~2 years now, primarily building out the Zig gamedev ecosystem and building foundational packages that we needed for Mach core and the engine. As a result, we've really just broken ground on the engine side of things.
See our roadmap for a general idea of what we're up to today.
Open source, always & forever
Apache or MIT licensed, at your choosing.There are few things in life I am more passionate about than Mach. I've been working on it double-time for over two years now, and dreaming of it for a decade before that. Today, I am building my first real game using it and I'm excited to explore how much more intuitive gamedev tooling can be.
FOSS is in my roots and I believe we should own our tools, they should empower us-not be part of the 'open source' game which is all too prevelant today (even among 'open source' engines.) Mach needs to be for people like you and me-it needs to genuinely be software you can love.
My dream is one day to live a simple, modest, future earning a living building Mach for you and creating high-quality games for everyone. Please consider sponsoring my work!
- Stephen Gutekanst, BDFL of Mach