Galactic Civilizations II: The Post Mortem

Over at Gamasutra!

http://www.gamasutra.com/features/20060405/wardell_01.shtml

Every wanted to know about the near disasters that occurred during the development of Galactic Civilizations II?  How about the things that went just totally wrong? What were the goals for the game? How did things come together?

Gamasutra, the web version of Game Developer Magazine, has put up our postmortem, a lengthy analysis of what went right and wrong with the development of Galactic Civilizations II.  If you've ever wanted a peak at the sausage factory that is game development, check this out. !FROGCARE!

24,708 views 43 replies
Reply #1 Top
Good read!

Oh my gosh! The non-compiled size of the project was 5 terrabytes?
Reply #2 Top
Heh, I found that to be an interesting read. That some things were changed and cut out caught my attention though...I'd like to know what those were. Ahh, me and my insatiable curiousity...

Keep up the good work! Don't ever turn into a souless corporation!
Reply #3 Top
Very interesting read.

It's amazing what you find out about end users and how they behave. It's funny, it's never the customers fault. I am an IT consultant by profession, and when I used to do home pc work - it was a nightmare. They would tell me they never had a virus or downloaded spyware - or used PTP torrent sharing - --- until I opened up the logs or internet history or quarentine folders to see. Then complain when I charged them $200 to spend 6 hours cleaning their drives and OS of hard to find worms, bugs and other crawly things and restoring it to zippy good health.

Or tell me they had 'lots' of free disk space - over 1 GB - to find out the were talking about memory, and their hard drive was about to explode it was so full ---- my head would explode.

Or complaining that the internet did not work - that I broke it - only to drive 10 miles back out to their house to find out they had used an RJ-11 phone cord to connect their pc to their hardware router that I installed because they wanted to move it to another location and the cable I gave them was too short.
Reply #4 Top
Interesting read, although on this one point...

Secondly, users won't heed warnings or readmes. Next time, the game will have a dialog that will simply not allow them to play the game until they update their drivers.


... Please don't do this, or if you do, put in some sort of override in an .ini file for those of us who knows how to deal with their system to choose. The reason I say this is because I'm running on an old card (Nvidia FX 5200), which is unfortunately very incompatible with newer drivers that Nvidia releases. In fact, every new updates tend to kill it's performance a little more because they keep adding new 'features' for their latest cards (and end up fixing it the patch after wards). I'm actually running a 2 year old driver (the most stable one that supports Dx 9.0c), and I know full well what it is capable of (and have had no trouble with GalCiv2 to date). Of course, I'm really just buying time until the newer cards gets cheaper (or until MS decides to roll out a new Direct X version), but if you go about forcing people to update drivers, and it then conflicts with another game (the newer drivers does this a lot), it would make users choose between your game and their favorite, because switching drivers between games would just be way too much of a hassle. So please, if you ever put something like this in, also put in an advance switchto toggle it off for those of us who do know what they are doing, just hide it somewhere so that those that don't can't just "click" away.
Reply #5 Top
Very intereasting read! Don't ever stop doing interveiws/blogs like this.
Reply #6 Top
I read the Post Mortem as soon as Gamasutra sent me the email. Truly a great read, and very informative. I liked the shout out to EA for the texture artists,etc. I swear, between you guys, the old Particle Systems team, and the Ion Storm guys, the game industry might just have a chance.
Reply #7 Top
I really appreciate articles like this. I will definately read this again a few times while I am programming my game. Thank you for being the best game developer in the industry.
Reply #9 Top
Very interesting article i must say, one of the best i read the last months, found it quite gripping (?)
(excuse me please, English is not my native language,).
The spirit and philosophy behind stardock is very pleasant and familiar to my own sometimes -
conservative - style. Something like this article is surely one of the many secrets of your success -
your 'hot wire' from the top of stardock to every user in the forum.
In eleven years of pc gaming i never saw anything that was comparable. Stardock is an
outstanding developer (& publisher) and so far of that was i seen GalCiv2 is an outstandish
game. It has now remove Colonization from the first place of my favourite alltime-games.

