Game Design vs. Game Development
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.
Game Design vs. Game Development
No matter how good a game design appears on paper, contact with actual development will result in compromises that can cause the design to take on a life of its own.
The two biggest limiters for us right now
Making a modern PC game means knowing and appreciating the limitations you work under. If you ignore those limitations too long, you will find yourself scrambling to update your game design with limited time and budget to fit the real world hardware requirements your game needs.
Here are some of the limitations that I've hit that have bit us in the butt over the years.
1. DirectX 9C or DirectX 10 or above. If you choose DirectX 10 only, you will cut off a lot of users from playing your game. But if you choose DirectX 9c, you end up with a lot of technical limitations. If you try to do both, you end up with a support and development cost that most developers can't afford.
DirectX 9 can be used by any PC. Windows XP through Windows 7. Crappy low end video card on up to the top of the line.
But DirectX 9 lacks some really good features that are available in DirectX 10. For example, DirectX 10 lets every thread talk to the GPU easily. With DirectX 9, only 1 thread can use the GPU (without a lot of work). You can also make the GPU do a lot of calculations that previously could only be done by the CPU.
One of the reasons so many indies make space games (Galactic Civilizations, Sins of a Solar Empire, FTL, Endless Space, etc.) is that we don't have to worry too much about animation. We're moving rendered blocks around and messing with particle effects.
But on land, you have animation -- unless you manage to make it all tanks or something.
On land, people expect to see things walking (animated movement). They expect to see trees moving (animated). In short, they expect to see a lot of animation.
And on a modern game, with lots of objects to set up for rendering, it's a lot easier to do that without missing frames if it's being done in threads (DirectX 10).
Bottom line, DirectX 9 means only 1 thread can access the GPU (without a lot of work) and DirectX 10 makes it painless. And DirectX 10 allows for lots of pre-rendering calculations to be done on the card.
2. 2 GIGABYTES of memory space. I'm surprised how many gamers still don't "get" this. They think because their PC has 12 gigs of memory that this has something to do with their game.
The 2 Gig limit is our modern 640K limit. We've been running into it for a decade and we've developed lots of strategies for dealing with it (LOD, mipmaps, better compression, smart unloading/reloading, etc.).
A modern 3D texture is 4096x4096 with 32bit color. That texture might be the graphics to go over a hat model (for instance) in your favorite first person shooter.
In the DOS days, a full screen was 320x200 with 8bit color. So you can imagine how much more memory everything uses now.
The PC adaptation: First person perspective
I have often wondered if the reason we've slowly been gravitating to most major games being first person (including RPGs) is because you can improve the graphics without increasing the memory (imagine a party based RPG with an isometic perspective in 2012 and how much RAM that would use).
First person perspective vastly reduces the number of things you see at once which in turn reduces the memory while allowing for higher quality textures.
Now, you may have noticed some often discussed limitations that I didn't mention: GPU power, internet connection speed, CPU power.
That's because right now, on the PC, memory is, by far, our limiting factor. A decent nVidia or ATI card is capable of delivering all the frames you need.
The power of multiple cores: Fallen Enchantress strengths and weaknesses
In Fallen Enchantress, what can cause frame loss isn't the GPU. It's the CPU. And it's not the CPU being under powered but instead because in DirectX 9, you end up having to do all kinds of pre-rendering calculations on a specific thread (which means a specific core) prior to sending it to the GPU.
Really good developers (ones far better than I am) are able to code sophisticated job systems which spin out pre-rendering to various threads (which means different cores) to help solve the bottleneck problem.
The strategy I used in Fallen Enchantress was essentially to move everything off the "main" thread except for graphcis and then optimize as much as I could the pre-rendering that was going on before it got to the GPU.
If we had used DirectX 10, I'd have had these various components happen in the threads.
Luckily, because Fallen Enchantress's has relatively light hardware requrements, it's enough and the graphics move pretty smoothly.
One of the reasons why the Fallen Enchantress AI is so good (actually the primary reason) is because each computer player gets its own thread which can potentially mean its own core. So it can do a lot of complex calculations. That means the AI can do a lot of intelligent seeming stuff and keep the time between turns down into just a second or two, even late game on a large map.
Having lots of threads for AIs also give me a lot of room for further improvement once the experts inevitable declare the AI brain dead and post their strategies which allow me to easily add more algorithms without it noticeably affecting performance.
So you can imagine what DirectX 10 could do for visuals if I could do with graphics sophistication what I can do with AI.
Game design and Technical design
The biggest piece of advice I could give to an aspiring game designer is to make sure they talk to 2 people: Someone who knows the game market already and someone who is very very technical.
The first person can tell them the sizes of different markets. Can you, in 2012, afford to require 64-bit OSes? Can you require DirectX 10 only?
The second person can advise you on what challenges your game design might have.
There are technical reasons why we haven't revisited some seemingly obvious genres:
Why haven't people made a modern Baldur's Gate style game? Seems obvious right? Would be amazing. Except...except...how do you compete visually with Skyrim and Farcry 3 and at the same time have 10X more things on the screen at once?
Where's that modern Alpha Centauri game that everyone wants to make? You know, the game with designable units, morphable terrain, etc. That's where your technical guru can help you out. Let you know, up front, what tough choices you might have to make.
Now, in probably 2 years, 64-bit, DirectX 10 will be required and THEN you're going to see RPGs and strategy games make a come back that will seem breathtaking. And at that point, we'll have a new set of limitations we'll have to deal with in our game designs. ;)