Game development PC specs

A doomed from the start game project has asked me to help spec their development boxes. The people doing the asking don’t know if it’s a flash game or cutting edge 3D, and are asking me just because they’ve overheard me talking about games in the cafeteria a couple of times and that’s their best shot at getting advice. Ok, they are dead in the water but I’ll try to help all the same.
They have two offers: a laughable thing with 1Gb RAM and a passively cooled nVidia 7100 or a crazy 3700€ Alienware that can still only afford a GTX260.
Would I be off the mark recommending just current “sweet spot” sanely priced gaming systems? Or does a “pro” dev system generally need more RAM or faster disks or whatever? I’m going to recommend too having some boxes with ATI cards and others with nVidia and two monitors for everyone. Any more ideas?

If you try and advise them, you’re doomed. You’ll spec them a machine for 3d modelling, they’ll start on a flash game and hate you for wasting $2000 of my already tight funds, you asshole! Don’t give any advice unless they can give you more concrete specs.

What ever you do, maximize the amount of memory. Both video and RAM. I’d say at least 512mb of video memory on the GPU, and 4gb on the motherboard. For the rest, it’s OK as long as it is multicore and relatively modern (of course, for 3d modeling you want a fast GPU, but it really doesn’t have to be the fastest).

IMO.

3d modelling doesn’t really demand a hardcore machine, unless you’re doing really high-end stuff – it’s the rendering that demands grunt. If you’re just making assets for a 3d game, any computer built in the last three years should be just fine. 3ds Max doesn’t demand much, and neither does Mudbox, zBrush, 3Dcoat or any of the sculpting tools I’ve used. It might be a different story for Maya, Cinema4D, XSI and Lightwave. Blender does seem a little more greedy than Max, but I’ve only tinkered with it for a bit.

You can easily buy something really low-end as long as you make sure it’s got at least 2GBs of RAM, a multi-core CPU and a DX9/10 compliant GPU.

At Day 1 we’re currently buying 2.93 GHz Core i7 940 machines with 12 gigs of RAM. Compilation and high-poly modeling both benefit from lots of main memory. I hear that engineer boxes at Epic are built with 32 gigs.

Our current graphics card is an nVidia GTX 260 with 896 megs of memory.

They’re probably going to have to texture those 3D models as well, unless they’re going to just faux-phong shade them, you know. Also, if they’re going to bake normal maps from a high-poly model, they’re absolutely going to need a lot of RAM. And any of the designers or coders are probably going to need the same amount if they’re going to be doing anything with those assets.

Valve shared what their current and future PC dev specs will be, obviously they’re really nice:

Current Valve PC rig specs
EVGA 780i SLI FTW Intel Motherboard
Intel Core 2 Quad Q9550 2.83GHz Quad-Core Processor
4GB PC2-6400 DDR2 1066MHz ram (Crucial Ballistix, Kingston ValueRam)
1 x NVidia GTX280 1GB - OR - ATI 4870 1GB graphics card
1 x 250GB 7200RPM SATA HD (Seagate, Western Digital)
1 x 500GB 7200RPM SATA HD (Seagate, Western Digital)
Antec Sonata III desktop case
Zalman CPU Cooler
850W Antec power supply
1 x Dell 3008FPW-HC 30" LCD - OR - 2 x Dell 2001FP 20.1" LCD monitors
Windows XP 32bit

Future Valve PC rig specs
EVGA X58 3X SLI Intel Motherboard
Intel Corei7 940 2.93GHz Quad-Core Processor
12GB PC3-10600 DDR3 1333MHz ram (Crucial Ballistix, Kingston ValueRam)
1 x NVidia GTX285 1GB - OR - ATI 4870 1GB graphics card
1 x 250GB 7200RPM SATA HD (Seagate, Western Digital)
1 x 500GB 7200RPM SATA HD (Seagate, Western Digital) Lian Li P60-F Case
Intel CPU Cooler
850W Antec power supply
1 x Dell 3008FPW-HC 30" LCD - OR - 2 x Dell 2001FP 20.1" LCD monitors
Windows Vista 64bit

