Fog Creek Software
Discussion Board




Why Game Programmer are considered the BEST ?

Why most application programmer regard game programmers as some of the best hot shot developers around.

Is it extremly hard to write video games ?

Amateur
Monday, January 07, 2002

I can only speak for console programmer.

One of the reason we might be rated a bit higher is that we must ship an UNBUGGED product.

The product we ship are console cartridge you buy in retail shop, so you can imagine that applying a fix on that support is not possible :)

Unlike many pussies PC game programmer who ship
a game and then a supply of fixes for 2 years.

But I must admit developing for the PC is a bitch,
getting 3D and sounds working on all PC is a true nightmare that's why I stick to console.

I came across people developing business application and they seemed to know their stuff to,
programming is programming, then you just need some specifics knowledge depending in which area you're going to work.

I know fuck all about database programming/XML and all that crap but I am sure that not many DB programmer have ever wrote a 3D engine, an AI script or even a sprite collision routine.

Well, I gotta go now. 12 bugs to fix for today :(

Console Programmer
Monday, January 07, 2002

It also must be extremely hard to write legibly and complete a sentence without cursing...  ;=)

Seriously, I don't think game programming is any harder then writing a commercial business application.

Both require certain disciplines that can’t be achieved overnight or with the help of a “Learn C++ in 10 Minutes” book.

If your interested in what the code looks like for a commercial game, take a look at the source for the popular game, Quake 2: 

http://ftp.interaktif.net.tr/ftp/idsoftware/idstuff/quake2/source/q2src320.exe

You wont see much XML or any database calls, but if you can read C, you should be able to intrepret what's going on.

One thing I'm positive I couldn't do though, is the graphic design part.  I can't even draw a stick figure, and I'm pretty sure that no amount of practice would ever help me there...

Guy Incognito
Monday, January 07, 2002

I'd be inclined to doubt that the engineers of a particular genre of software are better than others, I think game programmers, in general, have more presence in the "Real World" than others, which is why the perception and respect might be there. For instance: I'd get excited about meeting John Carmack, but OTOH, I haven't the slightest idea who wrote the printer driver for my HP DeskJet. Games are made most often by a small group of developers that at usually in direct contact with the community they sell to. This connection is the key to the perception of skill: As there is a community for games, it has it's deities. Contrast with say, operating systems (Exclude for the sake of the example OSS projects like Linux). There are no "operating system enthusiasts". I think that this nearness to the community is why they may be considered better.

However: There is no real technical basis for this. Sure, the game must be designed well, but there are less considerations: CityDesk must accomodate nearly everything that a user may put on the web. A game, however, usually has very very specific requirements: play these levels, this is your physics, etc. Games are very complex, but I would question  how complex they really are compared to say, Autocad, or Final Cut Pro, or Photoshop.

