WC3 Balance Bench v1.0.0 试玩 Demo 公布
Balance Bench Demo
WC3 Balance Bench v1.0.0 发布可玩 Demo 地图,供地图作者在 Warcraft III 中对比普通单位改动物件编辑器前后的战斗表现。Demo 运行 3 个 Footmen 对 2 个 Grunts 共 20 轮,完整 ZIP 含 Lua 源码、说明及对比地图,仅支持本地单人 Lua 地图测试。
WC3 Balance Bench v1.0.0
WC3 Balance Bench helps mapmakers compare ordinary units before and after an Object Editor change. It runs repeated fights in Warcraft III, alternates starting sides and player slots, and reports wins, timeouts, survivors, and elapsed game time. It uses the game engine to run the fights; it does not recommend balance changes or predict multiplayer win rates.
This Hive upload is the playable demo map. The complete release ZIP also contains the Lua source, example configuration, documentation, and two stock/custom Footman comparison maps.
Try the demo
- Download the attached demo map, or extract the complete release ZIP.
- Run BalanceBenchDemo.w3x in Warcraft III.
- Type -bb start in game chat. Type -bb report to show the latest results again, or -bb stop to abort a run.
The demo runs 3 Footmen against 2 Grunts for 20 rounds. The additional comparison maps in the ZIP use a stock Footman and a custom Footman with 840 maximum HP.
Import into your Lua map
- Work on a development copy of your map. For a new map, set Scenario > Map Options > Script Language to Lua.
- Reserve active player slots 0 and 1 for the test, with player 0 entering the chat commands. Provide a clear arena and disable melee initialization.
- In World Editor’s Lua map-header custom script, paste Scripts/BalanceBench.lua followed by Scripts/ExampleConfig.lua, in that order.
- Edit BalanceBenchConfig to set the scenario name, run label, four-character unit IDs, unit counts, and arena coordinates. Both unit types must exist in your map.
- Add a Map Initialization trigger with a Custom Script action calling BalanceBenchDemoSetup(). The example setup makes the two dedicated test players hostile and installs the system.
- Disable other map systems that could add units or affect the fight. Save the map, test it, and type -bb start.
Full source and instructions on GitHub.
API and requirements
- BalanceBench.install(config) accepts the configuration shown in Scripts/ExampleConfig.lua and returns true or false with a reason.
- BalanceBench.start() and BalanceBench.stop() return true or false with a reason.
- BalanceBench.report() prints the latest summary and returns its round results, or nil before a run.
- BalanceBench.uninstall() removes the chat trigger and resources owned by the system.
- Runtime requirements: Warcraft III and a Lua map. Python and MPQEditor are optional development tools; players do not need them to run the demo.
Scope and compatibility
The system supports one ordinary unit type per team, up to 24 units per team, and up to 100 rounds in an even-numbered batch. Units receive attack-move orders; the system does not provide tactical micro or scripted spellcasting. Results appear in game. It does not reset unrelated triggers, upgrades, summons, items, or other map state, so existing systems may affect a test.
Designed for local single-player testing. Multiplayer use has not been verified. The Lua source cannot be imported directly into a JASS map.
Tested on Windows with Warcraft III 3.0.0.24268 using classic graphics. The demo, side swaps, cleanup, custom-unit comparison, and manual import into a fresh Lua map ran in game. The fresh-map test completed two rounds and repeated its report; both rounds timed out with one survivor per side. Older clients, Reforged HD graphics, and arbitrary existing maps have not been verified. Detailed verification record.
Changelog
v1.0.0 First public release: repeated unit matchups, alternating sides and player slots, in-game reports, cleanup, a playable demo, stock/custom comparison maps, and editable Lua source.
License: MIT. Source repository.
来源:Hiveworkshop · hiveworkshop.com