A massive update to fill you in on the latest progress. Console, ingame options, teams, new effects and experimental mode!

To begin with, I'm sorry for not posting any blog posts for some time - but fear not, the machines are running and here's a super mega update for compensation! Don't forget that you can follow Terra Militia on social media for more frequent updates... hint hint.

Now then, let's get straight down to business! A truckload of time (because #science) has been spent grinding the multiplayer high-level code which now is greatly optimized and also allows for more than two players.

One of the bigger problems the game had was how many players found the game unplayable due to spikes of very low framerate (1-6fps). I finally found the culprit behind most of these frame rate issues, which was situations where orders were being re-run because units could not reach their target (bots especially enjoyed doing this a lot). These were all(?) fixed and as a result syncing times were also improved and players now experience far less "waiting for player lag" than earlier.

With these two important parts of the game improved, I thought I'd finally spend some time working on the fun stuff!

Bot Improvements

I had pretty much left the AI code since I wrote it the first time, and now that the game is really shaping up I thought it was about time to improve it.

First of, support for more than 1v1 was added. Playing eight player matches can be quite interesting.

They are much more better at placing buildings, defending and attacking and realizing when to do it (without cheating through free vision etc!). The bots are also less predictable now and vary slightly in their behavior each game.
AI Assault
Yellow bot claiming victory just after his final assault after a one hour full-bot game.
The first bot iteration cheated by gaining 300% resources from gathering, it's now decreased to 200% and but they perform much better than before and provide a challenge to most players. Preferably the bot shouldn't cheat at all, but there's a long way to get there. The plan is that when bot difficulties are added there will be at least one or several levels that doesn't cheat.

Improving the bot difficulty is not very high on the priority list as the single player aspect of Terra Militia will focus mostly on campaigns where players are given scenarios to complete rather than generic bot encounters.

In fact, its very common for bots to cheat in real-time strategy games. Some examples: Starcraft I, Starcraft II, Age of Empires 2, Empire Earth.

Input 2.0

If you've been reading my previous posts you probably have an idea of how much time I spend on making things, in my eyes, perfect. Therefore, I decided it was time to make a streamlined system for all input when I realized how I'd have to bang my head against the wall for the next couple of the days if I didn't.

This time, a set of reusable input components (that work fantastically together through events), for both reading and displaying user input was made. This immensely simplified the process of adding the ingame console, a chat to lobbies and remaking the options menu.


I have to admit it was a huge mistake not to implement a easy way to speak with the code in real-time before now. A task much easier to implement than anticipated yet has already saved a lot of valuable time previously spent on changing a few values in the code, exporting a build and running. All now accessible by pressing a hotkey, typing out a command and hitting enter. Commands and values are easily defined in the code in beforehand. As a bonus, all custom script commands can be run through the console, to ease up the debugging process for map-makers.
Console Screenshot
Here, a few variables have been edited and two commands entered by the user. If you start typing something you will immediately be shown valid commands containing your input and their current value.


A proper system for options was made and new options are now super easy to add at any time. In addition, the following options were added;
Vertical Sync - On | Off
Particles - Enabled | Disabled
Clouds - Full | Subtle
Always Show Resource Bars - On | Off
Camera Movement - Smooth | Instant
Mouse Orientation - Left | Right
Printscreen Key - Print Screen
More keybindings are to be added Soonâ„¢.

Related to this, the main menu and options menu were redone, with options now FINALLY being accessible ingame.
Options Menu
It's scrollable and pretty smooth.


It's been amazing to play more and more multiplayer games as it greatly increases the amount of feedback I get. Here are some of the latest QOL improvements and fixes worth mentioning.
- When in Borderless or Fullscreen mode, the cursor will now lock to the monitor the game is displayed on to prevent the cursor moving to another when panning the camera. Personally I almost always move the camera by holding the scrollwheel. (Not finalized)
- Player names are now displayed not only for units but for buildings too.
- Players are now properly warned if one of their buildings is under attack.
- Towers will now correctly start firing at max range. (These are the broken things you notice when you start playing with the aim to win.)
- A big batch of unit balancing.
- Various interface fixes.
- Ordering several gatherers to gather from player-made resources (farms) will now properly spread them out to available farms.
- Various fixes to decrease frequency of units going idle.

Team up!

Functionality for teams was written from the ground up and the host can now assign teams in the lobby. Players in the same team share vision. Co-op multiplayer might still cause desyncing though.
Friendly bot
BONUS: Here I'm visiting the base of my bot ally on a 2v2 player made custom map.

New Effects

GFY Preview
When a building is destroyed a debris prop will spawn along with some particles.
GFY Preview
Catapult stones leave a small hole in the ground after a small particle impact.

Experimental Mode

In the launcher you can now choose whether to run a Stable or the latest (experimental) build. It's a relief to finally be able to test things on multiplayer on a regular basis without ruining the experience of other users. However, should you be curious you can always jump into the experimental version to get a sneak peak of latest changes.
Launcher Screenshot
For best experience, players not advised by the developer should run the Stable version while planned tests are run on the experimental version.

Wrapping Up

All this and more is now available in the experimental mode, make sure to keep an eye out for keys if you haven't got one yet!

As you might have noticed it's been hard to follow a regular scheme of blog posts, often because I'm working on something that I think isn't interesting enough to write about and sometimes because I'm having too much work to get around writing about it.

Do you personally prefer more frequent small updates or fewer but larger ones? I'd love to know. Please leave a reply below.

Trigger01, over and out.