A while back I planned on making a Civ 4 scenario called “Scramble for Africa” that would deal with the European colonization/conquest of the continent from 1880’s til WWI. I thought it would be interesting … but I never made it due to time constraints. Now Civ 5 is out, but still I don’t think I’ll ever make the scenario.
Anyway, I just wanted to put my notes somewhere. So here they are.
Now as I reflect on my original design, I wonder if it could work well, since the “homeland” of all those European nations would not be represented on the map. Might have needed some significant off-map production bonus or something….
The Civilization series has been one of my favorites for a long time. I played more of Civ 3 than Civ 4, but still the basics are pretty much the same. I got Civ 4 a couple of years ago when it came out, then got the latest expansion “Beyond the Sword” when it came out about a year ago. Fun game! Anyhow, it seems that Civ 4 is quite modder-friendly!
There are a lot of areas for customization in Civ 4. Depending on how deep a modder wants to go, they can change how units look or adjust their stats, add game events, even change the game AI. A lot of Civ 4 code is in Python, and a good chunk of the C++ source code has even been released! I was kind of confused at the breakdown between what you can do in the different pieces of game code. A good resource that breaks it down is at http://civilization4.net/3/115/153/:
- World Builder – Map editor, point and click. Saves all map data as a text file, so you could create script to modify something in the map files or even create your own map generation script (in fact, the game’s stock custom map creation scripts are all in Python.)
- XML files – unit and building stats, graphic and sound file paths, keyboard and mouse mappings, hooks to Python
- Python – add events, change game rules, user interface
- SDK – game functionality, AI code
It seems like this could be a good development platform, because it’s already a working system — I won’t have to do everything from scratch. This could also be a downside, though, if understanding the system is difficult! I think I will explore the code a little and see if I can figure out how it fits together, then maybe try out a simple mod.