You are viewing an old version of Mach (v0.2) see the latest version here.

Engine roadmap

There is a long road ahead: it’s going to require a lot of work and time to get to where we are going.

We’ve been working on Mach for ~2 years now, primarily building out the Zig gamedev ecosystem, building foundational packages that we needed for Mach core, and as a result we’ve really just broken ground on the engine side of things.

Development is fairly linear, but developments that you see aren’t linear, we were focused on more foundational things before - but yoday we’re actively focused on higher-level APIs which will have more profound impacts for end-users.

We intend to accelerate our release schedule to about once every 6 months.

v0.2 (finished)

  • Mach core is an actual alternative to the traditional GLFW+OpenGL or SDL combo
    • Codebase is strictly separated and usable separate from Mach engine.
    • Examples are decent, and a basic 2D sprite rendering example exists.
    • We feel confident about the internals, feel good about the API design overall, etc.
    • Multi-threaded rendering & input handling is resolved.
  • Build out the packages/bindings we need for Mach engine
    • mach-sysaudio: pure-Zig low-level cross-platform audio input/output
    • mach-flac: lossless audio decoding
    • mach-opus: lossy audio decoding support
    • mach-gamemode: Linux gamemode optimization client (rewrite in Zig)
    • mach-gpu: add infrastructure for automated updates & make it the best WebGPU interface for Zig
  • Adopt the Zig self-hosted compiler
  • Fully migrate to the experimental Zig package manager (eliminate all submodules)
  • Begin prototyping engine design
    • mach-ecs: prototyping & direction set for the future
    • Prototype gfx2d sprite rendering ECS module / example
    • Prototype gfx2d text rendering ECS module / example
  • New website that can hold documentation for the project going forward
  • Wrench automation infrastructure for managing Zig updates and other tedious time-consuming issues

v0.3 (in progress)

  • Mach engine becomes viable for basic 2D games
    • Basic text rendering ECS module
    • Basic sprite rendering ECS module
    • Basic audio rendering ECS module
    • ECS implementation begins to mature (extremely immature today)
  • Basic 2D game demo
  • Basic custom GUI ECS module
  • Browser support
    • mach-sysjs: rewritten for code generation approach (‘bindgen-like’)

Future

  • Mach engine becomes viable for basic 3D games
    • Basic 3D model loading
  • Custom GUI begins to mature
  • Initial editor development support
  • Mobile support
  • Dusk (our pure-Zig WebGPU implementation) matures enough to become the default.
    • Mature Vulkan backend
    • Mature Direct3D backend
    • Mature Metal backend