Man, dev machines so need super fast harddrives. For programmers anyway. Super fast harddrives, or a fuck ton of ram so that your build can be done exclusively in ram.

7200rpm drives just don’t cut it for compiling/linking large projects.

I’m using a machine that’s pretty much identical to Valve’s current specs, and the funny thing is my CPU is never pegged during my daily routine. Everything I do is pretty much disk bound though.

Oh, yeah, we run with two striped Raptors in the engineer machines. Forgot to mention that. We tried replacing them with a single Intel X-25M solid-state drive but compile performance was a little bit worse.

Fast disks, then RAM, then more fast disks.

But do keep the low-end systems for testing the final output :)

I dunno, I am of the opinion that development machines don’t matter that much until you scale up to big teams (60-100+ people)… which I imagine these people are not, since they have no idea what kind of game they are making.

I programmed Braid mostly on a laptop, with a desktop for making sure that I could play the game at full speed (toward the end of development when we had a lot of graphics in there). Doing the same thing with my new game. The new laptop does have an SSD hard drive in it though, which is sweet (see what Charles was saying about fast hard drives).

I got the impression from the OP that this was a bunch of guys with little experience doing some kind of low-end game. I did decent 3d work on my 2.4GHz E6600 with 2GBs of RAM running a GeForce 7900 with 512MBs of RAM, in zBrush and 3Ds Max.

I edited multi-million poly meshes in zBrush, broke it into pieces and brought it back into 3ds Max, where I used the cage modifier and render to texture to make nice normal maps. I obviously couldn’t bring the whole 4 million poly high-poly model back into 3ds Max and get decent performance, but that was hardly a hindrance. Rendering the normal maps took about 20 minutes at 1024x1024, way less for draft renders to check if the cage was set up all right.

As for texturing, having lots of RAM is of course important for Photoshop work, but textures will only rarely be above 1024x1024 and mostly less, meaning memory isn’t as much of an issue.

What specs the machines should be is obviously dependent on what kind of work they will perform. I would not recommend suggesting expensive stuff like the Alienware machines, in that case you’re mostly paying for brand. We’re using pretty low-end machines for development at the moment, but since we’re not exactly doing an Unreal 3-powered game, it’s not a biggie.

Unless your programmers have a habit of writing code in 8 hour bursts, compiling is going to be one of the most frequent things they do in a day. As soon as that exceeds 20-30 seconds, you need to start investing in hardware to speed it up, otherwise there’s going to be a fuckton of time wasted.

On my current project, I spend at least one hour a day compiling (totalled), and that’s after we significantly sped up our build times.

don’t programmer use incredibuild?

I was actually going to ask about the hard drives. I take it these large software projects don’t get built from network drives and centralized controlled file access like that?

it does, we use Perforce.

I think for smaller project you can use like tortoise!

I used tortoise at school, it’s easy to use and free.

Our average engineer spends about half an hour a day compiling. (We instrument our builds so we can track build times.)

I can’t speak for other projects, but on our codebase and with our hardware, Incredibuild was slower than building locally.

Those times are WITH incredibuild.

I have a core 2 duo with 2 gig of RAM. the only time it EVER needs to be faster is if I render something in 3D (very rare) or compress a promotional video.
Sure, a total rebuild can take 5 minutes, but most coders can find useful things to do in those 5 minutes, even if its just grab a drink and check email.
Needing 32 gig of RAM for a programmer seems very very high to me, maybe theres something about epics stuff that needs that, but it doesnt sound like these guys will be epics competitors.
Save the money for big, multiple, high quality monitors, comfortable chairs and a very decent keyboard and mouse. These are the bits you actually physically interact with, after all.

There are too many programmers
too many people
using too many templates.
There’s not enough cycles to go around.
Can’t you see
This is the vcproj of confusion?

This is the code we’re building
And these are the libraries we’re linking
fix header dependencies
and lets try to make this a build we can live with

What Linoleum says. Massive build times are often the result of shitty code with shitty dependency management, overuse of features that are slow to compile/link, etc.

I’m going to guess Braid compiles really damn fast because Jon wrote most of the code himself.

That said, the MSVC linker is ridiculously bad and probably the biggest bottleneck for significant sized projects.