Spawning Tool upgrades: authentication and an improved schema

For all Americans, I hope you had a good Memorial Day weekend. If you’re unfamiliar with it, Memorial Day is a federal holiday for honoring departed members of the US armed forces. Given the time of year, many people will go out to grill and enjoy the weather. I did some of that, but I also got started on the new season of Arrested Development and built a number of new features for the Spawning Tool.

First, I added basic authentication so you can login and upload replays. This mechanism isn’t particularly interesting, but it’s necessary to restrict who can edit the tags on a replay. I once thought it best if anyone could edit any tags, but I think that’s inviting vandalism. If anyone feels so strongly to add tags to other replays, we’ll come up with a mechanism to enable that.

Second, I improved the Browse Replays interface. You can now do text search and toggle a few options. The actual list of replays is now much more readable thanks to built-in bootstrap styles.

Third, I actually incorporated more parsed data from the replay into the actual database schema for the site itself. The full explanation requires some context.

The Spawning Tool is primarily composed of 2 parts. First, there’s the spawningtool tool, which actually goes through the replay data and pulls out the build order. The result of this tool is basically just a bunch of structured text. Second, there’s the spawningtool site, which gets this text and turns it into a presentable website.

Previously, I was just taking the raw build order data as a whole and re-rendering it from scratch every time. It was easy and was sufficient for displaying builds. The downside was that the spawningtool site was pretty blind to what the data was. I re-implemented it so that the build order is stored in the database itself: instead of a raw build order in text, the build order itself is stored with times, units, and supply counts in the database.

The biggest benefit is coming soon: more advanced filters and statistics from replays. With this data, we can make database queries that translate naturally into questions like, “If you build a Robotics Facility before 7:00 in PvT, how often will you win?” It’s just a matter of finding all replays with builds that fit the criteria, then counting the wins and losses.

I’m very excited about the next steps for the Spawning Tool, and I think that advanced filters is a big part of that. Additionally, I’m working with ChanmanV to make the Spawning Tool a replay archive for practice games. Tune in at for more about that.

One last thing: I’m in the process of moving the Spawning Tool off of my personal server and onto Amazon Web Services. As such, there may be some downtime in the near future. Deployment might be rough, but I think this will ultimately lead to a much more stable environment.

Leave a Reply

Your email address will not be published. Required fields are marked *