Era of Miracles fantasy mod - developer diary

2011-09-14: Problems when building the tech tree

Constructing the tech tree is not an easy task. I may have very good ideas which techs should require which, but the effect is a tangle of lines that would confuse the player. So I have to reorder the tech positions and remove some dependencies to create a more clear and readable tech tree. Less dependencies is not a bad thing, as it makes it easier for the players to specialize and "beeline" to some advanced techs before getting the more primitive ones.
 
Awesome stuff there, if at a certain point in the following months you need some graphical help, let me know, I might be able to help a bit.
 
@Sneaks: Thanks for the link, I'll use it when I have problems with the pipes, or need more vertical space in the tree (I think I'll make it 12 techs high, which is between the standard and Morlark's versions).

@OrsonM: Many thanks for your offer, any graphical help is highly appreciated as I'm quite inept in this area :) One person already offered to help me via PM, but there are many things that I need to make the mod look good, especially icons. For now I'm using the standard icons for everything, but it would be nice to add some custom ones before the first release, I'll let you know when I finalize the list of things that need icons.
 
2011-09-15: Civ#4 - The Enchanted Kingdom of Essentes

The Essentes (inspired by FFH's Amurites) are the most magical people in this mod, they interact with "essence" (the magical substance that fills the space) strongly, which increases the amount of Mana they get from nodes and makes their mages the best in the world. They also love studying mysterious things, which gives them a science bonus, and allows them to research the entire "magical" branch of the tech tree.
 
I have plans for 15, but some of them will need new unit graphics to make any sense, so I think it will be 12 at first release.

I assure you, no you don't, people can suspend belief while we wait for units to be released.
 
Indeed. Unit models have been the slowest thing so far in V modding, mainly because the process is convoluted, requires having 2 versions of SDK installed, Blender, Python, Pyffi, and each requiring very specific versions.
 
I assure you, no you don't, people can suspend belief while we wait for units to be released.

Hmm, so which existing units should I use as Undead or Demons, for example? I have no idea... But I have some ideas how to introduce these civs without some of their special units, so it's possible that all 15 civs will be available in "version 1".

I also have problems with units like priests and mages, which all (or almost all) civs should have, and I don't know which existing unit models to use for them. Monsters like Griffins, Dragons, Angels and Elementals will have to wait, I don't think it's a good idea to make the Griffin look like a helicopter ;) But I still have a lot of work to do (and I have no idea when I'll finish it), so it's possible that some models become available before I release the mod.
 
I look forward to seeing what you come up with.

A few random ideas for a fantasy mod:
Social policy trees could support different avenues of development; magic, religion, trade, agriculture, industry, government, etc.

Alternatively, culture could be reworked to function as some kind of MoM-type mana resource, or magical research to pursue different trees of magic type; you could have light, dark, nature, fire, etc. type social policy trees, which could boost particular types of buildings, units, improvements, and so forth. Some policies could also be world spells, that you can trigger only once; Crusade (like total war), Fertility (temporary huge food boost in every city), etc.

Wizard type units could just be a low strength unit with a powerful ranged attack, since you probably don't have the ability to add FFH-type spells.

There is lots of scope for interesting, flavorful Natural Wonders. The idea of limited cities might make settling near natural wonders even more important. This could work particularly well if culture was reworked into magical power or research; natural wonders could be like mana nodes.

I wonder if an Undead civ could get a lot of benefits from Aztec-type mechanics. If culture is magical power, then killing units giving more culture to power spells might work very nicely.
 
since you probably don't have the ability to add FFH-type spells.

Only lacking the graphics. Otherwise, everything is possible via Lua. The 60 promotion limit is a bit of a headache. However, there is really no reason (given full control of SavedGameDB) that you need to use the promotion system for spells. You can simply create a new table called "Spells" (added by xml or sql) added in game initiation by UpdateDatabase. Then add a table to SavedGameDB (say "UnitSpellsKnown") via Lua that keeps track of who knows what spells (modified on the fly by Lua). Then add spell effect (Lua) and modify unit UI to show spells known. (You can implement as one spell per level or whatever other system you want.)

