Elemental: Fallen Enchantress is the first Stardock game I’ve been the lead developer on since The Corporate Machine. Being able to dedicate development time to a game was made possible by last year’s sale of Impulse to GameStop. And I’m having a blast.
Those of you who have been with us since the original Elemental: War of Magic have hopefully noticed some changes besides visuals and game play. My focus has been on performance, robustness (which is different from stability) and of course my particular coding niche, multithreading. Hence, in the upcoming beta 2, I’ll be extremely ticked off if it crashes for anyone in any way ever.
Now, Beta 2, which is due next week for you guys, is going to be a pretty big change from beta 1. I won’t spoil things by listing those changes except to say that we’ve taken your crash logs, your feedback and combined it with our own list.
Personally, the thing I’m noticing the most, the #1 thing that screams at me, is that battles are magical duels. Part of this is because for beta 2, the tactical battle AI is in. And part of it is just because more spells keep pouring in.
An aside: Let’s talk about spells
As I play the game, I think “I have all kinds of mana”. There’s a TON of shards in beta 2. They’re common. You are swimming in mana income. Which means we have to provide interesting ways to use that mana.
So as I play, I have been building up a file called BradSpells.xml which is, simply put, spells that I am lobbying for inclusion into the game.
Let me show you how easy it is to add a spell –- if a monkey like me can do it, anyone can:
<SpellDef InternalName="BlessCity">
<DisplayName>Bless City</DisplayName>
<Description>Decreases unrest in friendly city by 10%.</Description>
<Image>S_Inspiration_Painting.png</Image>
<IconFG>S_Inspiration_Icon.png</IconFG>
<IconBG>S_Inspiration_Icon_BG.png</IconBG>
<IconColor>217,206,225</IconColor>
<AutoUnlock>1</AutoUnlock>
<CanStack>1</CanStack>
<SpellType>Strategic</SpellType>
<SpellClass>ImpResourceBooster</SpellClass>
<SpellSubClass>Other</SpellSubClass>
<SpellTargetType>FriendlyCity</SpellTargetType>
<SpellResourceCost>
<Resource>Mana</Resource>
<Amount>500</Amount>
</SpellResourceCost>
<GameModifier>
<ModType>Resource</ModType>
<Attribute>Unrest</Attribute>
<Duration>-1</Duration>
<PerTurn>1</PerTurn>
<Value>-5</Value>
</GameModifier>
<ValidTerrainCategory>City</ValidTerrainCategory>
<AIData AIPersonality="AI_General">
<AIPriority>30</AIPriority>
</AIData>
<HitSoundFX>Spell_DarkEnchant_01</HitSoundFX>
<SpellCastEffectName>Brilliance</SpellCastEffectName>
<SpellCastEffectScale>.4</SpellCastEffectScale>
<SpellDefEffect>
<EffectName>S_Inspiration_Particle</EffectName>
<LocalPosition>0,0,0</LocalPosition>
<EffectScale>0.75</EffectScale>
<EffectDelay>0.5</EffectDelay>
<SnapToTerrain>1</SnapToTerrain>
</SpellDefEffect>
</SpellDef>
This is just copy and paste from other spells that are remotely similar. Bless City is one that can STACK. That means you can put lots of them on your city. I also made one called Curse City which does the opposite to an enemy city (increases unrest). I am hoping that we can put something in where if unerst == 100% then the dice start to roll and if they fail their roll, the city razes itself.
Speaking of which, SOME of the AI factions will raze your cities if they capture them and they don’t want to keep it.
I’ve got a bunch of these kinds of spells that I’ve whipped up that reward me for having a crapload of mana.
My Test Game: Begins

This is a 1 on 1 game. I just want to see how the AI does. This is on “Normal”.

Now, in beta 1, your offensive strategy largely consisted of going up the warfare tree.
But in beta 2, diplomatic capital and crystals matter equal to metal. One lets you recruit from the countryside and the other lets you have tons of magical equipment.
MONEY MONEY MONEY
The AI’s handling of money in beta 1 was…non ideal.

So in Beta 2, the system works on the concept of a credit score. 
The calculation behind that simple –4 to +4 number is a bit crazy but it lets the AI get an idea of how he’s doing and what he should do.
Those silly monsters

This is a Dreadling. What a joke right?

These are Dreadlings. Not such a joke.
I like Dreadlings because I like to feel like a big man. And a big man can kill lots of things. It’s like in SWTOR where my 10th level Sith feel big because he can kill all kinds of stuff (but if he steps off on a level 20 planet he’ll die by a random blaster shot).
Exploring

It is morally wrong that I cannot use this cool weapon right now. In fact, you know what? I’m taking this game back to the store right now.
Tactical Maps
I don’t know about you but if I saw those same tactical maps, regardless of how large my army was I was going to die. I don’t want to sound melodramatic but in the history of all mankind, no pain was greater than having to see the same tactical maps in all situations.

So I wrote a bit of code and asked Paul to help me on designing a series of new tactical maps that are based on a lot of different things including the number of units in the battle.

The AI likes to get on hills for some reason…

…no idea why
Meeting Magnar
Our lawful evil adversary, Magnar has shown up on the scene on turn 60.

They’re only 2 points behind me which isn’t too shabby.
NOW they must die…
I’m going to keep doing this until the AI gets good at handling this because it’s what any decent player will do: I’m going to put together the best stack I can and go after them.
There is nothing wrong with stacks. The question is how to deal with them. If you have all your eggs in a single stack, then they should take your largely undefended cities or crush your stack.

Magnar’s crappy artwork needs to go away soon. Ack.
Anyway, now they will die.

I took their first city easily.
I can tell already they’re doomed. Notes taken. New build.
Second game.
Second game..ended less well for me.

I meant to lose.
Third Game (No more Mister Nice Guy)

Pioneers are now very inexpensive.
Ok. Lost. But I meant to lose…I was…you know, testing and what not.
Fourth Game

Ok. Lost again. Must be some sort of bug. No way this is happening legitimately.