At Incursus, we really dig video games. Not just from a recreational standpoint, but from a design and development standpoint as well. As you may be aware, we also encourage our employees to get involved in various community and/or open-source development projects. One of those projects is an attempt to revamp an almost 10-year old video game with new graphics, soundtrack, and more. Read on!
Paradox Interactive published the classic WW2 grand strategy game Hearts of Iron III (HOI3) in 2009. While it quickly set the bar for what military grand strategy games could accomplish, by today's exacting gamer standards, it has become quite dated. A few years ago, some of our employees were involved in an HOI3 mod called "BlackICE". BlackICE was an effort to continue development of the game, within the limitations of what Paradox Interactive's Clausewitz Engine would allow them to do as modders. Nevertheless, the mod gained an enormous fan base and enjoyed a tremendous amount of success as far as mods go. It has been called the "mod that kept HOI3 alive for 10 years"!
Last year (2016), Paradox published the sequel to HOI3, aptly named Hearts of Iron IV. Unfortunately, they removed a number of key features which made HOI3 a terrific game for budding armchair generals and veteran grognards alike. The core of the BlackICE mod team migrated to the new game, leaving BlackICE for HOI3 manned by a few of its loyal fans. However, a lot of HOI3 players were left disillusioned by a sequel that had "dumbed down" their favorite game series.
Fast-forward to now - 2017. Our team wanted to know if we could revamp HOI3 and the BlackICE mod to bring it as current as possible from a game design perspective. Obviously, there are a great many things we wanted to do, but without having access to the source code of the Clausewitz Engine, we would have some limitations. Specifically, we wanted to:
- Redesign as much of the user interface as needed, and as possible
- Revamp the soundtrack and all sound effects
- Add additional units, historical events, and other items for flavor and gameplay
- Re-balance the game
- Automate as much as possible, especially around the build process for the mod
The new mod is called BlackerICE, championed by one of our employees whose screen name is "Marneman", and we think it looks terrific! This article merely scratches the surface of what we were able to accomplish with this project.
Note: if you are interested in following along with our development, and/or possibly playing the game yourself, join our Facebook group at http://blackerice.com!
The original BlackICE mod consisted of thousands of text files, shaders, images, and other game assets. All of those files were managed by hand by team members. As you might imagine, making even the simplest change could be quite the tedious affair. More importantly, it introduced the aspect of human error to things. If a typo was made, or changes weren't made in all the right places, the inevitable CTD (Crash-To-Desktop) was introduced. Tracking down the cause of such issues became the bane of all BlackICE team members.
We used a number of (mostly) open-source tools throughout this project, and on an ongoing basis as we maintain and further develop the mod.
- Laravel/PHP for web-based tool creation and web services
- MySQL relational database
- BASH scripts (to automate the build process)
- jq to parse and interact with JSON data in BASH scripts
- Adobe Creative Cloud 2017 for art asset creation
- GitLab to manage source code and assets using git underneath
- TortoiseGit as a client into Gitlab on the desktop
- Linux as the OS of choice to run Gitlab, Laravel apps, BASH scripts, etc.
- NSIS (Nullsoft Scriptable Install System) to create the network installer for Windows
- Amazon's S3 for content delivery through the installer
- Probably a host of other tools that I can't think of right now!
One of the first things we did was to create a series of import tools, which allowed us to import all of the unit definitions, terrain modifiers, map data, technology/research definitions, and other vital elements into a relational MySQL database. We knew the project would only be successful if we could provide structure around data where previously there was very little.
Most games have a few dozen units at the most. However, BlackICE (and by proxy BlackerICE) has over 2,000 unit types (mainly historical units)! The relational database approach allows us to very quickly see what game units gain benefits from specific technology research, see all of the techs that a given unit benefits from, etc. It really was a time saver for us in the end.
Once all of this information was in the database, we created something we call the "auto-balancer". In short, it is a way to introduce tweaks to units, technologies, etc. that keeps everything "balanced" as far as gameplay goes. In practice, it is somewhat complicated, so I'll leave it at that. But suffice it to say, changes (even sweeping ones) can be introduced to units, technologies, etc., and the game remains remarkably reasonably balanced from a gameplay perspective. Changes that would take days or weeks before now take milliseconds to implement, and are ready for testing!
Dynamic File Generation
Next, we authored some tools that would take this structured data and dynamically generate all of the thousands of assets the game required. Additionally, by having all of this information in a database, we could put some checks and balances, rules, etc. in place to prevent human error as much as possible. All of the definition files for units, research technologies, historical unit models, unit counter definitions, etc. are spit out by a new automated build process.
We also introduced the concept of packages. Rather than just distributing some massive 2GB+ compressed archive file for the mod, as was the case for the original BlackICE, we abstracted certain things such as unit model images into "packages" that could be added on by the user. The end result was a fairly tangible reduction in the size of the main distribution archive.
We set up a git repository to allow us to better manage and track the source code for not just the mod, but all of our additional tools and scripts as well. Tracking changes is, well, kind of an important thing! :) Being able to do clean builds from controlled versions of source code was a must!
The BlackerICE Build Manager brings everything together under one roof for the purpose of generating the final distribution files for the mod. With the click of a button, a BASH script kicks off that calls all of the relevant web services we created to auto-balance the mod, pull in information from the database, and dynamically generate most of the files needed for the mod to operate. The script goes on to create the various packages and final distribution archive files, and even uploads them to a CDN (Content Delivery Network) for distribution!
The World Map
HOI3 is played on a virtual map of the Earth, with all major and most minor countries represented. Each of those countries is further divided into "regions" and "provinces". Now, the actual layout of the Earth has not materially changed in 10 years, so we didn't need to do anything there! However, the texturing of the map left a lot to be desired.
Here, you can see a comparison between the vanilla HOI3 map/terrain and that of BlackerICE. In addition to adding higher-resolution textures and virtually repainting the entire map, note how we warmed the map up a bit. We also used some retro period fonts from the era (though bitmapping them was a PITA). Not bad for a ten year old game engine!
We also improved the shaders for terrain rendering and water effects (hard to show here as it involves animation). Here are a few more shots - enjoy the scenic deserts, mountains, and even the swamps around Louisiana!
When looking at the detail for a given province, HOI3 provided a very small footprint for this information:
Sure, all of the information is "there", but ... sort of bland. The art assets look pasted on. On a scale of 1 to 10 I give it a "meh". Additionally, with BlackerICE, we had to to make sure we accommodated the larger number of buildings and infrastructure supported in each province. This is what we came up with:
Ah, now we're cooking with gas! The infrastructure/buildings are presented in a faux-tabbed interface, and things are generally easier to read. A highlight was put on any strategic resources to be found in the province as well.
Custom Units / Presentation
HOI3 shipped with around 45 unit types that you could build. BlackerICE sports over 2,000! Though most of these are historical units, and are not buildable in the normal sense. When you click on a unit in HOI3, this is what it looks like:
It's not really horrible, but it isn't terribly exciting either. We wanted to spice things up, and show off the custom made historical insignias and custom art that we made for the game:
The most visible set of changes we introduced involved the UI (user interface). Working under the Clausewitz Engine’s limitations, we still were able to implement some pretty compelling things in this area. Here are a few before and after images of various parts of the UI:
The production screen is the jumping off point for building most any type of unit within the game, as well as convoys and other things. Here is the main production screen of vanilla HOI3. It's .... well, very brown. Bland. Boring. And small-ish.
We kicked it up a notch or ten. In addition to making it bigger, note the use of compositing between 3D and 2D artwork to add some flavor. The icons and UI controls (scrollbars, etc) were completely redone, and there is an increased focus on resources. The factory smoke billowing up into the map space turned out quite nicely as well!
Technology Research Screens
In addition to building new units, researching new and exciting technologies is a central part of your quest to fight and win WW2. Vanilla HOI3 shipped with a modest number of techs. BlackerICE currently sports almost 700 technologies! Here is what the tech research screen looks like in vanilla HOI3:
As you can see, it is still ... very brown. Cramped, but still useful nonetheless. The tech categories can be seen running across the top using a "tabbed" interface. Of course, with BlackerICE and its massive technology list, we needed to not only make it pretty, but also support a LOT more techs. Here is what we came up with:
You can see that we kept the tabbed interface, though now it runs more vertically (on the left side). Each technology research area was made unique with some cool backdrop imagery. And following in the style we wanted, it's black .... as in BlackerICE! Here are a few more research screens, to give you an idea of how we approached the unique artwork for each one:
Military Intelligence Screen
In HOI3, you can train spies and send them out into the world to peek at your enemies, or friends :) Here is the Intel screen from HOI3:
Ok, now we aren't "as" brown, we're purple-ish. Ugh. My eyes. They burn. We are still working on this particular screen, as of this writing, but here is what it looks like currently:
You can't really see it, but the lady peeking through the UI assets is a female spy holding a gun. You can see her in full when there is no data to show. At any rate, we re-arranged this considerably, made it bigger, etc. We also reworked the little LED-looking "pips" to be, well, more like LED pips! Complete with ambient glow.
Political Landscape Screen
The political screen of any game is bound to be boring as hell. This one is no exception:
Ok, now we are full-on blue-ish here. The lack of consistency between screens was set to eleventy, I swear. It has a reasonably clean layout, though. But we thought we could do better:
The original soundtrack for Hearts of Iron 3 was, in fact, very good. Composed by Andreas Waldetoft, the music did a terrific job of setting the mood, no matter what was happening in-game. Unfortunately, there is only so many times you can hear the same game music before it starts to weigh on you. After nearly 10 years of hearing those songs, we felt it was time to change things up a bit. So, we replaced the soundtrack with some commercially available game assets. Yes, this cost us a few bucks in the end, but it was worth it! We also did the same for most of the sound effects.
We continued the trend of introducing new unit types that we had started with the original BlackICE mod. We added Medical Support Battalions, Quartermaster Battalions, and many other new unit types. Ultimately, we didn’t want the game to just look better, it had to play better as well. We also did a fairly thorough review and clean-up of existing content, addressing lack of consistency and bugs where we found them.
Finally, everything is now funneled to gamers through a spiffy Windows-based network installer, built using NSIS. They can choose the various game add-ons that they want, and everything is downloaded and installed for them, both for Steam and non-Steam users. Ultimately, this will morph into an automated game updater as well!
BlackerICE has been an amazingly successful project thus far, and we haven’t even released it yet! As we quickly approach our first release, we take a brief pause to thank the thousands of open-source software developers who created the vast majority of the tools we used in creating the mod. And thanks to Paradox Interactive for creating a game that, despite its flaws, has withstood the test of time! And finally, thanks to the thousands of gamers that made BlackICE so special, and to the ones who are anxiously awaiting the release of BlackerICE!
Marneman would like to also thank his great friends that, with him, formed the core of the original BlackICE mod team: Panzeroo, Maverick87, and Had-a-Dad!
Shameless plug: If you or your organization have game development or creative design needs, we invite you to take a look at our services!