#!/usr/bin/env python3 """Fair Horizon vs vanilla 26.3 benchmark (methodology: docs/benchmark.md). Runs one game per render distance, each from a fresh world (seed 1234, creative), through the same steps: start to the title screen, create the world, wait for the spawn area, then per scene teleport, wait for the chunks, settle and fly a fixed straight path at constant speed. Every frame time of every flight is kept and the statistics are computed here, by one function, for every game. RSS is sampled from outside the process for every game too. python3 tools/perf_bench.py --game horizon --label horizon-m4 python3 tools/perf_bench.py --game vanilla --label vanilla-m4 python3 tools/perf_bench.py --game vanilla-mods --label mods-m4 python3 tools/perf_bench.py --table horizon-m4 vanilla-m4 mods-m4 A ported mod pack against the same mods on their own loader (docs/modpacks.md, "Measured"): python3 tools/perf_bench.py --game horizon --port-work WORK --label pack-horizon python3 tools/perf_bench.py --game neoforge --mod-jars JARS --deps DEPS --label pack-neoforge Games: horizon target/release/horizon-client, driven over its control socket vanilla your own 26.3 client.jar + Fabric Loader + a dev-only driver mod (mods/horizon/src/bench), built here; nothing of the game is redistributed vanilla-mods the same + Sodium, Lithium, FerriteCore and ImmediatelyFast (pinned in tools/benchmark-deps/mods.lock.json) neoforge Minecraft 1.21.1 on NeoForge (dev-only, tools/neoforge_oracle.py installs it under .local/neoforge-oracle) + a driver mod (mods/horizon/src/neoforge-bench) + the jars of --mod-jars and --deps, the user's own; 26.3 options it does not know are ignored --port-work loads the mods a horizon-port-pack work folder carried over into Horizon as dev mods. Results: benchmarks/perf/