Skip to content

rugen v0.7.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 06:25
· 35 commits to main since this release

0.7.0 — the optimisation release

Nothing new to play with; everything runs lighter, especially on old hardware. Classic 1v1 play is bit-identical to 0.6.5 (replays and online checksums unchanged).

Conversion of fighters is 6–8× faster and uses a quarter of the memory: a 105 MB archive takes 2.9 s and 360 MB instead of 20 s and 1.1 GB (about 10 s on a 2012 dual-core, was minutes). Files are ~10 % larger; existing .rgc / .rgs files still load unchanged. The written file is verified block by block.

Memory: a loaded fighter takes 40 MB instead of 109 (sprites are read from the file when first drawn, sounds decoded on a worker thread into a 32 MB bank, compiled states no longer keep their raw text). A two-fighter fight sits under 50 MB headless. The match screen now frees every GPU texture when it ends; before, every match's textures stayed for the whole session.

Rendering: draw calls per frame 60–75 → 40–49 (title screen 234 → 55) with persistent vertex/index buffers, a glyph atlas per font and no per-frame clones. The OpenGL fallback now really works (0.6.5 silently stayed on Vulkan/DX12), with downlevel device limits instead of a panic, and the adapter/driver is logged at start.

No first-draw hitches: sprites decode on a worker thread and upload under a per-frame budget; a local fight loads on the versus screen and uploads its stage, lifebar and common actions there. First seconds of a fight: 0 frames over 33 ms (was 2–6).

Low-spec mode: OPTIONS → VIDEO → RENDER SCALE ([video] render_scale = auto|1.0|0.75|0.5) draws the fight smaller and scales it up sharp; auto turns it on for integrated GPUs on OpenGL.

Simulation: the expression VM allocates nothing per trigger, ops shrank to half, fast name hashing; Simul 4v4 steps 0.17 ms. A deep checksum next to the fast one in the golden tests guards future optimisations.

Tools: rugen bench prints the whole table (sim, rollback, teams, arena, load, render phases incl. present, conversion) for any machine; RUGEN_FRAMESTATS=1 shows a present phase. Docs: https://rugen.dev/engine/performance/

Verification verdicts now survive engine releases that do not change the simulation. Precompiled logic in existing files is recompiled once on first load (sim changes), a few hundred ms per fighter, in the background.

Downloads

Windows

Version File
64-bit (x64), most PCs rugen-0.7.0-windows-x64.zip
32-bit (x86), older PCs rugen-0.7.0-windows-x86.zip
ARM64 (Snapdragon / Copilot+ PCs) rugen-0.7.0-windows-arm64.zip

Unzip anywhere and run rugen.exe. Fighters go in chars/, stages in stages/.

Linux (x86_64)

Package File
Fedora / RHEL / openSUSE (.rpm) rugen-0.7.0-1.x86_64.rpm
Debian / Ubuntu / Mint (.deb) rugen_0.7.0-1_amd64.deb
Any distro, portable (.tar.gz) rugen-0.7.0-linux-x86_64.tar.gz

Packages install the game for every user; fighters and stages then go in
~/.local/share/rugen/chars and ~/.local/share/rugen/stages.
The tarball is a self-contained folder like the Windows zip.

macOS

Mac File
Apple Silicon (M1 and later) rugen-0.7.0-macos-arm64.tar.gz
Intel rugen-0.7.0-macos-x64.tar.gz

Unsigned: the first time, right-click rugen → Open (or xattr -dr com.apple.quarantine <folder>).

Online hub: rugen-server ·
Docs: https://rugen.dev

Full Changelog: v0.6.5...v0.7.0