Mach is a game engine and graphics toolkit written in Zig, built with the goal of enabling high-performance, truly cross-platform 2D, 3D, GUI, and visualization applications. The project aims to deliver a modular, robust foundation where graphics, input, windowing, and rendering are unified under a modern, low-level but ergonomic API. Because Mach is written in Zig (with some shader code / WGSL), it leverages Zig’s performance and modern systems-level features while offering safe-ish abstractions compared to raw graphics APIs. The engine supports a broad set of target platforms — desktop OSes and in principle, future expansion — and tries to simplify the pain of dependency management and cross-compilation, making it easier to build and deploy across systems without complex toolchains. Mach’s philosophy emphasizes composability and modularity: rather than pushing a “big engine with everything included,” it gives developers the building blocks to create exactly what they need.
Features
- Cross-platform support for rendering, window/input, GPU — enabling games or apps on multiple OSes from one codebase
- Modular, composable architecture — developers can use only what they need (2D, 3D, GUI, GPU, etc.) rather than a fixed full-stack engine
- Unified support for multiple graphics backends (Metal, Vulkan, DirectX12, OpenGL fallback) with a common shader language (WGSL) for portability
- Efficient build system via Zig that simplifies dependency handling and cross-compilation, enabling static-ish builds with minimal external dependencies
- Capability for desktop applications, games, 3D visualizations, GUI apps, and experimentation — not limited to traditional games
- Open-source license (MIT / Apache) and an active community, making it accessible for customization and contributions