Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm a .NET developer and mostly builds GUI's but of course also pure C# due to architecture and database level needs.

To me, developers of games in discussions often being simply referred to as "gaming developers". I find that a little too shallow and I'm curious what a "gaming developer" really stands for.

What would we, in turn, be to a gaming developer? Are there ever conversions from one direction to another and what are the main differences in a regular development process?

share|improve this question
    
Is this a question about game development roles, or how games programming differs from client/server (crud) programming? –  Martin Wickman Apr 11 '11 at 15:41
    
Thank's for clarify the header. I'm surprised that game development are one so different kind of development (to mee). How are this for you? Honestly I've been developed for gambler business in 2 years but still don't got in touched with pure game developers. How are architecture for Tekken, Age of empires? What are the key roles? Can one begin programming games directly from Windows application development? –  Independent Apr 12 '11 at 8:20
    
FDon't forget that there is a SE about Game Development. You should also post your question there (gamedev.stackexchange.com) –  Pierre Apr 12 '11 at 11:50
    
Thank's. I've figured that out and will have a little hook on it. –  Independent Apr 13 '11 at 6:18

4 Answers 4

up vote 8 down vote accepted

The difference between programming games as compared to business programming (client/server stuff) is that gaming is real-time based, whereas the other is request/response/event based.

This represents a completely different programming approach and mind set. In gaming you have a tight run-loop that needs to calculate and render the graphics >30 times per second while also updating physics model and handle input from the user. All this while continuously loading complex assets (3D-models, textures and sounds) from file or network.

This means your code must be able to do all this within 0.03 seconds for the game to run smoothly. So your code must be able to it's calculations step-wise using integration.

For skills, you need to know your C/C++ and also cannot be afraid of math (linear algebra).

It is also very important to keep performance in mind. For instance, if you have a game world which simply cannot fit in RAM. Imagine an outside gaming world where objects far away in the horizon would be rendered as just a few pixels, yet they may consist of thousands of polygons. You cannot render these because of CPU or RAM limitation, so you must figure out a way to make them simpler depending on distance to the camera. Or for that matter, you don't need to render stuff inside a house if the camera is looking at it from the outside (unless you can see through windows, in which case you must be even more clever). This is called culling and is just one area of problem one faces when programming games.

Then we have sound processing, physics calculations, 3D model loading, animations, particle effects, lightning, HUD, collisions ...

share|improve this answer
1  
Exactly my understanding of game development... and it looks like serious hard work! –  Steve Haigh Apr 12 '11 at 10:26
    
Though life those who choose to develop videogames... –  Alberto Fernández Apr 12 '11 at 10:45
2  
This answer is focused on 3D-FPS-like games. That's not the only way to go. I don't think this is the same life that an Angry Birds Game developer is having... –  Pierre Apr 12 '11 at 11:54
    
@Pierre: This is not FPS related and applies to pretty much all games. But obviously, 2D games doesn't have to deal with 3D models, they have 2D models possibly using images with alpha. But besides that that, it is very much the same: real-time game-loop, physics, assets, collision, math, 0.03 secs, HUD, particle effects, culling ("tiles in 2d") etc. –  Martin Wickman Apr 12 '11 at 12:01
    
I understood the intent, +1. But be aware that the term real-time (a la real-time programming) often has connotations that definitely don't apply to games and the choice of language extends far passed c/c++ these days. –  Steve Evers Apr 12 '11 at 15:44

Even within "Game Development", you'll see a range of role titles based on what the person actually does. Graphics programmer, engine programmer, gameplay programmer, etc. Each of these tends to have specific fields of focus which translate loosely between companies.

So yes... "Game Developer" is a little vague. You can't really tell what someone means when they say that. But the same is true of "Software Developer", "Doctor", "Lawyer" and quite a lot of other professions.

share|improve this answer
2  
I think vague is a better description than shallow. –  JeffO Apr 11 '11 at 13:53
    
+1 : It's just a domain, like web-developer. Even if there is a wide range of differences between projects in the same domain (and gaming often gather every other domains...), it's just different perspectives. –  Klaim Apr 11 '11 at 14:00
    
Jeff, I need to teach my translator :). That's absolutely a domain. Like Canada got winter and Brasil got Coffe, i wonder what the differences are? Your probably doing Skiing better as a Canadian then a Brazilian (see me right) –  Independent Apr 12 '11 at 8:28

To develop games you have to come at it from a different perspective.

Just one example is that you the player never move, you have to move the world around the player.

I feel its a matter of mind set as many "business Programs" are interested in speed and efficiency at the same level a game is.

"business programs" don't think, whether your building cod 8 or space invaders you have to have some rudimentary understanding of ai.

In a game the program is designed to fail some of the time, this is the major difference between game programming and "normal programming".

share|improve this answer
    
App/Web are often about create supposed objects available to user/abstraction (with some data transfers). But though, the "Helicopter Game" is more AI then a "Google Search"? I tend to say I disagree. The Helictopter is a picture which calculated green deadly blocks are moving left. The game are listening to key events and cumulating user-points into memory for high score. Very much as Google that auto-fills the word you write to search for and database-storing the search for statistics. –  Independent Apr 13 '11 at 6:39

A business application developer cares most about the correctness of its calculations, while a game developer cares more about the speed of its calculations. It is better for a business app to crash than to give wrong results. It is just the other way round with a game (better have fuzzy results than a CTD). Most business apps are developed with maintenance issues in mind, while game projects often are considered one-shots. Even if planning early on for a sequel, you know that you can't reuse most of the assets (like music, models etc.) and will write large parts of the codebase anew.

I see the main differences stemming from such differences in priorities. Plus, game devs use to have the cooler gadgets on the desks, at least from my experience :)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.