Frogboy Frogboy

0.77 Development blog

0.77 Development blog

Warning: If you’re not into game development, you will probably find this entry very boring.

While I wait for my items to sell on the Galactic Trade Market in SWTOR, I am also working on Elemental: Fallen Enchantress.

At this point, we have the largest beta group any Stardock game has ever had.  Tens of thousands of you now have in your hands the first beta of Fallen Enchantress.  The goal of this is to help us eliminate instability, identify late-game performance issues, find out how people play the game and evaluate balance, user interface quirks, and overall “fun”.

Introductions

To get started, I should introduce some of our key players. 

Myself, I’m Brad Wardell. My day job is President & CEO of Stardock Corp. which has two entities attached to it – Stardock Software (which makes our consumer software and enterprise software which has historically been what pays the bills) and Stardock Entertainment (Which makes the games).  A year ago, there was a third business unit called Impulse, Inc. which took care of digitally distributing our games and apps as well as those for third parties. We sold this unit to GameStop last year and as a result, I have enough available time to be talking to you and actually being involved in the game development process.  While Stardock has been actively looking to recruit a lead developer (hint hint), it was decided internally that as of November 1, 2011 I would step in to take on the role of Lead Developer on Fallen Enchantress.  My particular specialty is multithreaded software development. 

The true key to Fallen Enchantress’s fun factor has been Derek “Kael” Paxton. He was the author of the well known Fall From Heaven mod for Civilization IV.  He is the one that has brought design discipline to the team.  That means making choices. Fallen Enchantress is first and foremost a strategy game in which the world itself is your first enemy to be dealt with before you can even think of dealing with your other foes.  Besides being the designer, he is also the Project Manager (in game speak “Producer”). Nothing goes in without his approval and this disciplined approach is main reason that the beta you see before you is as good as it is.

We also have a number of Stardock veterans from Galactic Civilizations II on Fallen Enchantress.  My friends Jesse “CodeCritter” Brindle, Cari “Elf” Begle, and Paul “Mormegil” Boyer are all well known to our community.  Jesse and Cari didn’t get to have much time on War of Magic as they were mostly involved on Impulse related projects.  I’ve asked Jesse to take the lead on graphics performance and Cari is helping across the board on game play coding.  The amazing art you see in the game is a combination of Leo (no cool handle) and Mormegil.  They’ve been asked to enliven the world environment (i.e. eradicate the “blah” remnants from WOM).

That’s just a few of the people involved, there’s another dozen+ others but these are the people who get to hear my whining and complaining the most. Smile

Whining and complaining

My job is to try to execute as best I can on Derek’s design.  On some things, I take care of directly.  On other things, I have to complain to Jesse or Cari or Paul (mostly poor Paul). 

So what are some of the things we complain about?

Examples: Why do the mountains not look that distinct? The interface requires me to move my mouse too much around. It takes too many clicks to add improvements. The late game turn performance is slow. The AI needs better units to choose from. The land needs more variance. The world needs more distinction between things I care about and background. The quests need more hand holding. The sound effects are repetitive and horrible. The music doesn’t seem to progress in tempo. I need more spells. And on…and on….and on…

Which brings us to this blog

If you’ve managed to survive this long into this entry, today I’m going to play on a large map with a gazillion players. I am going to play at Normal difficulty and I’m going to try to make the game get as slow as I possibly can.  I am going to try to crash the game.  I am going to wreck this game. That’s my job.

And you, the victim of this blog, will get to see the crashes, the stupid mistakes I find in my code, and my griping on balance, user interface, music, etc.).

A word of caution

If you aren’t in the beta, please understand, my job here is to criticize the game.  My critique of Galactic Civilizations II, which I designed, was that it was essentially a soulless piece of crap with shoddy AI, terrible carpal-tunnel UI, mindless clickfest. And that’s a game that got a 93 metacritic score.  So you can imagine what my critiques of the beta of this game are.  

A key lesson learned from WOM is that if you get too close to the project to the point you’re playing it non-stop and making a lot of the content is that you lose objectivity. I actually thought WOM was a great game when it shipped. Then I took a short vacation, came back, played it and went “Oh, Dear, God. What hath we done?”  Lesson learned, don’t do 100+ hours a week for 3 months and don’t confuse the fun you have making the game with the fun playing the game.

