Era of Miracles fantasy mod - developer diary

PawelS

Ancient Druid
Joined
Dec 11, 2003
Messages
2,811
Location
Poland
Mod Information

Civilizations

1. Dreamers (Republic of Dreams)

Human explorers, inventors and pirates. An expansionist civilization with good naval units. They are one of the few civs that have access to gunpowder-based units - Musketeers and Cannons. Their most impressive UU is a flying ship.

2. Griffites (Griffite Kingdom)

A Human nation, resembling a medieval European kingdom. They specialize in mounted units, and get bonus yields from Pastures. They can also train Griffin units (I hope someone will convert this unit from FFH or make a new one).

3. Archons (Holy Archon Empire)

Humans with a Greco-Roman and religious theme (not unlike the Highmen/Archons from the Age of Wonders series). They have good priests and strong Legion units, as well as access to some divine beings, like the Angels (again, hopefully someone will make a model for such unit).

4. Essentes (Enchanted Kingdom of Essentes)

Humans with a strong sense of magic. They have good magical units, and generate more mana (yield) and magical power (strategic resource) than other races.

5. Calx aka Stone People (Dominon of Calx)

Human-like beings, strong at defense. They have access to a special improvement, called Creator Statue, which makes their nearby units stronger. They get bonus yields from Quarries, and are masters of Earth Magic.

6. Vodniks

Fresh water spirits, they get bonuses from rivers, lakes and marshes. -1 food from Plains. Masters of Water Magic.

7. Windwalkers

A fast Human-like race, all foot units get +1 movement. They are good at commerce and Air Magic.

8. Snobar (Snobar Clans)

The name "Snobar" comes from "Snow Barbarians" but they are a civ, not barbarians. Viking-like Humans, they get better yields from Snow and Tundra terrain, but also -1 production from Plains and -1 food from Flood Plains. Good at making amphibious assaults.

9. Nikkei (Empire of Nikkei)

Humans with a far-east theme. They have some "exotic" units and are good at science. Probably will have Japan's UA - damaged units fight as at full strength.

10. Azracs (Azrac Empire)

