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

Modularity

Historically, we believe there are three types of approaches to game development:

DescriptionOpinionated?Modularity?Note
LibrariesNot at allExtremelyNo natural interoperability, lots of glue code required
FrameworksSomewhatVeryOften unable to provide high-level experiences due to modularity
EnginesExtremelyNot at allProvides high-level experiences but makes rigid choices on your behalf

The Mach project provides some Libraries, but mostly aims to sit between Frameworks and Engines. Opinionated where it matters to provide high-level experiences like engines do, but modular enough to let anyone break out of the ‘blessed’ paths we have chosen to do their own thing.

Where is ‘Mach engine’?

‘Mach engine’ is the combined overall experience of two things:

  1. The Mach standard library - the engine APIs and ‘blessed’ paths for doing things, but still modular.
  2. The Mach editor and CLI tooling - which provide standard tools and high-level experiences you’d expect from a game engine

Whether you use both, or how much of either you decide to use, is up to you!

Can I make my own game engine using Mach?

Yes! For example instead of using GLFW/SDL+OpenGL+glm as the base for your own engine, you might choose to use mach.core and mach.math from our standard library.