“With the Celtiberians and the Cimbrians we fought as with deadly enemies, not to determine which should be supreme, but which should survive; but with the Latins, Sabines, Samnites, Carthaginians, and Pyrrhus we fought for supremacy. The Carthaginians violated treaties; Hannibal was cruel; the others were more merciful.”
Cicero, De Officiis, 1.38

Hello, Lucas here! Today I’ll talk about Rome’s expansion. This continues from Part I: Concept.
Rome famously was a city-state that became a huge empire. I think this is a big part of why people are interested in Roman history. How did this expansion happen? What was it like?
So, naturally, the game reflects this. Let’s dive into it.

Since Historia Realis is focused on historical realism (it’s right there in the name!), I’m prioritizing the historical expansion of Rome. This expansion was more an expansion of influence than of territory, but that’s besides the point.
Here’s a tool I made to visualize the data that is fed to the game in order to guide Rome’s historical expansion:

This tool is available for free here. It allows you to generate semi-historical timelines similar to above.
So if you want to do a historically accurate playthrough, you can!
However, a big part of what makes games fun is toying with things and seeing them play out differently. There are a few ways to make that happen.
Semi-Historical expansion mode
A planned feature is a Semi-Historical expansion mode, which distorts the historical timeline of expansion, creating something almost historical but not quite.
Below are a few examples of AHISTORICAL timelines generated with the tool I made:




Again, you can play with this tool to generate your own random timelines. If you randomize a cool one, share a screenshot in our Discord!
A note on Start and End Dates
For now, I’m focusing on the period between 200 BC and 50 BC. This is after the 1st and 2nd Punic Wars, when Rome expands its influence around the Mediterranean, and before Caesar's civil war. I want to eventually stretch those dates both ways, perhaps into 300 BC to 50 AD, or beyond. But I think both the Principate and the Punic Wars would require some special mechanics, so I’m leaving them for later.
Anyway, let’s move on!
The simulated part
Even if a war starts at the exact date it did, its result is determined by the game. Do the Romans win their campaigns in this war? By how much do they win? These things influence how the war goes.
The end date of a war is far more variable than the start, because it has to take into account what happens in the simulation. The start can be unsimulated; I can just throw that into the game like an event that happens in a specific year.
Even then, the way I’m planning this is that these events (which I’m calling contingencies, let me know if you have a better name) require a response from the Senate, a war declaration. And that requires simulation. It could be that a contingency appears, but the Senate doesn’t put it to vote, or votes against going to war, or the Assembly does not confirm the Senate’s decision (all of these possibilities happened, historically). In that case, the war simply doesn’t happen
I’ll need to figure out a way to deal with that, by the way. Otherwise, when you play in Historical mode but the Senate votes against war, some provinces, even major ones like Macedonia or Africa, could remain unconquered forever. So even Historical mode will require some nudging.
The problems with distortion
Sometimes, randomness produces unwanted results. For example, it can make the 2nd Illyrian War happen before the 1st one, which makes no sense.
There are many solutions to that. One is to generate the names in-game, so that whatever war in Illyria happens first, that one will be the “1st Illyrian War”.
However, I’m inclined to not even name them like that in the game. These are names that historians give in order to easily talk about things. Like “World War I” wasn’t called that when it happened (they didn’t know there would be a second), the Romans also did not name their wars like this.
That said, I think there’s value in saying “this war that just popped up in your game is based on the 2nd Illyrian War”, because then you can see how it’s different from the historical one, if you’re playing semi-historical. If you’re savvy, you can see “oh, this is happening much earlier than it actually did”.
Another thing I plan to randomize is location, so that “something like” the 1st Illyrian War happens in Gallia Transalpina, or Pannonia, or Lusitania, not Illyria. Then it would obviously not be named an “Illyrian War”, but a tooltip could show it was based on it, using some parameters from it, even if not the location.
It sounds cool to me, but maybe that’s not your cup of tea. That’s fine, there will be other modes.

Another variation on the map. I still don’t know which one will be the default. See the others in the previous diary.
Other modes of expansion
Let’s look at an overview of the modes of expansion I’m planning:
Historical: The exact historical expansion of Rome.
Semi-Historical: A slight variation on the historical timeline, for when you want something a bit different but not too much.
Fully Procedural: Ignores the historical timeline, creates a new one from scratch. For example, Rome starts by expanding northwards into Germania.
Guided Procedural: Uses a historical or semi-historical timeline as “inspiration”, but simulates decisions based on emerging circumstances. Basically a mix between Historical and Procedural.
Random: Rome expands to a random nearby region, then another, then another. Can yield unexpected results, or surprisingly sensible ones.
I don’t know which modes people will play the most. Since Historia Realis is focused on historical accuracy, I’m prioritizing the historical mode first, and then the semi-historical one, for variety.
The procedural ones are harder to make. They require some mechanics to direct their simulation, so I’m leaving those for later. Maybe for when (and if) I include foreign powers, because it would be useful to have this mode in order to make those foreign powers expand too. But I’m not focused on that right now, since foreign powers will only be loosely simulated, if at all. The focus is on Rome.
Random should be easy enough for me to develop (famous last words), but it might provide a very chaotic player experience. I don’t know, it could also work really well. My bet is that if random takes into account nearby provinces and only expands into those (rather than far away provinces you don’t even border), then a lot of the time you wouldn’t be able to tell procedural from random. In other words, it would look procedural and take much less work to develop. But then again, if I’m putting constraints on randomness, is that not procedurality anyway?
Alright! As always, all of these things are susceptible to change.
Let me know in the comments which modes you’re most interested in. Not because “it helps with the algorithm” or any of that crap, there’s no algorithm for Steam news (I think). But because I’d like to know which modes people prefer, afterall I’m making this game for you.
Thanks!
Join our Discord to stay in touch! I'm there, you can ask me questions or give me suggestions!
If you want to support the project further, you can join our Substack.
Thank you very much.
— Lucas
Remember to wishlist Historia Realis! Oh, and follow it too! Then you get cool diaries like this delivered to you!