BWAPI for OpenBW

After ~6 months of on and off development we have published a first version of BWAPI for OpenBW.
This will allow bot developers to develop bots and run games on linux. It provides several advantages over the at times cumbersome setup with the original BW and represents a milestone towards completion of the BW AI IDE module.

As a reminder, the BW AI IDE module aims to provide an integrated environment for bot developers to apply machine learning techniques to BW out of the box. It will run on both linux and windows and all of its components will be free (currently, all but the original MPQ files containing unit data, artwork, etc. are also open-source).

BWAPI for OpenBW provides the same interface as BWAPI for the original BW and aims to be fully compatible with existing bots.
It can be found here: https://github.com/OpenBW


quuad takes BW HD lead

quuad is taking over the lead for the BW HD module. We are very excited to have quuad in charge of BW HD. He even brings his own supply:


Protoss too!

So I’ve just completed implementing all units and spells in the game. It’s all tested, but there are likely still bugs (please report if you find any). In short, any 1v1 melee replay should now work.
Also fixed various graphical errors, cloaked units are now displayed correctly, flying units hover up and down as they should, among others.
You can select units, health/shield/energy bars are displayed.

Maybe we’ll get sound soon too..?


Zerg is live!

All zerg units except devourers should now work, so the replay viewer can now play TvT, TvZ and ZvZ.

There might still be some special cases that are not implemented, or desyncs. Also haven’t tested guardians (hopefully they work).
Some graphical glitches should be fixed too, like the tank muzzle flash going off in the wrong direction.

If you get any errors or desyncs then please report them in the comments 😀


SSCAIT Integration

I’m happy to announce a solid integration of the SSCAIT Student Starcraft AI Tournament.

You can browse through all currently active bots and check their latest replays, or directly browse a list of all recent replays. Just click on a replay to seamlessly watch it online in your browser.

Check it out: http://www.openbw.com/sscait-listings/


How-To Replay Viewer

We have a replay viewer available, that you can use to view a replay in the browser. In order to draw the graphics it requires some files from StarCraft: Brood War, so you must have that installed locally (with the 1.16.1 patch). You are therefore required to own a legal copy of Brood War!

The current state of the game is such 1v1 games should work. UMS triggers and team games are not supported yet.

Help us improve the quality!

By letting us know of any issues you experience you can help us improve.

There are basically three types of issues:
1. You cannot watch a replay (e.g. “fatal error: decompression failed” or similar)
2. You can watch replays, but the replay is buggy / out of sync
3. There is an issue with the GUI (e.g. elements not displaying correctly)

  • For issues of type 1, include your patch_rt.mpq file and indicate how you obtained your copy of Brood War (CD, download from Blizzard, other…)
  • For issues of type 2, include the replay and indicate at what time in the replay you noticed the issue.
  • For issues of type 3, include a screen shot and indicate your browser version and operating system.

Please send your bug report to dev5(a t)openbw.com

The engine has bugs; you might have a replay that it plays incorrectly. If the game looks strange (or matches the out of sync symptoms above), try to replay it in StarCraft: Brood War, and if the games are clearly different then we would like the replay so we can fix the issue (please send to dev5(a t)openbw.com).
If you get a white screen with some “fatal error” text, then it is most likely an unimplemented feature (but if it says something like “attempt to read past end” then we would like the replay).
There might be some graphical glitches. These do not affect the game, they’re just graphical bugs and will be fixed at some point.
There is not yet any way to show the fog of war.

Known bugs / missing features

The following issues are known and need not be reported:

  • Zerg devourer
  • fog of war missing
  • (player) vision toggle missing
  • shadow of lifting/landing buildings

When viewing a replay, the most obvious sign that a game has gone out of sync is a ton of idle units, usually standing around production facilities, a lack of things happening and a buildup of resources for the players. Unfortunately a replay does not seem to contain any information that can be used to check whether we are in sync.

Instructions

Note:

The replay viewer does not require Windows or any executables to run. You just need the indicated MPQ files.

  1. go to the replay viewer
  2. Specify the three indicated MPQ files from your local Brood War directory
  3. if you want to watch your own replay: drop a valid Brood War 1.16.1 replay into the dotted area.
  4. if you don’t do the above step you can click the “Play Demo Replay” button to watch a default replay.
  5. The replay should now start playing, and you should see in-game information in the info bar at the bottom

Short Video Tutorial

Hotkeys / Controls

Key Description
‘h’ Show this help dialog.
‘n’ Toggle no-spoiler mode (hides the progress bar).
‘u’ or ‘a’ Increase game speed by factor 2.
‘d’ or ‘z’ Decrease game speed by factor 2.
‘p’ or space Pause/unpause the game.
backspace Rewind 10 seconds.
arrow keys Move up/down/left/right.
‘1’, ‘2’, ‘3’, ‘4’ show/hide production / army composition / upgrades / research tab.
‘5’ show/hide info graphs.
click in minimap Move to the location indicated in the minimap.
click on unit / drag box Selects the clicked unit or all units in the box.
shift-click unit Adds / removes a unit from selection.
right-click drag Move the map.
drag and drop Drag and drop a replay file into the replay viewer at any time. Even if another replay is currently playing.

Hello world

Hi. I’m the developer of the game engine for OpenBW. I’ve been writing a bot/AI for StarCraft: Brood War for a while now, and I started the OpenBW project because working with the original game for purposes of machine learning or running automated games is quite difficult. The existing solutions scale poorly and are not portable. I also really wanted to watch replays in the browser, so I figured I would recreate the game engine.
OpenBW is still in the early stages, and the scope has grown a little, but my main responsibility is the core game engine, and the most important goal is full compatibility with StarCraft: Brood War.

The game engine is almost the entire game. It is how units move, prod and poke each other, how they bug out and struggle with pathfinding, how they live and how they die. It is not things like the user interface, graphics or sound, but don’t worry, we’ll have that too. At some point you’ll be able to play it, there will be networking and whatnot. But not yet.

The first focus of the project is to be able to view replays. Replays are a nice focus since in order to play a replay, the entire game engine is required. From the perspective of the code, viewing a replay is almost the same thing as actually playing the game, the difference is just that the user input comes from a file instead of from a mouse and keyboard.
The required accuracy and faithfulness to the original game can not be overstated. The engine is large, and if anything is off by the slightest margin, the entire game will go out of sync. By out of sync I simply mean that something different would happen if you were to play a game in OpenBW vs the original StarCraft. There is a butterfly effect that happens when something is done incorrectly which creates enormous differences. Therefore, the original behavior needs to be replicated exactly.

The engine will be a library which can be used in other projects. There is no API yet, it is too early to be used for that purpose.
There are no ETAs (at least not from me). Features will be done when they’re done.

We have a demo replay viewer that you can use to view a replay in the browser. In order to draw the graphics it requires some files from StarCraft: Brood War, so you must have that installed locally (with the 1.16.1 patch).

Please read the instructions on how to use the replay viewer here.
The replay viewer itself can be found here.


Interview with the Main Developer

A rare interview with the main brain behind the OpenBW core engine:

Reporter: “First of all, it is an honor to meet you. Very impressive what you pulled off. Could you explain to us who you are, what your background is, and what motivated you to recreate the complete Brood War game engine on your own?”

tscmoo: “I’m tscmoo”


Announcing OpenBW

OpenBW is a new project dedicated to bringing a free and open-source game engine fully compatible with Brood War to the world.
It is split into four modules:

  • Core Engine
  • BW HD
  • Replay Viewer
  • AI IDE

Stay tuned for regular updates 🙂