No description
Find a file
2022-04-18 23:29:49 -07:00
.github CI: temporarily disable macOS 11 test 2022-04-05 00:16:51 -07:00
dev dev: dont complain about unbound GITHUB_ACTIONS env var when pushing subrepos 2022-03-04 17:45:32 -07:00
doc doc: add known issues 2022-03-27 12:03:13 -07:00
ecs README: fix URL to build-an-ecs blog series (#204) 2022-04-04 22:09:39 -07:00
examples examples: add ported two-cubes example (#228) 2022-04-17 14:31:52 -07:00
glfw glfw: update vulkan headers to latest (adds v1.3 support) 2022-04-18 20:44:34 -07:00
gpu gpu: Changes needed for latest Dawn (generated-2022-04-18). 2022-04-18 20:45:33 -07:00
gpu-dawn gpu-dawn: update to latest binary release 2022-04-19 04:26:30 +00:00
src mach: set error message to be shown on glfw error 2022-04-17 11:50:33 -07:00
.gitattributes initialize repository 2021-07-04 10:36:34 -07:00
.gitignore gitignore: update to latest from ziglang/zig repo 2021-07-06 20:51:19 -07:00
.gitmodules gpu-dawn: update Dawn to latest revision as of 2022-04-18 2022-04-18 11:38:32 -07:00
build.zig do not produce needless libraries (#220) 2022-04-18 10:32:21 -07:00
LICENSE LICENSE: note directories with a separate LICENSE file 2021-07-05 12:46:20 -07:00
LICENSE-APACHE initialize repository 2021-07-04 10:36:34 -07:00
LICENSE-MIT initialize repository 2021-07-04 10:36:34 -07:00
README.md README: polish it up! 2022-04-18 23:29:49 -07:00

Mach is still early stages - see what we have today and stay tuned

Mach: game engine & graphics toolkit for the future

Mach is a game engine & graphics toolkit written in Zig for the future:

  • Data-driven, tooling oriented
  • Composable
  • Competitive with Unity and Unreal in spirit (a fully fledged editor, etc.)

boids demo

Cross-platform graphics in ~60 seconds

git clone https://github.com/hexops/mach
cd mach/
zig build run-example-boids

Cross-platform graphics, a unified shader language & compute shaders.

(Requires zig 0.10.x | known issues)

Join the conversation

Join us on Matrix chat in building the future of game engines & graphics in Zig!

Follow @machengine on Twitter for updates.

Contributors are very welcome! There are lots of places you can help out with little knowledge, so feel free to reach out!

Learn more: machengine.org

Supported platforms

Mach is still early stages, so far we have support for building from the following OS to the following targets:

Building for From macOS x86_64 From macOS M1/aarch64 From Linux x86_64 From Windows x86_64
macOS x86_64
macOS M1/aarch64
Linux x86_64
Windows x86_64
iOS 🏃 🏃 🏃 🏃
Android 🏃 🏃 🏃 🏃
  • Tested and verified via CI.
  • ✔️ Should work, not tested via CI yet.
  • 🏃 Planned or in progress.
  • ⚠️ Implemented, but has known issues (e.g. bugs in Zig.)

Libraries

Mach has many libraries you can use for game development in Zig - you don't have to use the entire engine. All our libraries aim to have the same zero-fuss installation, cross compilation, and platform support:

  • mach-glfw: Ziggified GLFW bindings with 100% API coverage
  • mach-gpu-dawn: Google's Dawn WebGPU implementation, cross-compiled with Zig into a single static library
  • mach-system-sdk: More libraries for cross-compilation with Zig

Contributing

Mach is maintained as a monorepo. When changed are merged to this repository, we use some git-fu to pick out the commits to subdirectories and push them ot sub-repositories all automagically. Changes to the glfw/ directory in this repository get pushed to the separate mach-glfw repository automagically after being merged here, for example.

Please prefix commits / pull requests with the project name (glfw: fix an issue, gpu: fix an issue, examples: fix an issue, etc.) and if possible only one project per commit. If you don't know how to do this, no worries, we can help!