Anyway, point being: I’m going to be flaming the game throughout this journal. The goal is to make the BETA version better so that when people get the final version it is the awesome game people are looking for.

Let the Butchering Begin…

First, I’m going to see if I can cheese up a custom sovereign and faction…

image

Like all good hearted people, I wish that all races were Smurf-Like…

I’m going to play 18 other players…

image

Expert Tip:

Fallen Enchantress defaults to running at your desktop resolution. If you are going to be playing a long game, I recommend lowering your desktop resolution to maximize performance.

The Game Starts

image

I am already regretting choosing deep blue as my color.

Complaint 1: Champions vs. Everyone else

It’s a fine line. You want champions to matter but you don’t want to make it about collecting champions and steam rolling. The basic problem I see is that champions have too much base HP imo.  We used to have it a lot less but then they were pointless. So it’s something we’re placing with.

Complaint 2: UI of the research window

image

If you don’t actually click on the graphic, it won’t switch tabs. This creates a little fatigue after several hours.  The graphic itself is transparent so I go code hunting…

image

Complaint 3: Long end game turn lengths

There is an inncoulous check for city contiguity that gets very expensive late game which I’ve changed to only care about if it’s humans since the AI just uses the auto place system anyway. This little tweak just reduced the turn times by 75%.

Complaint 4: Frame rate when lots of stuff on screen

This might as well be a complaint about reality. You want to see lots of stuff but you don’t want to pay the price.  Well, I don’t want to pay the price but I still want to see lots of stuff.

But the human eye is easily tricked.  It’s just a matter of giving the illusion that the player is seeing the same lots of stuff as they zoom out.  Unfortunately, I know zilch on DirectX programming. So I’m just kind of going through the code and trying to learn it on the fly to see if I can help in this area.

image

My first attempt at reducing the number of things being painted.  On the one hand, the frame rate is really high…

Too extreme. Now, I’m learning this with you right now (on a weekday, I’d just bug Jesse or someone).

image

So there is our start. 25fps.

image

Reducing the number of children to 1 gives us..1fps. A dead end. Oh and I lost my UI.

Trying to crash the game: Tips and tricks

Under the covers, the game revolves around having a ton of things going on at once. I hate “Please wait…” screens. To eliminate that, we use threads. Lots and lots of threads. And it can be tricky with so many different hardware configs. 

The best way to get the game to crash is to have it autosave every turn and try clicking on the UI everywhere. That’ll expose if someone accidentally tried to directly update the UI rather than sending a message request to update the UI.

That is, you can’t just say MySoldier->SetMovesLeft(defaultamount) and in that call have it update the UI right there. It needs to send a message to the UI and then be processed.

The best testers for this are people with crappy computers and terrible OSes (single core, Windows XP users).  We don’t officially support single core CPU’s because they’re so old but their terrible performance helps us find bugs.

Complaint 5: The world needs more…umph

This is one of my main gripes.  A long time ago, the goal of the look of the game was a kind of cell-shaded look. This evolved into Illustrated look. But illustrated doesn’t need to mean desaturated and brown.

Now, mind you, I’m no artist. But just playing around with Photoshop I got this (barren land):

image

So in the above picture, I took the dullest looking area and tweaked it.  Tell me what you think. I don’t have an artistic eye.

image

Here’s a starting location.

image

 

image

Desert

image

Fallen lands

image

Like I said, I’m not an artist so I just messed with the textures. But I’ll pass these ideas on to the art team to see what they think.

image

Here I messed with the color of the water.

image

Sunday

I went through the comments. My work on FE revolves around coding, not game design – other than making suggestions. I did pass on ideas to Derek.

I kind of went off track by playing around with the art stuff for fun.

I rewrote one of the city functions to hopefully improve performance. There is that little…stutter I see when I place an improvement.  I also made it so that you can double click on an improvement in the build menu and have it auto place it.

Champion Stacking

One of the things humans do in the game is they just toss all their champions in one stack. This isn’t surprising, it is a good strategy with the way the game is currently set up.

One of the things on Derek’s list has been to split experience up amongst the units in the group (rather than all the units simply getting all of it). It was supposed to be in Beta 1 but just didn’t get done. In hindsight, I wish I had gotten this in sooner because the champion stacking combined with this creates a real imbalance.

