Making Games 1.5

2003-10-06

I thought it was time to update this article and maybe try to finish it. It's been 5 years since I wrote the original and lots of stuff has changed.  In particular it's even more work now than it was then.  Budgets for games are 3 to 5 times what they were then.  So, here is "Making Games Version 1.5"


Do you know what it really takes to make a video game? Do you know why a game costs $60 or even $80. Making a game takes a ton of work.

Sometimes I think I should try to teach a class in it in high school. Creating a game might be something that some students might want to do and having a class about it would allow them to experience what it really takes to make a game. It's not just about having fun, it's about lots and lots of work. It's about reports, schedules, budgets, tradeoffs, teamwork. All the things I wasn't taught in high school or college for that matter.

Pitching

Most people think that a game starts when someone has a great idea for a game. The problem is that almost everyone in the industry and every game player thinks they have a great idea for a game. Someone has to be convinced that your idea is the one idea that should get done. This is done by pitching the game whether you're an internal team (a team that is internal to the game publisher) or an external development team (a team not owned by any publishing company but that does products on contract for a publisher.)

To pitch a game you have to create pitch materials. The better your materials the better your chance of getting your game approved. Usually the minimum materials are a small report 2 or 3 pages describing the game briefly. If you can't describe the game briefly then you are unlikely to be able to keep the attention of the people you are trying to sell the game to. Most of them are not game players. Another common pitch material are storyboards. Storyboards attempt to show the game with pictures. Good looking storyboards definitely make an impression over those teams that don't have them. Even better than storyboards is an actual demo of the game. With technology for making games relatively easy to access many publishers won't even talk to you without a demo these days.

Time and Money

What many people don't realize is that the game they pitch must be able to be done in a certain amount of time within a certain budget. Lets say you wanted to make a 3D Fighting game with 20 different characters and 1 background for each character. An intro video introducing the game and a video ending for each character when that character wins the game.  In other words you want to make Tekken.  How much time and how many people is that going to require.