'...a dialog that will simply not allow them to play the game until they update their drivers.'
that would be bad for me, should i realy update my old video card driver? (I'm ducking)
It (nvidia 71.89) works fine with my old Geforce Ti 4600.

And since i installed GalCiv2 i had no problems with the game, no CTD, no one of this mysterious region setting problems,
My german version 1.0X.2 works with the german region setting. I tested it in my dual boot system with Win98 and WinXP.

Only minor problems with the german localization, but such things i can handle by myself. I'm old and bold enough, -
the fifties coming closer to me. But as our suebian poet Schiller said: 'As long as a man played, he would never get old.' unfortunately he played for money and mostly lost.

But seroius Your article had convinced me, i make an attempt with nvidias newest stuff.

Can't better say as Omega wrote it:

Keep up the good work! Don't ever turn into a soulless corporation!

Dreaming to nite full of expectation forward to GalCiv III - perhaps with a greater universe 48x48 squares or so...
must not mean with much more stars only with more ... space between the stars an' clusters.
Reply #10 Top
Since I'm just getting a handle on GC2, I'm not looking for GC3. Upgrade cycles are becoming quite large for the average user. People don't have the time, patience, money or logistical ability to simply buy new equipment for games. Stardock is manufacturing diamonds with every sale. People will keep it because the game is 15 years old and always getting better. Stardock will be there with that kind of record. No "home of the underdogs" for GC2. This has staying power.

P.S.: see my cultural conquest post.
Reply #11 Top
Nice Read, and thank you for allowing "regular people" to get a bit of a look at what you live normally. I wish more companies would take your approach and be up front with users, talk to them (even half as much as you do), listen to them, and see them as more than an income stream.

Thank you!
Reply #12 Top
Heh, a very nice read. The driver info is an interesting point...consider laptop users. I have a somewhat old (three years I think) laptop, a Toshiba with a GeForce 42Go video card. It's held pretty steady for that time, and plays some games well.

The big problem? I CANNOT update its drivers!

This is actually no new problem - a number of other laptop users are apparently unable to use the official drivers on their laptops for one reason or another. Indeed, Nvidia drivers are notorious enough in this regard to make creating "laptop-friendly" driver versions rather important. But for whatever reason, after a certain point my laptop does not accept these newer drivers, and it annoys me...I can't play Gal Civ II on my laptop because of the bloody drivers!

But I would not blame Stardock for any kind of driver-related problem...I'd blame the folks who made the driver. After all, Stardock didn't make the driver, the 3d company did! Just because one uses old drivers does not mean a game is buggy...

Anyway, good read on the Gamasutra article, if I happened to live near Stardock I would SO try to get an internship there! As it is, I have to go looking for local game companies in Southern California for an internship...tricky business indeed, it seems. >_>
Reply #14 Top
"For instance, I'd like to take this moment to thank Electronic Arts for securing monopoly rights on the NFL franchise of games. By doing so, they eliminated many other football games that were in development which in turn made a lot of very talented artists available."

I'm glad something good came out of that!

That was an awesome read. So many great qoutes in it...
Reply #15 Top
I read that yesterday, really interesting story.
Secondly, users won't heed warnings or readmes. Next time, the game will have a dialog that will simply not allow them to play the game until they update their drivers.

What about laptop cards, and vendor specific cards that won't work with the regular Nvidia or Ati drivers? Not all companies keep their drivers updated.

Reply #16 Top
Yeah, bad idea on the forcing of driver updates, I often wait because each driver breaks as many games as it fixes, and if it breaks one I play I won't update.

Rather, have an in-game error report tool which doesn't allow someone to report a problem unless all their drivers are up to date.
Reply #17 Top
On driver updates... The suggestion of a .ini setting is probably a good one. Or something that forces the user to do something more involved than clicking an "I don't care" button (as I usually call the "I accept" button nowadays). Maybe make them type something in that they accept that any crash is their fault. Or detect when the game crashes, and tell them next time the game runs that "we're not kidding, you really need to update your drivers!"

There's nothing I hate more than a game that *thinks* it knows that it can't run on my hardware, when it's demonstrably wrong. I don't mind if they warn me, or make me jump through a few hoops. Worst example I can think of is a game demo years ago that claimed my Cyrix processor just couldn't handle its awsomeness, when a friend's much slower Intel processor worked fine... and after fooling the demo into thinking I had an Intel, I had no problems at all. There's also the current flap over Skype on AMD and Intel systems that's along the same lines. Complaining about driver versions isn't as slimey, but...

Very interesting read on the article.. nice to get an inside view of some of the things that can happen during a project like this.
Reply #18 Top
More good insights into the realm of game development, however it might be time to start playing it down now. Its nice to see Stardock relishing in an unexpected success, and the immense pride this can generate in the odd individual, but go too far and people are going to start drawing parrallels between your financial success (which is every day looking increasingly to be the making of a case study in "How to make a successful game") and a young boy thats just recieved his first bicycle.

Dont get me wrong i like the unprecendented through the keyhole approach that various employees of Stardock are commited to bringing to the gaming audience, but its worrying to think about how other professionals in the industry might look upon these quite frequent insights, into the makings of a financially succesfull game. And wonder why they dont write quite so much about their success post release.
Reply #19 Top
Because there's a counter argument to how I tend to do things: From a career point of view, unless you plan to spend the rest of your career making games, you need to learn and keep up with these new techniques so that you don't one day wake up as one of those 50-year-old COBOL programmers who has long since fallen behind the latest techniques.


I find this disappointing. Granted, I find this generally conservative attitude towards new technologies disappointing in any programmer (after all, these new technologies exist to make our lives easier). But I'm specifically disappointed that you let this get in the way of being a professional. It's one thing for people on a project to have different coding styles. It's quite another when you (as lead programmer) allow this to become a personal problem.

Face facts: those new technologies are already hitting the gaming world. C# is going to become a very important part of game development in the next 5-10 years, without question. Scripting languages already are a vital component to most game development. Modern use of C++ (templates, STL, smart pointers, RAII, etc) is a vital component of game development.

And if you don't read the writing on the walls, you're not going to find good programmers who are willing to program like it's 1999 anymore. Pick up a few books on some of the new languages out there. Study them. Hell, just read it for fun; all kinds of new ideas will start popping into your mind when you do.

License more technology. One of the things we learned is that we will likely license more of our technology in the future. For instance, GalCiv I had its own built-in sound system. This time, we used the Miles sound system that we licensed from Rad Game Tools. It was much much better and easier to work with.


You really should look into Ogre (for graphics). Not that your graphics system was bad or anything. But it would have saved you a great deal of time and effort to take Ogre as your graphics rendering system.
Reply #20 Top
I was not sure were to post this but after reading your article I thought this was as good as any place.

One day I was look for a different game and this game came up in the search. Not knowing what it was I did a search for it and found this web site. I am usually up with the big name titles like Star Wars but I usually miss out on some of the small name titles that should have a big name like this one. After some reading and looking around the web site it looked like a real cool game and being a turn based game fan I had to try it out. After trying it out I fell in love with the game. It reminded me of another game that I enjoyed playing called Imperium Galactica II. It will not play on my newer computer because it is not compatible with it or XP and other reasons.

I have played many games and have been to many different game sites but none of them have compared to yours on many different levels. I don't think I have ever seen a software company that interacts with there customers on a level that you do. I am not just talking about support issues even if some of us are acting like idiots, but you listen to our ideas and suggestions in order to bring us the customer an even more interesting game.

This article and a few others I have read show that you are human with names and faces. You make mistakes and are learning as you go on. Unlike the larger corporations were interaction is rare. I am glad that you were able to share some of the ‘behind the seines’ info with all of us.

I hope that as your company grows that you don’t loose your small company attitude and continue to interact with your customers at the level you are at or higher if there is a higher .

I would like to finish of by saying that I bought the game. It is the first game I have bought in many years. The price was fair at $40can unlike the $60-80 that I could never afford to pay or justify the cost. Since I have bought the game I have played it during any free time I had. For the record the main reason I bought the game was because I liked you and your attitude towards us the little guy. Ok and the price was right.

Reply #21 Top
Never "force" a user to do something like install new drivers to play your product. There may be legitimate reasons why they refuse to upgrade them.

Example: Alias (now Autodesk) Maya7 users (3d program) have issues with using the newer nvidia drivers. The only drivers that currently work well with this important application are the 7x.xx version drivers. The 8x.xx drivers have alot of issues. Oh and 7x.xx drivers work great with all games but your performance isn't as high and they arn't as optimised for some of the newer features of nvidia cards, But they do work, just not as fast. (if something didn't work then I know the issue is on my end)

Now if you forced me to upgrade or force installed a driver on my system I'd be pretty pissed, that is not your domain. It's mine. My problem not yours.

While you will no doubt have impatient ignorant people who will click past warnings and will moan and complain that things don't work, there is nothing you can really do about that without upsetting people who know better. The ignorant people will learn their lesson and be smarter next time. Such is the way of using computers. They do and will for quite sometime require a reasonable amount of knowlege to care and maintain it.

I did Microsoft OS tech support for TWO years, the foolishness of people can get to you sometimes, but patients and educating individuals is the key. Simply ignore those who refuse to listen and learn. If someone was beligerant or argumentitive we would ask them to call back when they are ready to proceed. If they still wanted to give us grief we would simply tell them that we are terminating the call (and yes you can get yourself blacklisted from microsoft support, but you gotta be a real a** to get to that point). Some people refuse to learn. there is nothing you can do about it except force it on them, but that just creates problems for everyone else.
Reply #22 Top
Actually, to deal with morons, pop up 3 dialog boxes in sequence on random places on the screen for those who don't upgrade. That way, they can't click through them quickly, and might be annoyed enough to eventually do something about them.

Most morons, of course, aren't smart enough to notice that you will leave "Yes, contine" focused, thus allowing those with "legitimate" reasons for not upgrading to simply press enter 3 times to skip them
Reply #23 Top

I find this disappointing. Granted, I find this generally conservative attitude towards new technologies disappointing in any programmer (after all, these new technologies exist to make our lives easier). But I'm specifically disappointed that you let this get in the way of being a professional. It's one thing for people on a project to have different coding styles. It's quite another when you (as lead programmer) allow this to become a personal problem.

Face facts: those new technologies are already hitting the gaming world. C# is going to become a very important part of game development in the next 5-10 years, without question. Scripting languages already are a vital component to most game development. Modern use of C++ (templates, STL, smart pointers, RAII, etc) is a vital component of game development.

Wow Alfonse. Do you have a list of commercial PC games you've been project manager of?  Do you know of any commercial PC games made with C#?

There's a lot more to making a commercial product than simply using the latest gee-wiz technologies.  I happen to know C# incidentally.  I am also reasonably familiar with most of the STL features, Boost libraries, etc.  That doesn't mean I think we should just jump in and use everything.

When you're using "new" coding techniques in a complex project there's a lot of other issues to consider.  How thread-safe are given libraries? Are we using libraries or tools in ways  they haven't been used before and hence possibly creating a support issue?  How readable is the code that is produced by a given technique, library, code base?  How good are the available debug tools at dealing with a given set of techniques, libraries, etc.?  How compatible with existing in-house libraries and tools is a proposed set libraries, tools, etc.?

Yes, I'm a conservative developer -- I'm interested in making products that work, can be maintained, and don't cost a fortunate to develop.   But that doesn't mean I don't keep up on trends. I just am conservative about which trends I start putting into million-dollar plus projects.  It's not about the code, it's about the game.

You really should look into Ogre (for graphics). Not that your graphics system was bad or anything. But it would have saved you a great deal of time and effort to take Ogre as your graphics rendering system.

Ogre didn't go 1.0 until this past year, far far too late for our project. Secondly, it's LGPL which precludes us from using it (yes, you can use LPGL with a commercial product but you have to ship your object files with the game which is not going to happen).  And it hasn't been used on any game projects of significant size.

I want to emphasize: I'm a game developer. I want to make games. I don't get all hot and bothered about using some tool. I don't care about writing the code, I only care about making the game itself.

Reply #24 Top
Do you know of any commercial PC games made with C#?


I'm pretty sure I said 5-10 years. Not right now.

Secondly, it's LGPL which precludes us from using it


Factual correction. In case anyone reading this is interested.

From Ogre's page:
# Because OGRE is dynamically linked, anything you use it in is not a derived work and thus you can license your own software under any license you choose; the LGPL does not 'infect' your software.
# If you choose to change this, and make OGRE statically linked (we don't support this, but it's possible), your work becomes a derived work of OGRE and is covered by the LGPL too. You must either release your source, or include linkable object files of your work if you do this, so it's not recommended.

GC2 ships with several .dlls, including a "lib3d.dll", which I assume is your rendering system. So LGPL isn't getting in the way (barely).

Your point on support for it is well taken (and I certainly have not investigated Ogre for any real length of time, so I can't speak to any supposed cleanliness of the code), but consider the possibility of said support having been less time overall than the development of your own 3D rendering system. Overall, the headaches of support could have been less time consuming than having to build the system from scratch.

Though little more can be said about Ogre having hit 1.0 long after you needed to have a rendering system in place.

On the plus side, however, I'm pretty sure it would have saved you that whole "overheating GPUs" fiasco

And if nobody's willing to prove unproven technologies, then nobody would ever use anything other than what they already had or made themselves. Every game would have its own OS built in, their own drivers, etc. The bad old days of PC development.

I don't get all hot and bothered about using some tool. I don't care about writing the code, I only care about making the game itself.


Then maybe you shouldn't be a programmer. That may come off as trite or some kind of attack, but I'm being perfectly serious.

If the basic act of programming doesn't excite you, then you're probably not as effective at it as someone who is excited by it. Just like if running a buisness isn't something that interests you, you shouldn't become a buisness owner. Or if politicking and exchanging power chits doesn't excite you, you probably shouldn't run for office.

Programmers program; they write code. That's what we do. Oh, we do other things to (code design, etc), but you have to be able to write code first because that's at the core of what we do. And while lots of people certainly can program, it is those to whom programming is an art form, who would program just for fun at home if it wasn't their jobs, that are the best programmers.

I'm not saying that only programmers who embrace every new technology like an empassioned lover (and oh God have I seen some deep and long-lasting pain created by them) are the best programmers. But if you truly don't get energized by the act of programming, perhaps you should focus on the areas of game development that do energize you. Game design, production, etc.
Reply #25 Top
Programmers program; they write code. That's what we do.


Code is nothing without results. If you indiscriminately throw new technology at an old problem, chances are good that you'll introduce entirely new problems into the mix and create a lot of chaos. That becomes even more true when you are dealing with a large project with many people working on it.

The best (group) programmers are those that recognize that their code is worthless unless the entire project is completed reasonably on time and bug-free. This means working with everyone else, making sure everyone is on the same page, and not charging off into something new. It also means realizing that yu may not be the one who maintains your code - in fact, you may not even be the one who finishes your code.

And if nobody's willing to prove unproven technologies, then nobody would ever use anything other than what they already had or made themselves.


There are more ways to prove unproven technologies than throwing them into your most recent, extremely expensive, group project. More sane ways, too.