[Edit: this is exactly where Civ5 modding really shines compared to Civ4 modding. You don't need dll for adding mechanisms or carrying information through a game save/reload. However, as others have said, difficulty adding graphics is a serious mod killer.]
 
Otherwise, everything is possible via Lua.
Including AI use?

The 60 promotion limit is a bit of a headache.
I'm mystified as to why they put this in.

You can simply create a new table called "Spells" (added by xml or sql) added in game initiation by UpdateDatabase. Then add a table to SavedGameDB (say "UnitSpellsKnown") via Lua that keeps track of who knows what spells (modified on the fly by Lua). Then add spell effect (Lua) and modify unit UI to show spells known. (You can implement as one spell per level or whatever other system you want.)
Interesting.

As an alternative to spells being based on experience, you could also just tie them into particular units.
So you could have separate units Fire Adept, Fire Wizard, Fire Master that required Basic Magic, Intermediate Magic, Advanced Magic techs, respectively.
And the Fire Adept would have access to a level 1 fire spell, the fire wizard to level 1 and 2 fire spells, and the fire master to levels 1, 2, 3.
Without needing promotions.
Promotions could then adjust spell intensity or something.

No need to go through the hassle of creating a more flexible spell system.
 
Including AI use?

If the mechanism is entirely new (as spells would be) then you will need to program AI logic to tell them when to use it. It doesn't matter whether this logic is added by Lua or, someday, dll (I'll still prefer Lua after we have dll access). The problem is that the unit is trying to move around and do other stuff you don't want because the dll is telling it to do so, and we can't access the dll to affect this. This is the real reason we need dll access. In the meantime, the best we can do is add some kludges to get the AI unit from point A to point B and not give it other options (like builds) that distract it. (It's kind of like training a horse. If you don't want it to do something, don't give it that option.)

And the Fire Adept would have access to a level 1 fire spell, the fire wizard to level 1 and 2 fire spells, and the fire master to levels 1, 2, 3.
Without needing promotions.
Promotions could then adjust spell intensity or something.
It's kind of arbitrary whether to build it with the current promotion system or as a complete add-on system. Other than the 60 limit, the main reason I see for creating an entirely independent system is that it will be independent of the dll. You don't want the dll AI trying to decide which "spell" promotion to take. If you build it entirely in xml/lua, then you will have total control over AI decisions regarding this system through xml/lua. Alternatively, you can use the promotion system and simply reverse/redo bad dll decisions via Lua after the fact (i.e., take away the stupidly picked promotion and replace with a good selection).
 
Hmm, so which existing units should I use as Undead or Demons, for example? I have no idea...

Simple suggestion: if the units in question have distinct unit flags, it matters far less what placeholder you use; people will very quickly get used to the idea that a flag with a skull on it means an undead unit, even if the unit model is just the standard Rifleman. Adding a new flag atlas is very simple, so as long as you do that, you can take your time on unit models.

The only thing you have to keep in mind for placeholders is that the unit you use as a placeholder should have access to all of the animations needed for the actual unit. That means if you add a new archer-type unit, make sure its placeholder has a ranged attack animation. The game tends to get crashy if you botch this and have a placeholder that can't do something the game tries to do.

Pazyryk said:
The 60 promotion limit is a bit of a headache.

Very much so. But the advantage the promotion system has, vice a pure Lua setup, is that it already leverages the Flavor system (which the AI already understands), AND is stored in a more permanent form than a pure save/load Lua table (which tend to get corrupted easily). What you can do, though, is combine the two into a system that uses the best of both worlds.

For instance, use the D&D magic system as an example. Nine levels of spells, seven schools of magic. Instead of needing 63 promotions, each of which adds a unique set of abilities, you just add 16 promotions and use Lua to determine which abilities unlock through the combination of the two axes. So the "Fireball" ability might unlock if you have both the Evocation and Magic III promotions. The school promotions might be unselectable and given to each specific unit type, while the Magic promotions are a chain you select at level-up. You can trim this down further by using some outside mechanism (like Projects, or an explicit read of the unit's level) to replace one of these axes.
 
2011-09-16: Some answers to feedback

Ahriman said:
Social policy trees could support different avenues of development; magic, religion, trade, agriculture, industry, government, etc.

Alternatively, culture could be reworked to function as some kind of MoM-type mana resource, or magical research to pursue different trees of magic type; you could have light, dark, nature, fire, etc. type social policy trees, which could boost particular types of buildings, units, improvements, and so forth. Some policies could also be world spells, that you can trigger only once; Crusade (like total war), Fertility (temporary huge food boost in every city), etc.

My current ideas are something between your two, the policies will represent different branches of economical, cultural and magical development. Some of them can be treated as "world spells", but with continuous effects rather than one-time: for example Water Breathing will make all units amphibious, and the Nature Finisher will cause Forests to slowly turn into Sentient Forests, which gives +1 science from each tile.

I don't like the idea of changing culture into magical power, because I don't think magical power is something that should cause territorial growth.

Wizard type units could just be a low strength unit with a powerful ranged attack, since you probably don't have the ability to add FFH-type spells.

That's how I'm going to do it. They will also have Indirect Fire, while the normal ranged units won't have it. Priests will have weaker ranged attack than wizards, but they will also have the ability to heal nearby units (units won't normally heal outside of friendly territory).

I don't want to introduce FFH-like spells for now, because I don't know how to do it in LUA in a way that makes the AI use them, and I guess it would be quite complicated. So for now they will be just ranged units, spells are something I can think about later (especially when the DLL source is out).

There is lots of scope for interesting, flavorful Natural Wonders. The idea of limited cities might make settling near natural wonders even more important. This could work particularly well if culture was reworked into magical power or research; natural wonders could be like mana nodes.

I too had the idea to use some natural wonders as mana nodes (Volcano - fire, Fountain - water, Fuji - air, Crater - earth). They won't be necessarily unique, there can be several of each type on a map. Instead of using culture, I'm going to make Mana a new strategic resource, required to build some magical units and buildings. The nodes will have invisible Mana resources and (indestructible) improvements on them, so you won't have to build anything on them.

Some natural wonders can be used for other purposes - Reef will be a normal feature that can be found in water, like Atolls. Potosi will become a mountain that gives Mithril (another strategic resource). El Dorado will be Ancient Pyramid, giving science and culture. Gibraltar won't be used at all, because of the graphical glitches it creates ;)

I wonder if an Undead civ could get a lot of benefits from Aztec-type mechanics. If culture is magical power, then killing units giving more culture to power spells might work very nicely.

I thought about giving them Necromancy - the ability to raise killed enemies as Undead (I think it should be doable in LUA).

The 60 promotion limit is a bit of a headache.

I wasn't aware of the limit, now I checked the "known issues" page in the wiki. The one with unit graphics is strange (although not a big problem for a total conversion mod). DLC can add unit models so why mods have to include copies of the entire file? Are there any other limitations that I should know about?

PS I edited my previous posts to add numbers to the civs I described to make it easier to keep track of them.
 
Simple suggestion: if the units in question have distinct unit flags, it matters far less what placeholder you use; people will very quickly get used to the idea that a flag with a skull on it means an undead unit, even if the unit model is just the standard Rifleman. Adding a new flag atlas is very simple, so as long as you do that, you can take your time on unit models.

The only thing you have to keep in mind for placeholders is that the unit you use as a placeholder should have access to all of the animations needed for the actual unit. That means if you add a new archer-type unit, make sure its placeholder has a ranged attack animation. The game tends to get crashy if you botch this and have a placeholder that can't do something the game tries to do.

I'm not any good at making graphics, even as simple as the unit flags, but there are people who offered to help me with it. Thanks for your advice, I'll use it for some units, but I think I won't use existing models for "spectacular" units like dragons and other monsters, that would be too far-fetched.
 
The one with unit graphics is strange (although not a big problem for a total conversion mod). DLC can add unit models so why mods have to include copies of the entire file?

That's not a unit graphics thing, that's how EVERY non-GameData file is done. Any art definitions, any animations, any sounds, any UI elements, etc. ALL are imported through the VFS system, which requires you to provide a duplicate copy of the original file and your new entries simply appended at the end. (Also, you can't actually do the VFS for sound definitions. For no apparent reason, it just doesn't work, so for right now there's no good way to add custom sounds.)

It's the main source of incompatibility between mods; since it needs to replace files in their entirety, you can't have two mods adjusting the same base asset file. Only the GameData entries (where you can use an SQL-parsed Update syntax) are easily merged.

I'm not any good at making graphics, even as simple as the unit flags, but there are people who offered to help me with it.

The thing about unit flag icons is that they're generally monochrome. So, it's very easy to come up with some simple geometric design, and use that to identify your various unit types. For instance, here's a post in my own mod's thread, where I attached an image of some unit flags I'd added for the dozens of new unit types my mod adds to the game. That post was back in May, and it was a couple months after that where I started getting actual unit graphics into the mod. But you very quickly get into the habit of recognizing icons and ignoring unit models, so doing this really helps.
 
You're right, I think I can handle "simple geometric designs", or some modifications to original icons. It's only 32x32 pixels after all.

2011-09-17: Organizing the mod files

I downloaded some other mods, and checked their file structure. In some cases it looked like total chaos to me! I can't work like this, I need to have some order in my files, and the ability to overview the items that I added to the mod (I heard there are ways to view the complete database after applying the mod, but it's not the same).

Fortunately in ModBuddy you can organize the files as you like (at least some LUA scripts and XML/SQL files that alter GameData, the other files need to be modified copies of the original ones, and use VFS, but still you can put them in any folder). The attached picture shows how I did it with the buildings - they are not in one big file as in the original XML, but different tables are in different files, and the main table is divided into two parts (Buildings and Wonders). I added numbers at the beginning of file names to make ModBuddy order them as I like, I also use the numbers to set the order of applying them to the database.

I don't follow the original directory structure in some cases - for example I added Colors and PlayerColors definitions to the Civilizations folder, and Builds to Terrain folder (for me the Builds are more closely related to improvements than to units). Also, as you can see with the buildings, I added files containing TXT_KEYs to corresponding folders.
 

Attachments

  • 002_modfiles.jpg
    002_modfiles.jpg
    47.1 KB · Views: 138
Top Bottom