image

It’s in now though.

image

More playing around with the art.

Trying to figure out why sounds cut out.  The state of sound drivers on the PC is deplorable (outside the really mainstream brands – that is what you’re really paying for, quality drivers).  But we can program things to work around driver issues.

Debugging

Why does god hate me?

image

Yea, I know how that feels.

416,392 views 117 replies
Reply #101 Top

Overall I love this game. I trust the right tweaks will be made.

 

My only issue is most the way through a game my saved games are not working. I can start a new game and save but the old games are shot.

 

I hope this issue is sorted out, I hate putting the time in and not being able to finish a game.

 

 

 

Reply #102 Top

I guess we play differently. I am usually 25% done with all three trees by turn 250. It does take awhile to get them though. This is mostly due to needing Civics before anything else. There needs to be some changes to what we have, but I don't want a whole bunch of weapons just put at tier one for sake of making the units easier to build. In WoM you only needed Equipment and Leather to beat the whole game. I am sure the devs want to avoid that. 

Instead, either make wood shield and club able to kill the early game creatures or give us a tier one or two weapon and armor tech option respectively. Club and shield is just not doing the job. Perhaps giving Club a bonus against all non-human units would solve all of this. 

Reply #103 Top

Quoting duke87, reply 3

First Complaint: Champions vs. Everyone else

It’s a fine line. You want champions to matter but you don’t want to make it about collecting champions and steam rolling. The basic problem I see is that champions have too much base HP imo.  We used to have it a lot less but then they were pointless. So it’s something we’re placing with.

 

I guess, to me, it depends how you view champions. Are they meant to be army killing death machines (see- Sauron in the Fellowship of the Ring movie opening), or are they just supposed to be men of above average ability? If its the former, they should be pretty rare and hard to recruit. If it's the latter they should be common and easier to find. Could there be two tiers of champions?


Also recruiting being limited by research feels rather manufactured to me- I understand not wanting people to recruit high level champions easily, but why not make it about difficult quests rather than attaining a research level. For example, I lost my sword fighting a fearsome dragon- kill the dragon and retrieve my sword and I'll follow you forever.

 

I personally think your "sov" should be like Sauron, the army killer, while champions would be like Boromir, Aragorn and Farimir. (Maybe like Gandalf, Saruman, and the Nazguls)

Reply #104 Top

Quoting seanw3, reply 102
I guess we play differently. I am usually 25% done with all three trees by turn 250. It does take awhile to get them though. This is mostly due to needing Civics before anything else. There needs to be some changes to what we have, but I don't want a whole bunch of weapons just put at tier one for sake of making the units easier to build. In WoM you only needed Equipment and Leather to beat the whole game. I am sure the devs want to avoid that. 

Instead, either make wood shield and club able to kill the early game creatures or give us a tier one or two weapon and armor tech option respectively. Club and shield is just not doing the job. Perhaps giving Club a bonus against all non-human units would solve all of this. 

 

That's interesting. Even with the game on easy, the starting techs at the beginning of the trees take me 15-20 turns. The next techs are in the 40s and 50s.

Do you adjust the pacing option, maybe?

Reply #105 Top

Nope, I just rely on prestige from my Sov, who gets more prestige as he levels. From a 6/2 or a 5/2 I can get to level 5 pretty quick. And then is is just a matter of reducing unrest to 0. 

Reply #106 Top

I don't see anything wrong with the terrain as it is now, I would vote against super bright colors everywhere.

Shared EXP might cause us to split our sovs and champs, but it will also make generic units even less appealing since they will "steal exp." I see people just having their sov roam the map solo crushing everything in their path (it already works, I played a game like that, with a caster), it's not really a better outcome. There needs to be a distinction between unit types in the sharing for it to work, like champs and sovs share exp, but normal units don't. I also think making normal units more exciting would be an alternative motivator to using them, like selectable traits every 5 levels or something, and more significant starter traits to better specialize units.

Reply #107 Top
@Brad: in your xp code snippet, don't you have an extra +1 on the second line of code? Won't this ensure that even if you only have an army of 1, you'll only ever get half the xp the defeated unit is worth?
Reply #109 Top

