Game development facts and tips

Last month I had the pleasure of finding a new friend in the gamedev community: Ian Masters, a senior game programmer at Sidhe Interactive, creators of the Speed Racer game for Nintendo Wii and Sony PlayStation 2.

While he was in town I managed to compile a list of game development facts and tips. Here they are:

Programming:

Everybody creates their own internal technology to build games. They modify engines and create frameworks for internal use.

The technical director is the responsable of selecting technology like the game engine.

Developing a game engine from scratch could take years and it’s not recommended.

The most used languages in game development are : C++, Lua and Python.

It’s common to have a prototyping team.

Use source control (SVN, mercurial, etc.)

Have all your projects into a solution, prefer that to link against static libraries (including third party code).

Have your engine’s source code in your source control system so you can modify it and the changes will propagate.

QA:

Unit testing is very important (specially for math libraries and core functions).

Regression testing is important too.

QA team is different from playtesting. QA test QA, playtesters test fun.

No QA guys in multidisciplinary teams.

Art:

Conceptual art should be delivered as soon as possible before programming start (at least a month ahead).

Work on iterations.

Artists hate naming conventions.

It’s not easy to convince the artists to follow naming conventions (normally you need a producer to talk to them).

Having a lead artist who follows naming conventions is crucial.

Try to integrate audio as soon as possible. Audio is not a luxury.

Post effects are often decided between the post effects coder and the art director.

Camera effects are often decided between the camera scripters and the designers.