0.77 Development blog

Published on Sunday, January 29, 2012 By Brad Wardell In Elemental Dev Journals

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.