Lets guess that each character will take 1 month to create in 3D and animate. Each background also takes 1 month. The 3D programming we guess will take 1 year. The intro video will take 4 months and each ending video will take 1 month. Add it up.<ul>

  • 1 month 20 characters = 20 months
  • 1 month 20 backgrounds = 20 months
  • 1 year of programming = 12 months
  • 1 intro video = 4 months
  • 1 ending video * 20 characters = 20 months
  • That's 20+20+12+4+20 = 76 months. In other words, if one person could do all the work by themselves it would take them 6 years to make the game. Of course 6 years is too long to take to make a game. If you started today, in 6 years the video game systems that people have at home would probably have been replaced. Instead of a Sony PS2 they'd have a PS3 or maybe even 4 and your game would have no market anymore.

    Most publishers would like a game to take 1 year. So if you wanted to get your game done in a year you're going to need at least 7 people. 76 months / 7 = 10.8 months or almost 1 year.

    How much do 7 people cost for a year? Well an artist can cost anywhere from $30,000 a year to $100,000 a year depending on their experience. A programmer from $40,000 to $100,000. Lets just guess and assume you get 6 artists for $45,000 each and one programmer for $65,000. That's $45,000*6 + $65,000 = $335,000. But wait, people need benefits like health insurance, they need supplies like paper and pencils. They need a place to work like an office with a desk, a phone and a chair. You also have to pay certain taxes in addition to the taxes that each person on the team pays. All that adds up to around 30% of their salary. So, $335,000*30% = $100,500. Your total cost is now $335,000+$100,500 = $440,000. Okay, now you need equipment and software. Each artist and programmer needs at least one computer. A reasonable computer with monitor will cost at least $3000. Artists need software and 3D software can be very expensive. Lets say you decide to use 3D Studio Max. That's $3500. They may need a copy of Photoshop or some other painting software which is about $600. Your programmer will need a an editor $200, and a development system, $30,000. So the total for equipment so far is

    Total so far, $516,500.

    Now lets say you ask a publisher for $516,500 and they agree to give it to you to make the game. What did you forget? Well some things that come to mind, music and sound effects for one. Also, your schedule probably didn't take into account all the communication that needs to go on between team members so they are all working as a team. Do you need someone to lead the team? Do you need a art director to organize the artists and make sure that all the artwork in the game has a consistent look? You could ask one of your 6 artists to do it but then they will be busy managing the other artists and won't have as much time to get their work done. Who is going to pay the bills, do the payroll, order the equipment and software. Whoever does it will have less time for working on the game. What about a network? Are you going to have a network so that people can share there work with each other without having to use lots of floppy disks?

    Lets add one more artist as art director and because they are the art director they command a higher salary of $60,000. You also hire a producer or manager to both organize the team and pay the bills and manage the other money matters. (Maybe you don't like the idea of hiring a manager and instead you want to manage. Now your time is taken up by managing so you are going to need to hire someone else to do the work you no longer have time for. Either way it's going to require another person). You need to contract out for music and sound effects. That can easily cost $60,000 to $80,000.

    Lets add that in.<ul>

  • 1 art director = $60,000 + 30% for rent, insurance, taxes, supplies, ... = $78,000
  • 1 producer = $40,000 + 30% for overhead = $52000
  • Music and sound fx = $70,000
  • 2 more machines = $3000 * 2 = $6000
  • 1 more 3D Studio Max = $3500
  • 1 peer to peer network = $4000
  • New total = $4000+3500+6000+70000+52000+78000+516500 = $730,000

    Lets say you ask for $730,000 from a publisher and they give it to you. You now have enough money to pay your team for exactly one year and no more. If you forgot something tough luck. If it takes 16 months instead of 12 you're going to go hungry for 4 of those months or your going to have to re−negotiate with your publisher and they are going to want something in return for your failure to deliver your game within the time and budget you originally promised. They might for example lower your royalties or they might demand a part of your company. They might ask you all to take a 50% pay cut until you finish.

    Lets take a look at royalties. Most games by external developers are done on an advance against royalties arrangement. That means that the $730,000 they gave you is an advance against your royalties. Maybe you got 15% royalties and the game sells for a suggested list price of $49.95. You don't get 15% of $49.95. You get 15% of net so if the list price is $49.95 the wholesale price is probably 45% of that or $22.48. If this is a Sony PS2 or XBox game I think they both charge around $8.00 per disc sold as a licensing fee so the net price is $14.48. 15% of that is $2.17. Your team gets $2.17 per unit sold. You got an advance of $730,000. $730,000 / $2.17 = 336,406 units. You must sell 336,406 units before your team will see any more money than they already got. Not very many games sell 336,406 units. Maybe only the top 10 games on any platform.

    Another issue that comes up here is the feeling that the publisher is being greedy.   The typical point of view of the developer, you, is that you are going to do all the work and they are getting 85% of that $14.48.  You feel like you should get more.   I know I often felt this way.  Here's the other point of view.  From the view of the publisher they put in $730,000 and probably several $100,000 more on marketing and plus they also need to pay sales people and marketing people and producers etc.   Lets say they spent a total of $1,500,000 on your game.  What have you spent?   You've spent $0.  They are risking $1.5 million dollars on you.  If you or your team fails they are out $1.5 million dollars.  On the other hand you risk nothing.  If you fail you already made $730,000 dollars.  That hardly seems fair.  The reason they get all the money is that they are the people taking all the risk.  That actually brings up another point, if you want a better deal, lower their risk.  For example if you develop the game entirely on your own and then once it's finished you go to them and they decide to publish it you can usually get a much better deal.  The reason is that they don't have to risk as much money.  Of course they still have to risk all the money they will spend of advertising and duplication and distribution and sales.  Unfortunately most people can't make a product on their own.  It takes too long and too many people.

    Design

    Design is going to be different for different types of games.  For the type of game I like to make, action games or action adventure games, I personally believe the best way to design is by storyboard and sketches.  I've seen teams make huge documents 300 to 400 pages long for their games and I personally don't think it works.  Nobody wants to read a 300 page document.  Instead you probably need some kind of outline just so you can make sure you've got everything listed.  Then you need to design each world and each character and each object.  Each item will need two basic things, a visual design and a behavioral design.  The visual design would be designed by the artists.   This is one way to get your artists involved in the game.  Give them a basic idea of what you want to do with the game and then give them a couple of days to go off and sketch settings or characters or objects.  Then have a big meeting and decide together which of their ideas the team wants to actually use in the game.  Once the team has chosen the artists can make much more detailed color version of those items.  You see this type of thing in movie production.  The #1 reason you need this is you need to make sure everybody understands what everybody is trying to make and a visual picture is your blueprint.  In other words, "make what you see in the picture".

    The perfect example of this is the original Star Wars.  If you look in to the making of Star Wars you will see lots of paintings by a guy named Ralph McQuarrie.  I used to think those painting were made after the movies since they looks so close to scenes in the movies but actually the opposite is true.  Mr. McQuarrie drew those paintings and then from those paintings people made the movie.  If you think about it you can see why this is so important.  It takes lots of people to make movies and video games and without images like these nobody will have the same idea for how to make their particular piece of a level or scene.

    Secondly you need behavioral design.  This is best done with sketches.  In the movies this would be the black and white sketches that show each scene and camera angle.  In a game these would be sketches that show each item and character and all their moves and behaviors with notes giving details for things like timing, speed, distance, power etc.  While working on Zombie Revenge at Sega I saw hundreds of these sketches.  Every motion needed for every character had a sketch describing the motion BEFORE the motion was created.

    Levels also need to be sketched.  These should look like blueprints or top down maps that show where each item/door/character etc should be.  Having worked both ways I personally believe levels should be laid out on paper by game designers and THEN those designs should be handed off to artists so the artist can build the level based on the game designers blue print.  This lets the game designer make sure the level is designed to be fun, fair, not frustrating, etc and lets the artist make it look beautiful.   Some of you are going to think you can just jump into a map editor or 3d program and start creating a level.  It could happen but I've never seen a really good level come out this way on time.  The problem is without a blueprint you have no idea where you are going or when you're done.  You'll just keep noodling and noodling until you get bored and start working on something else.  If you have a blueprint you'll have a specific goal in mind.  You'll know when you are finished and when you are not.   You'll know what other things need to be created for the level before the level is even built.

    The successful companies where great products are made on time the designer is at the top of the heap. From the designers the game is made.  That means they must be good people capable of leading, of creating designs that are possible, of not creating frivolous un−thought−through designs that the team implements and then have to be thrown away.  They need to be aware that from their designs, thousands of dollars will be spent implementing them and that bad decisions from them will cost lots of money and possibly the entire project.

    Another issue with design is keeping your design within your allotted budget and time.  Money and time are not unlimited and you can't have every feature you think you want.  One approach is to design with the ability to cut things in mind.  Maybe you are making an RPG and there are 10 side quests.  You should leave implementing the side quests the main quest is finished.  Then you start making the side quests.  That way, if you run out of money you can ship the game with only some or none of the side quests.  Sure, to you and the team you'll be frustrated and sad that your great ideas for side quests did not make it in the game and you'll feel the game is less than it should be but the player may not.  The don't have a vision of the game with all your side quests in it.  There vision of the game is what they see when they first play it and so they will not be missing these things.

    In that vein, as you design you should design from most important elements to least.  If you are making a character action game then the main character is #1.  What can he do?  What are his moves?  Next you should design a couple of levels.  You need to flesh those levels out.  Finish them before you move on to other levels.  Another suggestion, don't start with the first level.  You and your team will not be doing your best work when you are just starting and don't have a feeling for the game and all the processes and tools used to make it but you want what the player sees first to grab their attention so pick some middle level or area to do first and then after you've done a couple o f stages then go and do the first level.  This way your first level will be better than if you had done it first.

    Also, in the same way is saving the side quests for last, get your game shippable as soon as possible.  Get 2 or 3 levels running and then get all that other stuff in, glue screens, options screens, inventor screens, memory card or saved game stuff, network play, whatever it is.  Put the sounds, the voice, a cutscene, music, everything.  Until you've done it all you don't really know how much work you have ahead of you.

    Programming

    Programming is getting both harder and easier than ever.  Easier because today's systems are powerful enough that you can buy an engine for them.  Rendeware, Alchemy, etc.  Harder because now there are so many more parts then their used to be.  Physics, shaders, networking, hard drives, encryption, multiplayer modes, rumble paks, gameboy advanced options, co−processors, AI, etc etc etc.  It used to be that a couple of programmers could do the entire game.  Now if you look at the job listings each position is specialized.  Server side network programmer, client side network programmer, physics programmer, sound programmer, sound tools programmer, 3d engine programmer, game programmer, AI programmer, 3D tools programmer, content management programmer.

    As another example here is an incomplete list of some of the programming tasks that have to be done

  • AI
    • Collisions

      Collisions are another huge element of games especially with so many polygons in the worlds often an entire separate database is needed for collisions.<ul>

    • Collisions with background

      just like the graphics, collisions with the background require optimizations to quickly figure out which parts of the background you need to check.

    • Collisions with other objects

      Object need to check for collisions too and checking all objects against all other objects is usually too slow again requiring a system

  • Physics

    The latest games are starting to require physic engines.  This is hard math and it is extremely hard to get it all to run fast and still not mess up.  For example the physics and collisions in Halo are great but there are bugs.  Play 16 player Oddball and watch as the ball sometimes falls through the floor.  In fact if you want to find the physics and collision bugs in most games put a bunch of objects or creature into some corner of a room and then try shove them all into the corner.

  • Path finding

    This used to be something only Realtime Strategy games used like C&C or Warcraft but now even platform and FPS games use path finding so that the monsters don't get stuck on walls, rocks, trees and crates.

  • Event Systems

    Many games use an event based system to allow objects to communicate with each other.  For example a switch telling a door to open or a light to come on.  The event system itself is not hard to write but often tools need to be written to make it easy for designers to setup the events.

  • Object System

    Most games have an object system.  A system that tracks all the things that move in the game.  This can be as simple as just a list of things with pointers to a "processMe()" function or as complex as generic objects that have all kinds of attributes like weight, size, position, etc and a complex system that runs them all.

  • Non Player Character Code

    If your game has lots of characters there can be lots to do here.  Gex for example had over 350 separately programmed objects.  But even if your objects are few like Halo you may make each object extremely flexible and interesting which is a whole other bunch of work.

  • Scripting

    Many games use a scripting language.  Someone has to make that language, integrate it into the game, provide debugging functions, make a compiler, check for errors, and teach everyone else how to use it.

  • Main Character or Player code

    Someone has to program the player, reading the controller and making him go through all his moves.  That alone can be a 6-9 month job especially if he has lots of moves.

  • Controllers
    • reading the controller

      reading the controller is generally easy but not always.  For example on the PS2 the PS1 inside reads the controller and sends the data across to the PS2.  On top of that there is the issues of forcing the controller into Dual Shock 2 mode.  There's also remapping options that have to be written, etc.

    • recording input for playback

      Sometimes you record input so you can play it back in the game.  Sometimes you record it so you can play it back for finding a bug.  If it's for in game playback you might need to compress it on the fly in order to save memory.

    • dealing with rumble issues

      modern consoles all have vibration built into the controllers.  Here's another set of routines you need to write.

    • calibration

      Some games allow calibration, especially for things like light guns.

  • Sound

    Sound can often require a programmer doing nothing but sound programming for an entire project not just because there is programming to do but often there is lots of data.  Crash Team Racing had character sounds for 6 different languages all on the same disc and they were played off the CD as the game was playing.<ul>

  • Sound effects

    You need to be able to get lots of sounds into the game and play them back in a variety of ways.  Although many sounds are easy like explosions, other sounds require more direct control like an engine sound.

  • Structured Music

    By structured music I mean midi or mod music, music that is generated on the fly.  More and more people are finally realizing that streamed music doesn't really work well for many genres since it's not instantly available and it makes it hard to load stuff during a level.

  • Streamed Music

    Streamed music is like playing a song off a CD or an MP3.  Dealing with streaming music and still allowing data to load can be another big issue.  Gex did this as does GTA3.

  • Video

    Many games use video now and there are issues here as well

    • Basic playback

      For many games this is all they need.  Just the ability to play a full screen video cutscene

    • Ingame playback

      Other games require in game playback which has other issues.  Amplitude does this for it's billboards.

    • Special options

      And there are a host of other things that might come up.  Just like when playing video over the internet there is a wait while it's "buffering".  The same thing happens on video in games.  On some games that buffering was not considered and so when there is a cut from gameplay to a video scene there is a 2 or 3 second pause while it buffers the video.  On a more thought out game the buffering would happen when the player gets close to that part of the level so that when it was time to play the video there would be an instant switch into the video with no delay.  Space Channel 5 Part 2 did this in several spots like when you come out of the space station in level 4 at the end there is a seamless cut from real time 3D to video.

  • Networking

    Many current games have a network component which is yet another entire job

    • basic communication

      someone has to design and program the low-level networking system

    • reliable communication

      someone also has to design and deal with the high level data that the game needs to communicate.  Keeping things in sync, not crashing if the server goes down or one of the clients, etc.

    • client setup

      the client (your home machine) has to deal with all the different ways it might need to connect.  Through modem, through DSL, PPPoE, directly, behind NAT, through a proxy, etc.

    • server setup

      some games like Everquest or Final Fantasy XI require a server which could easily be yet another entire team team of programmers

  • Tools

    Lots of teams have over looked tools and how much work there is here as well.  Some large companies have entire tools departments although that's often only a starting point.  Someone technical still has to interface and tweak the tools to match a specific game.<ul>

  • 3D Export Tools (from Maya or 3D Studio Max)

    Most companies use either Maya, 3D Studio Max or Softimage to make 3D graphics but then some programmer has to create either an exporter or some tool that will take the data from those tools and turn it into something useful in the game.  Those tools have to support all of those effects listed in the graphics section including skinned characters, morph targets, instances, vertex colors, normal maps and more.  A good tool set would also allow the exporting of entire scenes for real time cutscenes.

  • 2D Export Tools (from Photoshop or TGA or PNG)

    Some how you've got to get those graphics from Photoshop, your digital camera or Painter into the game and into a format your target hardware can use.  The might include things like compression for those systems that support it or palette based textures to save memory.

  • Data path creation

    Generally someone has to setup a bunch of tools that are run that take all the original data and make it ready to load into the game that includes:

    • 2D graphics

      getting all the textures and bitmaps in, making sure none of them are larger than can be handled and that they fit in memory

    • 3D graphics

      pulling all the polygons and other animation data in, connecting it to the textures

    • Level Data

      all your data for where things are in the world, paths for enemies to follow, triggers the start things going, etc.

    • Sounds

      Getting all those sounds into the game in a fast way, handling the fact the most likely all the sounds won't fit in some levels. Writing tools or scripts to convert all those sounds into bundles or put them on the CD in special formats or knowing where they will be on the CD so you can queue them up.

    • Music

      tools to convert to your structured formats and pull in all the samples to make the music.  Some teams have special tools for the musicians and sound guys so they can actually make and test the sounds on the target systems

    • Video

      getting all that video in your custom format and adding whatever extra data you need in their like subtitles or alternate soundtracks.

  • Event Editing

    Some games have an event editing system for designing puzzles and other events.  It's easiest for the designers if there is a tool that shows the relationships between objects, the events they are sending or listening for etc and makes it easy for the designers to edit those connections.

  • Interface Editor

    Some games have a 2D interface editor to help make it easier to make all the 2D glue screens.  A few games have used Flash for this.

  • Outdoor Map Editor

    If your game has a special way of making the levels you might need to program a custom outdoor level editor.  Warcraft comes to mind.

  • Level Compiler

    Most games need some kind of level compiler to do major processing on all the data to make BSP information or PSV information or arrange the data for spooling.

  • Indoor Map Editor

    If you are using a custom system you might also have an indoor editor like Worldcraft.

  • International Systems

    With 1/3 of your market in Japan, 1/3 in the USA and 1/3 in Europe it would be best if you considered internationalization upfront.  It could be as simple as putting all your text in Excel with macros to get it all out and put it in the game.  Excel supports all languages but you need to do all this upfront and someone needs to write those macros and any other tools or systems that take that data and get it read for the game.

  • Hopefully you've gotten some idea that there is actually lots of programming to do on a video game.  This is one reason why it can be a great idea to buy an engine and have some percent of this already done for you.  Sadly, at least on consoles, none of the engines are setup to give you a shipping game without lots of work on your part first.

    Art

    Art creation for games has totally changed over the years as well.  When I started in games in the late 70s, early 80s there was no Photoshop or Maya.  To get graphics into a game we would sketch the graphics on graph paper and then write down all the positions of the pixels on the paper and type that information into the computer by hand.  Now we have tools like Photoshop for 2D graphics, Premiere, After Effects and Vegas for video production, Maya and 3D Studio Max for 3D graphics, digital cameras, scanners, etc.

    At the same time, Pac−Man was 16x16 pixels and would take only a few minutes to make today but today's games have levels consisting of thousands to millions of polygons.  A 3D character is 2000 to 20000 polygons and has a bone system from 15 to 80 bones.  Each vert ex on the character has 1 to 4 hand set weights for how much each bone influences it and the bones often have to have constraint systems or functions applied to them so they don't bend the wrong way.  Textures have to be drawn to cover a character, often separate textures for different parts.  And, as opposed to just a couple of years ago when we only had to make a color texture, we now have to make bump map textures, reflection map textures, glow textures, and a host of others.

    Making a character like Pac−Man took just a few minutes including animation.  Making a character like Solid Snake takes months.  A few days to make the model, then all the textures, setting up the bones, connecting and weighting all the vertices and then animating. Pac−Man just opened and closed his mouth.  Maybe 4 frames total.  Today's characters have thousands of frames of animation and even though the computer tweens for us we demand so many moves that it takes months to make them all.

    And that's just the in game characters.  We need artists for the levels.  Artists for all the glue, the title, our logo, the score bar or hud, particle effects.  We have video scenes in most games today that often require a whole separate art team.

    Another issue is that for some systems the artists need to create LODs (Level Of Detail) models.  In other words they might create a character out of 3000 polygons for looking at when she's up close to the camera and another out of 300 polygons when she's far away and only 1 inch high on your screen.  This saves processing time and allows the game to run smoothly but requires the artists to make more models and textures.  There also MIPs which are textures that are smaller in resolution used when an object is being drawn far from the camera.  Without them things would be slow and also flicker a lot.  Often they are generated automatically but sometimes they need to be hand edited if the auto−generation doesn't do a good job or if you want special effects.

    On top of that, many systems require the artists or designers to make separate models for collisions for the entire level.  These models are similar to the 3D models used in the level but are much simpler with no details and no textures.  Still, it's lots of work and often they have to be tagged with all kinds of attributes like "this thing is deadly" or "this thing is sticky".  And it's not just collision geometry marking what's solid.  Trigger boxes need to be added that mark things like when the player steps inside this area have the boss appear or start a dialog or cutscene or blowup something.  Others might be there only to help direct the camera.

    And then, often the AI in the system requires lots of data that we ask the artists to put in.  In the simplest case it's just to put an object in the 3D program to mark where a game object will start but it can go up from there from having to draw the paths the objects will follow or having to add special AI geometry that marks where an AI character can walk, where he can't, where he should jump or step down, etc.

    Just like programming art has started to get specialized.  In the past a couple of artists did it all.  Now we have specialty artists.  Storyboard artists, 3D modeling artists, texture artists, lighting artists, animators, 2d artists.  I'm sure like the movies we may even have camera artists soon.

    With all that art some companies have even gotten to the point that they have special software to try to keep track of it all.

    And it's only going to get worse with the next generation.  Today to make a belt buckle on a character an artist just draws it into the texture by hand.  On the next generation games, for example Doom 3, the artist actually models the belt buckle in 3D, textures it with a metal like texture and then tools take over and extract a color texture and a normal map so that in the game it still looks like a 3D belt buckle complete with highlights, reflections and shadows.

    Another thing is you are not going to be able to just hire any old art student or buddy that draws cool pictures of anime characters.  Making good art for games is not the same as making good paper art or even movie CG art.  We've got serious limits.  In a CG movie some artist might use procedural hair and skin for a character and might use a 1024x1024 texture just for the character's eyeball.  They might use nurbs or subdivision surfaces, something the current consoles are not really up to.  They might have a million polygons in their model and all 202 human bones were as a game might have 3000 polygons and 15−30 bones and a limit of 1 256x256 texture for an entire character.

    Finding artists that can make good stuff with those limits is very difficult.  As an example of some artists that can, the Gran Turismo 3 artists and the Metal Gear Solid 2 and 3 artists.  All of those games have relatively low−tech graphics engines but the artists are so good those games look incredible.

    Sound and Music

    In the past sound and music in games were pretty much a last minute thing.  Once the game got 1 or 2 months from shipping the company would hire a sound or music person or both to quickly fill the game with beeps, buzzes and background music.  As games get bigger and bigger this is no longer the case.  Now, many games have almost full orchestral scores and thousands of sounds and we still have extremely limited memory so getting all those sounds and music to fit requires more than just musical skill.

    To give you an example my friend on the Jak II team said for one language they had 4000 files of dialog!  They did 9 languages so that's 36,000 files!!!!  Someone has to go through all 36,000 and make sure they are all correct, all finished, all in place.  And that is just the dialog.  They still had music and sound effects.

    And, speaking of memory, there is never enough room so you'll need programmers to make up systems to get you all those sounds.  In Gex, Gex has like 400 quips or more.  I don't remember how long the actual list was but we only had memory for 1 quip at a time and so I had to write a system that would try to load a relevant quip, while we were spooling music off the CD at the same time.  You can not play the sound until it's loaded and a relevant quip is one that Gex would say when he attacks a particular enemy or sees one or gets hit by one.  In other words, you can't wait until Gex does his move and then load the sound and play it.  It might be 1 or 2 seconds before that sound is read to play.

    Another example.  In Crash Team Racing there were tons of quips as well.  Those quips were played directly off the CD as CD−XA audio so the sound programmer had to make a system to put all those sounds on the CD and queue them up so they could be played quickly when they were needed.

    For a while in the mid 90s musicians thought Redbook audio, playing music directly off the CD, was going to be the end all be all for game music.  They could use all the tools at their disposal to make the highest production value music ever.  The industry quickly figured out that red−book or streamed music only fits a very small, very limited set of games.  For one that's because that kind of music takes time to switch and time to queue up so it's not easy to change the music instantly during game play in response to a power up or to the mood going from safe to dangerous.  For another many of today's games need to spool data off the disc while the game is playing.  That's impossible if you are using Redbook audio and can be problematic if you are using streamed music.

    So, most games use a some kind of structured music format.  The problem or issue is that just like it's hard to find a good artist that can make good art for your game within the limits of the game system, it's just as hard to find a good musician that can make good music within the limits of your music system.  They might get only 512K or 1Meg in which they have to fit all the instruments for the music that will be played during the current stage AND all the sound effects used in that level.  Try taking a look at the average size of a music sample or instrument and you'll see 512K is not very much memory.

    Video

    I'm sure you've noticed but today's video games often have video that rivals movies.  The stories may mostly suck but the CG quality is up there and that kind of CG does not come for free.  The opening movies you see can take teams of 5 to 10 people 3 or more months.  One small movie like that could take $100K to $200K or more.  And then you get into games like the Final Fantasy series which has tons of CG movies.

    Some people think they will get away cheaper by using real time CG cutscenes.  If they are kept extremely simple that might be true but if they are detailed like MSG 2 or Jak &Daxter they are hardly less work at all.  In fact they might even be more since with fully pre−rendered cutscenes there are no programmers needed to make tools and engines to play them back.  And, it's only going to get worse as the power of each new generation of hardware makes it possible to make real time scenes look like movie CG.  But, movie CG requires huge teams.  You don't get all those details until someone makes them

    And all the rest

    What else can I add in here.  Well, there's a month or 2 of bug testing.  If you are doing an international game you will have people testing in all languages from all over the world and you will need to give them each a version.  Many of you probably have DVD burners so you are probably aware that making a DVD takes time as just transferring 5 gigs of data over your network to the machines with the burners.

    Having versions for playtesting as well.  Playtesting is testing to see if the game is playable.  Maybe you test it and find that no one can figure out how to open that door or that the green key is under the 3rd box on the left and so you have to go back and redesign your game so that people don't get stuck and frustrated.

    There's also often a huge hit to your schedule for things like a version to take to E3 or other industry trade shows.  You might need to make versions for the press so they can have their reviews appear the same time your game hits the store shelves.

    Now−a−days you might also have to deal with pre−piracy, having the press for example, leak your game to the internet.  Having all that work you see above taken for free by some thieves and so you have to spend more work trying to prevent them.

    I'm sure I've forgotten quite a few things but hopefully this gives you some idea of why games take lots of people, years to make, and millions of dollars.

    Comments
    Getting Samba to work fast on a home network
    Game Software Localization