diff --git a/README.md b/README.md index f5fffb7b..0ced01c3 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,16 @@ -Mach - Game engine & graphics toolkit for the future +Mach - Game engine & graphics toolkit for the future -# Mach engine [![CI](https://github.com/hexops/mach/workflows/CI/badge.svg)](https://github.com/hexops/mach/actions) Hexops logo +

Learn more at hexops.com/mach

-## ⚠️ Project status: in-development ⚠️ +## Join the conversation -Under heavy development, not ready for use currently. [Follow @machengine on Twitter](https://twitter.com/machengine) for updates. +Our community exists [on Matrix chat](https://matrix.to/#/#hexops:matrix.org), join in and help build the future of game engines & graphics in Zig! -## News +You can also follow [@machengine on Twitter](https://twitter.com/machengine) for updates. -You can read about major Mach engine developments at [devlog.hexops.com](https://devlog.hexops.com/categories/mach/): +## ⚠️ in-development ⚠️ -* [Perfecting GLFW for Zig, and finding lurking undefined behavior that went unnoticed for 6+ years](https://devlog.hexops.com/2021/perfecting-glfw-for-zig-and-finding-undefined-behavior) -* [Mach engine: The future of graphics (with Zig)](https://devlog.hexops.com/2021/mach-engine-the-future-of-graphics-with-zig) - -## Zero fuss installation & cross compilation - -Mach is built from the ground up to support zero fuss installation & cross compilation, **only `zig` and `git` are needed to build from any OS and produce binaries for every platform.** - -If you've ever worked with game engines in C, C++, Rust, Go, or any other language you've probably run into issues at one point getting the right system dependencies installed, whether it be library versions, compilers, system SDKs, X11/GLFW/SDL C dependencies, etc. With Mach, none of this is needed - it's all sorted out for you automagically. - -Mach is able to do this thanks to Zig being a C/C++ compiler, Zig's linker `zld` supporting macOS cross compilation, and us doing the heavy lifting of packaging the required [system SDK libraries](https://github.com/hexops/sdk-macos-11.3) and [C sources](glfw/upstream/) for every dependency we need so our Zig build scripts can simply `git clone` them for you as needed for the target OS you're building for, completely automagically. +Under heavy development, not ready for use currently. ## Supported platforms @@ -39,7 +30,7 @@ Mach is still incredibly early stages, so far we have support for building from * 🏃 Planned or in progress. * ⚠️ Implemented, but has known issues (e.g. bugs in Zig.) -## Libraries for all +## Subrepositories / projects Whether you're interested in using all of Mach, or just some parts of it, you get to choose. Our libraries all aim to have the same zero-fuss installation, cross compilation, and platform @@ -47,31 +38,11 @@ support: * [mach-glfw](https://github.com/hexops/mach-glfw): Ziggified GLFW bindings with 100% API coverage -## About sub-repositories +## Contributing -In this repository, we maintain Mach as a monorepo. We pull in all commits from our library sub-repositories listed above using [`git subtree`](https://www.atlassian.com/git/tutorials/git-subtree): - -``` -git subtree pull --prefix glfw https://github.com/hexops/mach-glfw main -``` - -This pulls in all commits from our sub-repositories, and effectively leads to a full history of all Mach development across all core repositories. - -Pull requests can be made to any repository (we synchronize both ways via `git subtree pull` and `git subtree push`.) +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. For example, commits to the `glfw/` directory also get pushed to the separate [mach-glfw](https://github.com/hexops/mach-glfw) repository after being merged here. There are only two requirements: -1. Pull requests in sub-repositories must have a commit message prefix, e.g. `glfw: ` to keep our monorepo history nicer - we generally squash merge pull requests so this is not an issue. -2. Pull requests to this repository may not change multiple sub-repositories in the same commit (e.g. a commit to `glfw/` should not also include changes to `webgpu/`, to avoid confusion.) - -## Sponsors - -If you like Mach engine, or my other work, you may [sponsor me on GitHub](https://github.com/sponsors/slimsag). This will make my day, it's a huge vote of confidence and I really appreciate your support! - -### Silver sponsors - - - -### Bronze sponsors - - +1. Pull requests to sub-repositories must be sent to this monorepo, not to the sub-repository itself - to avoid some annoying merge conflicts that can arise. +2. Individual commits may not change multiple sub-repositories at the same time (e.g. a commit to `glfw/` cannot also include changes to `gpu/`, to avoid confusion.)