Releases: vetr0s/mach
Release list
v0.7.0
What's new
The game grows a spine. There is now a reason to keep playing, a way to keep a
game, and menus to move between them.
A money economy. Money is a balance you spend, not just a score. The build
area starts small (you cannot even fit a loop) and is a centered square you pay to
double, on a cost that scales with the space unlocked. Droppers and upgraders come
in tiers: a higher-tier dropper emits richer ore, a higher-tier upgrader lifts an
ore's ceiling harder, and both cost more. A right-side shop panel sells tools and
tiers and shows the prices; clicking a button never also drops a tile in the world
behind it.
Save and load. One slot, written to disk, that restores the whole game: the
build region, every machine and its tier, ore in flight, money, and the camera. K
saves, L loads in-game; the title screen offers Continue when a save exists.
A title screen and a pause menu. The game launches to a menu (New Game,
Continue, Quit). Escape in-game now pauses and opens an overlay to resume or return
to the title, instead of closing the window.
An animation layer. The simulation no longer times its own visuals. It records
events (an ore banked, an ore tipped off a dead end) and the renderer plays them on
real time, so effects stay smooth and independent of the fixed tick. Banking is
visible now: the ore drops into the furnace and a "+value" rises, and two payouts
at once no longer stack their text on one spot.
The furnace, reshaped and renamed. The old "collector" is a furnace throughout,
and it reads as a shallow open bin rather than a tall block, so ore drops into it
instead of colliding with a tower.
Real sprite art, baked in. Drop a PNG into assets/sprites/ and it is compiled
into the executable; a missing sprite falls back to the procedural block. The
shipped binary is still a single self-contained file per platform.
Smaller fixes. Frames pace to vsync (no tearing, no busy-wait), and the F3
overlay shows real frame time. Ore is visible on the first conveyor in short
layouts. World-space value labels scale with zoom instead of ballooning when zoomed
out. ./nob hot stopped spamming a directory-exists line every half second.
Prebuilt binaries for v0.7.0. Download one, make it executable, run it. The game
is a single static binary; there is nothing else to install.
| Platform | File |
|---|---|
| Linux (x86_64, glibc 2.35+) | mach-v0.7.0-linux-x86_64 |
| macOS (Apple silicon + Intel) | mach-v0.7.0-macos-universal |
| Windows (x86_64) | mach-v0.7.0-windows-x86_64.exe |
The binaries are unsigned. On macOS, clear the quarantine flag first:
xattr -d com.apple.quarantine mach-v0.7.0-macos-universal
On Windows, SmartScreen shows a warning: "More info" then "Run anyway".
v0.6.2
Prebuilt binaries for v0.6.2. Download one, make it executable, run it.
The game is a single static binary; there is nothing else to install.
| Platform | File |
|---|---|
| Linux (x86_64, glibc 2.35+) | mach-v0.6.2-linux-x86_64 |
| macOS (Apple silicon + Intel) | mach-v0.6.2-macos-universal |
| Windows (x86_64) | mach-v0.6.2-windows-x86_64.exe |
The binaries are unsigned. On macOS, clear the quarantine flag first:
xattr -d com.apple.quarantine mach-v0.6.2-macos-universal
On Windows, SmartScreen shows a warning: "More info" then "Run anyway".
v0.6.0
First release since the engine split, and the first under the new license.
Highlights
- 144 fps, precisely. Frame timing moved to nanoseconds (vendored mach.h 0.1.2), so the cap hits rates whose period isn't a whole millisecond instead of running fast. Target is now 144.
- Backtick debug overlay. The diagnostics overlay toggles on
`instead of F3, one key, no reach. - Engine is a first-class source file.
mach.hmoved out ofthird_party/intosrc/mach.h; it's our own library, not a third party. Builds use-Isrc. - Docs split and cleaned. Each repo has its own
ARCHITECTURE.md; README lists became tables; every em dash is gone. - License: PolyForm Noncommercial 1.0.0. Free to use, modify, and share for noncommercial purposes; not for sale. The bundled engine header keeps its permissive zlib terms.
- clang-format adopted. A shared
.clang-formatand a formatted tree. - VERSION file. The game now carries its version in-tree (
VERSION), alongside the tag.
Full commit range: v0.5.1...v0.6.0
v0.5.1
Engine + game release. Highlights since v0.5.0:
- Dev hot reload — game logic compiles to a shared library the host
dlopens and swaps in on rebuild, keeping state across reloads../build.sh hot, then./build.sh gameto reload live. Release builds stay a single static monolith. (#11) - Belt feel tuning — chunky tier-1 baseline (belts 3 cells/s, an item every 2 cells), with headroom to speed up via belt tiers. Fixed the drop pause and the spawn-inside-dropper glitch.
- Facing arrows — droppers/upgraders now build their arrows in grid space, so they read correctly in the iso projection at every rotation.
- Tooling —
scripts/stats.sh(bash) replaces the Python line-counter prototype.
Download — macOS (Apple Silicon / arm64)
mach-v0.5.1-macos-arm64.zip contains the mach binary and libSDL3.0.dylib (keep them in the same folder). Unzip and run ./mach.
The binary is unsigned, so Gatekeeper will complain on first launch. Either right-click → Open, or clear the quarantine flag:
xattr -dr com.apple.quarantine mach libSDL3.0.dylib
./mach
Windows isn't built for this release (no machine on hand) — build from source with build.bat.
mach v0.4.0 — cross-platform shaders
mach v0.4.0 — cross-platform shaders
Write the shaders once, run everywhere — without giving up the clone-and-build experience.
Highlights
- Write-once shaders. Authored once in HLSL and cross-compiled offline to SPIR-V (Vulkan) and MSL (Metal), baked into a committed header. Cloning, building, and running need no shader toolchain.
- Windows support via the Vulkan backend (SDL_GPU selects it automatically; any current GPU driver ships the Vulkan runtime — no SDK needed to run).
- Frame pacing fixed. The swapchain no longer locks to the display's vsync, so the engine's frame cap actually governs.
Downloads
- macOS (Apple Silicon):
mach-v0.4.0-macos-arm64.zip - Windows (x64):
mach-v0.4.0-windows-x64.zip
Unzip and run the mach binary; keep the bundled SDL3 library next to it.
macOS: the binary is unsigned, so first launch may be blocked. Either right-click → Open, or clear quarantine:
xattr -dr com.apple.quarantine mach.