As the 2020 quarantines started, I decided to finally get started on the M2TW mod idea I'd been kicking around in my head for ages:
I bought these custom medieval Greek fonts from a college professor in Spain
What is it?
I went into this project with a few key ideas:
Setting:
- Basil II, the Byzantine Emperor commonly called "The Bulgar Slayer," led an odd reign for an emperor, leading armies in the field and conquering vast swaths of Balkan land, a very Total War thing to do
- All credit to the History of Byzantium podcast for the historical synopsis
- The timescale of one life lends itself to 12 turn years, and recruitment and building times balanced around that, like Napoleon
- He also faced multiple internal revolts by ambitious generals backed by landed magnates, which occurred to me would be a great fit for a "Baron's Revolt" functionality
- The invasions that might be faced by his successors (Normans, then Turks, then Crusaders) would work very well with the horde functions of the game
- Given that the time is before the Great Schism, cultures (Greek vs Frank vs Arab vs Turkic vs Armenian vs Georgian vs Dualist) might be a better and more varied system than just religions and "heretics"
- Luckily the limited time scale and familiar geography means I won't have to fiddle with a million unit settings, just repurposing & retexturing existing ones
- The wealth of illuminated manuscripts from the time, especially the Madrid Skylitzes, make for an ideal art source for loading screens, thumbnails, unit cards, etc
Technical:
- Advances in things like machine learning open new opportunities for texture development, as I'll show
- Having learned a bit about software development, I can apply some of that to the development process
Community tools I've been using:
Gracul's UnitEditor
Zarathos's Modeler's Toolbox
Gigantus's Geomod
Map and Factions
Here's the big campaign map, with a color scheme based on a map drawn for Roger of Sicily:
From lower left, clockwise:
- The Emirate of Sicily
- Lombard Italy
- Venice
- Croatia
- Hungary (I'll make the colors a bit more distinct)
- Duklja
- Second Bulgar Empire
- The Byzantine Empire under the Macedonian Empire (as you probably knew)
- Georgia
- Armenia
- The Abbasid Caliphate (the Buyid-controlled rump state)
- The Fatimid Caliphate
Armies of each faction
Being just one guy, I figured my Minimum Viable Product would be giving each faction a reasonable army in terms of unit composition, even if it's not the most balanced or complete:
I've just now finished texturing each battlefield unit, which included upscaling each unit texture with ESRGAN, a Machine Learning tool used to upscale all manner of old video game textures:
Before:
After:
This also meant writing custom python scripts using skimage to copy over the transparency levels of the original, and to cut the image into smaller parts for separate processing for textures over a given size.
This means that I turned the normally artistic job of texturing units into a more rote, but manageable, technical problem, with great results IMO:
Unfortunately this can cause performance issues in large battles, but luckily texture quality can be turned down to mitigate this.
Project Practices
Another thing that might be of interest is how I've managed and stored this project. I've kept track of my progress using an issue board on GitHub:
It shows what I still need to do, and where I'm adding to scope creep by going ahead and doing the texture and unit card stuff now.
Unfortunately, GitHub won't store files in the sizes that I need, even in a paid service. Google Cloud has a little-used Source Code Repository service that totally will, though:
Although it's not free, GCP does offer a $300 introductory credit and the service itself has cost me pennies in the time I've used it since those credits expired.
I'd recommend learning how to use Git structure for anyone looking to develop software, especially when version control is needed to roll back from versions that crash a game with poor log files.
What's Next
Right now I need to get back to writing the text files, adding armies to the map, fleshing out the world more, and removing the unchanged files from my repository.
Later, I'll have to look into what the Memory Editing efforts have produced to make the AI look better as well!
Also, in the name of science, I've been trying another method of making character portraits from the art I've cut out from manuscripts and faces from people that don't exist:
Thought I might as well check in with my progress. I'm glad my passion project is finally looking more and more complete!