And there are bad game programmers too: (Remember Tresspasser? Niether does anyone else, because it ran terribly on its day's highest end systems). It's like pro sports: There are a few visible programmers, a few bad ones, and a whole mess of people we don't see or hear about that make everything really work.

Mike Swieton
Tuesday, January 08, 2002

Game programming is a hard field to break into professionally due to the lack of jobs available, and also due to the number of potential candidates trying for a game dev position.  As such, companies can be picky and only select the creme de la creme.  So the game developers who work in the game studios are usually the best in that field of work. 

With regular software developers companies don't have as much choice and sometimes pick up warm bodies just to fill a position.  However, this is changing due to the current economy and companies can afford to be more selective.  Which is a good thing for those who are employed and only want to work with other smart people vs. "developers" who can't code themselves out of a paper bag.  But in general you'll encounter not so great developers on average working in other fields besides game programming than you would in the game industry due to the specific industry's equillibrium of openings vs. applicants.

Pros Chum
Tuesday, January 08, 2002

“Seriously, I don't think game programming is any harder then writing a commercial business application.”

"There is no real technical basis for this."

I spent a couple of years programming games for consoles (the Sega Genesis and the Atari Jaguar).  At that time, all the console games were written in assembly language; and there was no operating system on the console.  I learned a lot about how computers really work, because I had to deal with interrupts and registers and memory latency; not the abstraction that most programmers deal with.  However, I was just a grunt.  I had just scratched the surface of what it would take to be a good game programmer.

Around that time the game DOOM was released.  Carmack showed the world that it was possible to display 3D virtual worlds in real-time on an 80486.  I was dumb-founded at the skill required to pull off that feat, and I still am.  He raised the technical bar that one had to hurdle to become a good game programmer. 

I was happy and excited to try to leap over that bar; but I was also recently married.  To be on the cutting edge of 3D graphics programming takes a monk-like commitment to learning.  In addition, game programmers are not paid a lot. There are plenty of brilliant, enthusiastic, hard working young programmers who will gladly work for minimal salary for the opportunity to work in the game-programming field.  Game programming was taking a serious toll on my marriage since I was getting low pay and working long hours 6 days a week.  My newly married wife had not expected a life where we never saw one another.

When it came time to look for a new job, I took an easier but higher paying job writing multimedia educational games.  I was bored stiff.

I then left to work for a developer tools company where I worked on a debugger and spent much time examining the source code for a commercial operating system.  I also helped write a JIT compiler.  This work was much more interesting, some long hours, but also the highest pay yet.

About a year ago, my wife (the same one) went back to school to learn client-server programming.  I have been helping her in her classes.  It has been interesting to see what client-server programming is all about, and to learn database programming.

Cutting edge game programming is orders of magnitude more technically challenging than business apps.  To be a good game programmer you will need the knowledge equivalent of a least a MS in mathematics and a BS in EE.  I realize this sounds like hyperbole, but 3D graphics is actually a wide-open field that is heavily reliant on algorithmic optimizations.  To be on the cutting edge, which is where you need to be if you want to sell your games, you will need to be able to invent new algorithms (so an MS in math would come in handy).  The efficiency of 3D algorithms does not exist in a vacuum.  It is not enough to add up how many operations a particular algorithm takes, the implementation details are just as important.  You will need to understand exactly how the memory bus and cache and multiple processors affects each other (so a BSEE would be useful here).

Following is a snippet of code purported to come from Quake3.  I think you will agree that the technical understanding required to invent such code requires an exceptional amount of mathematics and EE knowledge.

// Fast reciprocal square root
__inline float RSqrt( float number ) {
    long i;
    float x2, y;
    const float threehalfs = 1.5f;
    x2 = number * 0.5f;
    y  = number;
    i  = * (long *) &y;
    i  = 0x5f3759df - (i >> 1);
    y  = * (float *) &i;
    y  = y * (threehalfs - (x2 * y * y));
    return y;
}

anon
Friday, January 25, 2002

Game proramming is one of the final remaining areas where optimizing for speed actually still matters...

(well, some kinds of games... I doubt The Sims needed any low-level x86 assembly hacks, and it's made $millions... =)

Dan Maas
Friday, January 25, 2002

"I think you will agree that the technical understanding required to invent such code requires an exceptional amount of mathematics and EE knowledge.

// Fast reciprocal square root
__inline float RSqrt( float number ) {
    long i;
    float x2, y;
    const float threehalfs = 1.5f;
    x2 = number * 0.5f;
    y  = number;
    i  = * (long *) &y;
    i  = 0x5f3759df - (i >> 1);
    y  = * (float *) &i;
    y  = y * (threehalfs - (x2 * y * y));
    return y;
}"

Not really, it's just a standard Newton-Raphson method, invented a few hundred years ago.

anon
Saturday, February 22, 2003

I have a product that I want to develop and I even have the perfect targeted audience on my website to whom I could sell the product to - but I do not know programming.  Can anyone point me to a place where I can learn how to program a simulation game or to someone who would do the programming part and split the profits?  Either one would be great because it will not be a hard or heavily complex game to program.  The game is going to be a 3d simulation game of real estate investing and would probably need logic and financial calculating in it . I appreciate any advice!  You can email me at spe1432@aol.com

Kristi
Friday, April 09, 2004

*  Recent Topics

*  Fog Creek Home