Humans living in the desert (the name comes from the original Age of Wonders game). They get extra yields from the Desert terrain and can build a special improvement there, but get one less food from Grassland. They have some special units, like Camels and Elephants (Elephants can also be used by Nikkei and Lemuria), and a unique process - Caravans, which gives some gold and some science (and also some culture and mana, if it's possible to make such process in the expansion or with the DLL), which is more effective than the standard processes that give only one yield type.

11. Lemuria (Tribes of Lemuria)

Humans living in the jungle. They have access to many jungle-dwelling creatures as UUs (need models). Also yield and combat bonuses related to Jungle. Good recon units.

12. Elves (Elven Kingdom)

Typical stuff - Bonuses in Forest, good archers, some special magical units. Good culture.

13. Halflings (Halfling Shire)

Good farmers. Units are weaker than other races, but can retreat from combat when losing. Less unhappiness from population (0.3 instead of 0.5), more from number of cities (12 instead of 10).

14. Gnomes (Gnomish Kingdom)

Inventors. They have access to many unique mechanical units, and get extra science from Workshops (it's an improvement that can be built on flatlands and gives production, like in Civ4). Good siege units.

15. Dwarves (Dwarven Kingdom)

As usual - good miners, combat bonus in Hills, melee units good at defense. Some gunpowder and steam units (Cannon, Steam Tank, Ironclad) are available to them.

16. Orcs (Red Horde)

They have the same units as the Barbarians. Can convert Barbarians in camps to their side. A combat oriented civ with an offensive bonus for melee units. Less unhappiness from number of cities (8 instead of 10), more from population (0.6 instead of 0.5).


The following civs probably won't be available in early versions of the mod, due to the complicated nature of their planned unique abilities, and/or the need for unit models:

17. Dark Elves

I'm thinking of an "Eternal Night" UA, which decreases the vision range of enemy units in their domain. Among UUs there should be some monstrous animals, like bats, spiders and snakes (so I need models for them).

18. Demon Cultists

Produced units get random mutations as promotions. Access to demonic units. Masters of Fire Magic.

19. Death Cultists

Necromancy - defeated enemies are converted to Undead units under their control. Access to Undead units.

20. Neutrium

Non-magical Humans - they don't get any mana and can't produce magical units and buildings, but they have access to some unique units and buildings, representing their superior culture and science.


Old post:

Greetings to all CivFanatics. Some of you may know me as an Age of Wonders modder and PBEM player. I really like the new features in Civ5, and I decided that I want to make a fantasy mod for it, inspired by my favorite games, especially Master of Magic, Age of Wonders series, and the Fall from Heaven mod for Civ4. But it won't be dark fantasy like FFH, just "normal" fantasy like MoM and AoW. It will be based on my personal preferences (the most important of them is that the game should restrict you heavily from having too many cities, especially in its early stages, so you should expand gradually instead of founding or capturing a lot of cities at once), but I'm also open for suggestions.

For now there aren't many modding capabilities, so the mod will start modest, but later I'm going to add more features when they become available (especially when the DLL source is released). I'll also need help of other people, especially those with graphical and writing skills, but it will be later in the development process, for now I need to create the basics of the mod.

Before I release the first playable version (and perhaps after it too), I'll keep you informed about my progress in this thread. I'd like to hear any comments, suggestions and advice that you might have.

So here goes the first entry in the diary:

2011-09-04: Getting ModBuddy to work

I've been modding Civ5 before (it was just some tweaks to adjust the game to my liking, not a total conversion like this one will be), but I just set Steam to offline mode (to prevent patching) and modified the original XML and LUA files. This time I want to make a proper mod, using the ModBuddy.

I reinstalled the game (to restore the original versions of all files that I had modified) and the modding tools, and tried to run the ModBuddy.

But it didn't want to start, and displayed cryptic error message ("cannot find one or mode components"). So I googled around and found a possible solution: I needed to install the Isolated Shell (whatever it means). But I remember that I managed to run the ModBuddy long time ago (only to check if it works), so I must have that Shell thing installed. I downloaded the installer and tried to run it in repair mode, but it displayed some strange messages and ModBuddy still didn't work. But after uninstalling the Shell and installing it again it works!

Now I only need to figure out how to use it...
 
2011-09-05: Settlers

Kael's guide is very helpful when it comes to using ModBuddy, after reading it I know much more about this subject, and I'm ready start making changes to the game. But what to do first?

I decided that before I add anything fantasy to the mod, I'll make the most important change that I always wanted in the game: the new settler rules. I made a similar change to Civ4 in the past (for my private use, I haven't published it), but for Civ5 I can do it in a better way, because of the global happiness. My idea is that settlers should be unbuildable, and you should get them for free when you have enough happiness. The factors that affect happiness will be changed too: you'll get 10 unhappiness per city and 0.5 per citizen, so the number of cities will be a more important factor than in the normal game, and population less important.

I had some problems with getting my LUA script to work, but now it works and gives free settlers when it should. The only problem is that I want to give the settlers to city-states too, so they become "minor civilizations" instead of city-states. They get the settlers, but they don't use them, and I can't seem to find a way to change this :( So I guess they have to remain one-city civilizations for now, until I find a way to make them settle new cities (if someone has any advice how to do it, please let me know).
 
2011-09-05: Settlers

Kael's guide is very helpful when it comes to using ModBuddy, after reading it I know much more about this subject, and I'm ready start making changes to the game. But what to do first?

I decided that before I add anything fantasy to the mod, I'll make the most important change that I always wanted in the game: the new settler rules. I made a similar change to Civ4 in the past (for my private use, I haven't published it), but for Civ5 I can do it in a better way, because of the global happiness. My idea is that settlers should be unbuildable, and you should get them for free when you have enough happiness. The factors that affect happiness will be changed too: you'll get 10 unhappiness per city and 0.5 per citizen, so the number of cities will be a more important factor than in the normal game, and population less important.

I had some problems with getting my LUA script to work, but now it works and gives free settlers when it should. The only problem is that I want to give the settlers to city-states too, so they become "minor civilizations" instead of city-states. They get the settlers, but they don't use them, and I can't seem to find a way to change this :( So I guess they have to remain one-city civilizations for now, until I find a way to make them settle new cities (if someone has any advice how to do it, please let me know).

Two things:
1- Kael's guide is missing a lot of important stuff, since it was based on a Beta. A lot of modders (including myself) found that out the hard way.
2- I've been trying to make a "minor civ" mod myself, the issue is that they don't have the AI to use settlers (I've seen them use them as combat units, as a result). I haven't managed to find out how to give that AI, though.
 
1- Kael's guide is missing a lot of important stuff, since it was based on a Beta. A lot of modders (including myself) found that out the hard way.

I just wanted to learn the basics of using ModBuddy, as I never used it before, and the guide served this purpose well. When I need some more detailed knowledge, I know I can use other sources of information, including this forum :)
 
I have found a solution! Not a very elegant one, it just creates additional cities for the city-states, bypassing the problem of inactive settlers. I made a post in this thread about the details.
 
2011-09-06: To add, first you need to delete

This mod will be a "total conversion", meaning that I need to delete the existing game elements, and then add new ones. After some failed attempts I figured out how to do it properly:

I created an SQL file, deleting things from all tables that I need to replace. For example, in case of Civilization, it looks like this:

Code:
DELETE FROM Civilizations;
DELETE FROM Civilization_BuildingClassOverrides;
DELETE FROM Civilization_CityNames;
DELETE FROM Civilization_DisableTechs;
DELETE FROM Civilization_FreeBuildingClasses;
DELETE FROM Civilization_FreeTechs;
DELETE FROM Civilization_FreeUnits;
DELETE FROM Civilization_Leaders;
DELETE FROM Civilization_UnitClassOverrides;
DELETE FROM Civilization_Start_Along_Ocean;
DELETE FROM Civilization_Start_Along_River;
DELETE FROM Civilization_Start_Region_Priority;
DELETE FROM Civilization_Start_Region_Avoid;

(It should delete the content of all tables in an XML file, including those that are unused, because they may be used in a DLC. For example, Improvement_AdjacentMountainYieldChanges is not used in CIV5Improvements.xml, but it's used in the Inca DLC for the Terrace Farm.)

Then I can (in a file that is placed later on the Actions tab than the aforementioned SQL file), add my own civilizations in a file that looks similar to the original CIV5Civilizations.xml, but without the table definitions. So far I placed a copy of the original civilizations there, but they will be replaced by the mod's civs.

(This post looks like a tutorial, but I don't think this thread should be moved to the tutorials section, because the next diary entries will often concentrate on the mod features rather than on technical aspects.)
 
2011-09-07: Civ#1 - The Dreamers

From this post, I start describing the civilizations that are going to be included in the mod. I'm not going to get very original here, these will be the stereotypical fantasy factions.

First one is the Republic of Dreams, also known as The Dreamers. Not unlike Lanun in FFH, it's a nation of sailors and inventors, who, as the name suggests, dream of claiming new lands and their riches. They get bonuses for naval units and extra yields from sea resources, and pay less for purchasing plots. They also have access to the 'gunpowder branch' of the tech tree in late game, which allows building some advanced units like the Ship of the Line, Cannon, and Musketeer. Overall an Expansive and Seafaring civilization, in terms of the civ3/4 leader traits.
 
2011-09-08: City names

I think getting the same sequence of city names everytime you play as a given civ is boring. In a normal Civilization game it's OK - the cities you found first are usually the most important ones, so they should have names of the historically most important ones for that nation. But in a fantasy mod it doesn't make much sense. So I made it like Master of Magic, where the name of a newly founded city is selected randomly from the race's list.

Technical details here.
 
The DELETE issue that you're struggling with [Edit: will struggle with] is one that I struggled with almost a year ago (this post) and was finally solved by lemmy101 here. See also Ahwaric's template mod.

In short, deleting items causes the ID's to be non-continuous. This is fine for some things (civ's iirc) but very fatal for others (techs, units). lemmy101's Anti Deletion-Crash Fixinator SQL solves this problem by renumbering all IDs for all tables starting from zero. It works great for me (still) and I've been able to gut darn near everything (civs, leaders, units, techs, policies, etc.).

That fixes the fatal crash from deleting, but you still have a long road ahead of you. You have to track down and remove all references to things that you have removed, which may appear in other xml (you can't gut everything after all) or in Lua. Use WindowsGrep for this and search all of Assets. There are many random things scattered about that you might not think about (e.g., TECH_WRITING is called in Babylon DLC... not a problem if you delete all civs). Resources appear in much Lua so you might save that for last.

Ideally, I had hoped to create a gutted mod for others to use as template. However, I ended up deconstructing (using deletion fixinator) and building my mod in parts. So I don't have a good template to share. I never tried Ahwaric's template so I don't know if it works (or still works after so long).
 
Some more tips for you (note that I speak as if I've actually produced a working mod):

If you're going to be (eventually) adding many units, techs, etc., SQL is way way easier to write, read and troubleshoot than XML. See my tutorial here. I resisted SQL for a while because I hate learning new things. However, it has been worth it in this case. I've entered >200 new things in my mod in perhaps 300 lines of SQL that are very readable. These include many items that have >5 or 10 fields to specify. Same in XML would be 8000 lines or so. (You can test your SQL code instantly by dropping into SQLite... I've probably spent < 1 hour total tracking down typos.)

Also, since I'm acting like some kind of authority here, I might as well promote this too. (useful if you will have >5 .dds images in your mod, life saver if >100).
 
2011-09-09: In response to Pazyryk

I was going to make a post about the next civ today, but I'll save it for later, I'm acting according to the "mod something every day and post something every day" principle (it doesn't have to be the same thing).

About deleting things: If I understand it correctly, if I delete all content from a table (for example Technologies) first, and then add things to it, I shouldn't have the problem of non-continuous IDs. (For now I'm going to add all techs from the original game with shifted X coordinate in the tech tree, so I can add new ones at the beginning of the tree. Later, when I remove all references to the original techs, they will be removed from the mod.)

About SQL vs XML: For now I prefer to add things to the mod in the same form as it's done in the original game, using XML tables. But I can change my mind in the future, especially when I need to add many similar things.

About the .dds files: I haven't added any of them to the mod so far, and I have no idea what kind of operations ModBuddy does with them that slow it down so much. Thanks for making the tool, I'll use it when I run into this problem.

May I ask what kind of mod you're making? Things I heard so far about it sound really interesting...
 
Interested. Fantasy mods are always welcome...
 
About deleting things: If I understand it correctly, if I delete all content from a table (for example Technologies) first, and then add things to it, I shouldn't have the problem of non-continuous IDs.

Correct in theory, based on the explanation I gave. However, when I was trying this 11 months ago, I could not succeed even doing exactly what you say. The Deletion Fixinator totally cleared this problem up for me. I can use it and delete from tables wholesale (as you did above) or in pieces (which I do for resources and a few other things). Try it if you start to have problems in this area.

May I ask what kind of mod you're making? Things I heard so far about it sound really interesting...

Fantasy mod. But don't worry about competition, you won't see it till mid-2012 (just before the world ends). Actually, there is a tremendous amount that is already working. There are about 1000 .dds 2D art images. Images for techs, policies, hundreds of "important people" (part of an entirely new great people/hero/leader system). I've even managed to implement a system where a civ gains a name after game start (they start as "A tribe of Orcs" or somesuch), and leaders can change (it's all a kludge: I've more or less suppressed the core Civilization/Leader system in terms of UI and built my own over it by direct control of screens and altering text on the fly. I can't get at leader AI but it doesn't matter much because most interesting AI decisions relate to the new game elements I'm adding; I can control AI response to these in Lua).

One good reason to learn SQL is that (in addition to easier and cleaner entry of core game items) it gives you the ability to exploit SavedGameDB more fully. I have about 10 tables here that can be modified during game progression, allowing me to develop all kinds of new systems. It's tremendously powerful.
 
Correct in theory, based on the explanation I gave. However, when I was trying this 11 months ago, I could not succeed even doing exactly what you say. The Deletion Fixinator totally cleared this problem up for me. I can use it and delete from tables wholesale (as you did above) or in pieces (which I do for resources and a few other things). Try it if you start to have problems in this area.

If adding all things in one XML table, with ID=0 assigned to the first one doesn't help, I'll use the fixinator. I'm going to start building the tech tree tomorrow, so we'll find out.

Fantasy mod. But don't worry about competition, you won't see it till mid-2012 (just before the world ends). Actually, there is a tremendous amount that is already working. There are about 1000 .dds 2D art images. Images for techs, policies, hundreds of "important people" (part of an entirely new great people/hero/leader system). I've even managed to implement a system where a civ gains a name after game start (they start as "A tribe of Orcs" or somesuch), and leaders can change (it's all a kludge: I've more or less suppressed the core Civilization/Leader system in terms of UI and built my own over it by direct control of screens and altering text on the fly. I can't get at leader AI but it doesn't matter much because most interesting AI decisions relate to the new game elements I'm adding; I can control AI response to these in Lua).

Sounds intriguing, I think I'll "borrow" some things from your mod to mine after yours is released (if you allow me, of course). I'm not going to introduce such a complicated leader system as yours, but I too had the idea of using the GP system for heroes. Also the icons and other images are what I need desperately :)

One good reason to learn SQL is that (in addition to easier and cleaner entry of core game items) it gives you the ability to exploit SavedGameDB more fully. I have about 10 tables here that can be modified during game progression, allowing me to develop all kinds of new systems. It's tremendously powerful.

Sounds intriguing, but at this stage I have no idea what can be done by exploiting SavedGameDB, or how to do it. I'm doing pretty basic things now, and advanced features will come later. For example I'd like to introduce a system where you can build other civ's unique units and buildings after capturing their city. This should cause lots of unhappiness when the races are hostile to each other, and you should be able to build a building or project that migrates the city to a friendly race (as an alternative to razing and building a new city). For now I don't know how to do it, but it should be possible, especially after the DLL code is released.

2011-09-10: Civ#2 - The Griffites

I really like the Griffin symbol that is used for the Babylon DLC civ. Luckily it's included in the base game files (I'm not going to make my mod require any DLC, and I even don't own them myself), so I came up with the idea to use it for this civilization. The name is my translation to English of the name of the family that ruled Pomerania for several centuries. They are usually called "House of Griffins" in English, but I translated the Polish term "Gryfici" directly to create a name for the civilization.

The Griffites are a typical Human feudal kingdom, with an emphasis on cavalry power. They get bonuses for mounted units, an increased quantity of Horses, and extra yields from Pastures (and maybe even the ability to create new Pasture resources). The Royal Stables unique building provides significant bonuses for cities located near Horse resources. They should also get the Griffin unit, I hope someone will convert the FFH version of this unit into Civ5.

PS I posted so late today because I kept getting the "server too busy" messages earlier.
 
2011-09-11: Early game thoughts

When playing Civ5, I like the early phases of the game, and I get a feeling that they end too soon. Because of that the beginning of the tech tree in this mod will be much longer and more detailed compared to the normal game. You'll start with one or two technologies (haven't decided yet), depending on your civilization (not the same one for all civs like in normal game). To do anything useful, you'll need to research a technology: to build a worker, a scout (but it will be the earliest available military units, available with a first tier tech, and you'll get one for free when adopting one of the early social policies), and other units (there won't be a Warrior unit that you can build from the start). All resources will be revealed by techs, not only strategic. You can't build settlers at all, because, as I wrote in an earlier post, they will be given to you for free when needed. Building gold and science will be enabled from start, so you'll always have something to do in your cities.
 
2011-09-12: Civ#3 - The Holy Archon Empire

The Archons are the most pious civilization of this world. Unlike many other peoples, they believe in only one God, The Creator of the Universe. They have excellent priests, able to heal other friendly units more effectively than those of other civilizations, and also strong Greco-Roman style infantry units (Hoplites and Legions). They get bonuses to Culture, and extra benefits from Golden Ages.
 
2011-09-13: Tier 1 techs

Here are the basic techs in the game, those that you can research without any prerequisites, or get when starting the game (which one(s) you'll get depends on your civ). Of course they may be subject to change during the mod development. There are 6 of them, so they fit above the legend in the tech tree screen.

Fishing - reveals Fish and allows cities to work water tiles (like in Civ4, you won't be able to work them without this tech). I'll add the "special ability" icon for that, it's pretty easy to change it in the interface LUA files. The ability to build a Work Boat and create Fishing Boats will come with a later tech.

Wood Working - enables the Palisade building (which gives a small defense bonus to the city), and reveals the Wood resource (I haven't added it yet, it will be required to build some ships and siege engines).

Stone Tools - enables Worker and reveals Stone.

Hunting - enables Scout, reveals Deer.

Gathering - reveals Wheat and Banana (and possibly more resources when I add them, like Apples).

Ritualism - enables Monument (some civs will get a Totem or Obelisk instead).

PS As you can see, I use the icons of the existing techs for these new ones. If someone is willing to help me with making new icons or other graphical elements (or with writing descriptions for things in the game), please let me know.
 

Attachments

  • 001_techs01.jpg
    001_techs01.jpg
    45.2 KB · Views: 426
It would be nice in a fantasy game to see the tech tree act more as a "diversifying" mechanism rather than the "measure of progress" mechanism that it always seems to be. Every victory condition requires one to complete the whole tree, or nearly the whole tree, an this reduces civ diversity. This was true even in FFH. It's sort of built into the standard Civ tech tree that we are all used to seeing. It would be quite a different game if some civs focused on other things that didn't necessary translate into eating up the whole tech tree. E.g., a pirate civ should focus on pirating rather than progressing up the tech tree (really, should pirates be building libraries and universities?). A gold-focused civ should have other paths to victory (that involve gold) rather than always having to convert gold to tech tree progress (via slider or RAs, which are essentially the same thing...).
 
@Pazyryk:

Interesting idea, although I'm going to open different branches of the tech tree to different civs (I assume Civilization_DisableTechs works, doesn't it?) to make them diversify in the late game rather than make some civs "not focusing on tech". Another diversifying factor will be the social policies, I have some ideas to make them more interesting than in the normal game. I haven't thought much about the victory conditions yet, but one involving accumulating a large amount of gold sounds interesting. The problem is, as always, to make the AI understand it.

The RAs will be removed.

BTW So far I only had to use the Deletion Fixinator for Resources, other things (like Buildings and Techs) work without it (but I haven't deleted some things yet, like Units and Policies).
 
Top Bottom