Quoting Sanati, reply 106
Shared EXP might cause us to split our sovs and champs, but it will also make generic units even less appealing since they will "steal exp." I see people just having their sov roam the map solo crushing everything in their path (it already works, I played a game like that, with a caster), it's not really a better outcome. There needs to be a distinction between unit types in the sharing for it to work, like champs and sovs share exp, but normal units don't. I also think making normal units more exciting would be an alternative motivator to using them, like selectable traits every 5 levels or something, and more significant starter traits to better specialize units.

I agree.

Reply #110 Top

If regular units were cheaper to upgrade and balanced better with heroes it wouldn't feel like a waste of XP. Soloing the map is possible now, but won't be for very long. Even soloing with Verga would be a huge challenge if the AI was finished and everything else balanced. 

Reply #112 Top

Quoting DsRaider, reply 75

 Instead of splitting hp between every unit in a squad so even a scratch reduces their dmg, squads should have to lose %35-50 of their health before they start to lose members.

 

+1 That would be an easy and effective fix.

Reply #113 Top

Trying to figure out why sounds cut out.  The state of sound drivers on the PC is deplorable (outside the really mainstream brands – that is what you’re really paying for, quality drivers).  But we can program things to work around driver issues.

 

So the sound issues disappear when using dedicated cards?

The main problem I have with the sounds is not the cutting out but during tactical battles with large groups of troops. The sounds seem to ramp up  very loud. 

Also which mainstream cards do you recommend. It has been a long time since I stuck one of those in my pc build.  

Reply #114 Top

Quoting CHiZZoPs, reply 112

Quoting DsRaider, reply 75
 Instead of splitting hp between every unit in a squad so even a scratch reduces their dmg, squads should have to lose %35-50 of their health before they start to lose members.

 

+1 That would be an easy and effective fix.

I strongly agree. k1

Reply #115 Top

Would adding more tactical combat commands - like the defend command to an active combat units command choices - improve tactical battles?

Example:

Equipped with Spear & Experience +1 = Set Spears = +200% defense vs Mounted Units (soldiers plant spears in the ground)

Equipped with Spear & Shield & Experience +2 = Phalanx Advance = -1 to movement, +100% to defense to frontal attacks (a slowly advancing wall of spears)

Mounted & Experience +2 = Withdraw = Retreats 1 tile; one time, to avoid combat when non-mounted enemy unit attacks from adjacent unit (calvary units withdraw pull back while attackers are advancing)

Equipped with Shield & Experience +1 = Arrow Shield = +10 dodge bonus vs ranged attacks, cannot move that turn (soldiers hold shields over their heads to deflect arrows)

Reply #116 Top

WHAT?! The Fall From Heaven modder is the project manager for Fallen Enchantress?!?
Put this on the box, no joke. I had no idea. Suddenly I have massive hopes for the gameplay in this. (i'm still not in beta)

Modders have huge "gamer pr" value. Heck, just as an example, if i saw an expansion for Civilization 5 i'd just think "oh great, it's another half-arsed addition with no real deep gameplay". But if i saw the same expansion "box" (or features list online), with a statement that the BUG modders or Caveman2Cosmos modders had a hand in the development, i'd instantly buy it without a single doubt.

Or a 4x indie space game with the names behind the Final Frontier mod.
Or a Total War expansion / game with the guys behind Stainless Steel, Roma Surrectum 2 or The Third age. Insta-buy, no doubts of the gameplay value to be expected.

I'm serious, put this on the box.
"Lead project manager, author of Fall From Heaven (Civ4 mod)"

Reply #117 Top

Quoting calmon, reply 2
Would be nice to get some technical AI Developing insights from you Brad, just how it works in FE and how you plan to implement different strategies. Also maybe some ideas how TBS AI could be improved in future.



I assume this would be very intersting for a lot of people here. At least what I see from the numbers of AI threads poping up regulary.

I think open source AI should be useful for that, and you can change them too if you like.

There are several popular ones: The Battle for Wesnoth (standalone open source fantasy wargame), BetterAI mod for Civilization 4 BtS (4x tbs), Fall From Heaven mod for Civ 4 BtS (4x fantasy tbs total conversion) or Master of Mana (Fall From Heaven + Wildmana mods).

I'm not 100% sure about Master of Mana, but other three AIs are open source for sure, and you don't need to waste time developing your own game to start working on an AI.