10.03.2019 - Round 1 results of our "A Love Letter For FreeBASIC" game dev competition have been published. Please be sure to check the results thread: http://games.freebasic.net/forum/index.php?topic=629.0. Don't forget that the competition is continuing with a round 2, lasting till 29th of April, 300 USD first prize. Stay tuned!

Author Topic: The Game Developer versus the Programmer  (Read 4819 times)

Lachie Dazdarian

  • Double dipper
  • Administrator
  • Forum Sage
  • *****
  • Posts: 1308
    • Yahoo Instant Messenger - lachie13
    • View Profile
    • The Maker Of Stuff
    • Email
The Game Developer versus the Programmer
« on: May 11, 2008, 12:21:51 PM »
This is an article I wrote for QBE...man, it was two months ago.

Anyway, I got tired of waiting. I would like to hear your opinons on my thoughts. Hrm.

Quote
The Eternal Struggle: The Game Developer versus the Programmer
 
Perhaps the title is somewhat overdramatic, but I'm quite convinced that such internal struggle indeed exists in most of us who once attempted to code a computer game.
 
Maybe this type of article would have been much more current in the good old 80ties when most professional game developers were programmers first, and then game developers in one/two man teams. The situation today is quite different, with professional game developing teams counting over 100 people and with game making tools which many hobbyist game developers nowadays use.
 
Nevertheless, still a great deal of hobbyist game developers are programmers first, or at least have to become one. Very rarely one individual possesses enough skill in, for example, pixel art and story writing, to easily motivate skilled programmers to work on his dream game project for free.
 
So I want to discuss here two types of hobbyist game developers: those who learned to code so they could complete a game, and programmers who felt that internal desire to create a computer game, among their other programming challenges. I'll discuss the pros and cons of both of these profiles and try to suggest which traits we should try to restrain and which we should try to develop, depending on which of these two groups I mentioned we might best fit.
 
As I am a game developer and a hack coder it's obvious I will slightly favour the first group and can primarily speculate about the problems of the second. Still, observing the development process of game projects started by programmers I think I can pinpoint quite well what are their shortcomings as game developers. But let's start with the first group, game developers who learned to code only (or mainly) for the purpose of game design.
 
The positive aspect of this profile is that such persons are quite clear with what they want to accomplish during the actual process of programming. Programming above all is a tool for them with a very precise purpose. They are not distracted with certain programming quirks, like keeping the code very clean, reusable and...how programmers like to say, safe. Game developers don't shun global variables, redundant code or some extra memory that probably didn't have to be used. The code for a game developer simply has to get the job done, no matter how. And when I say "get the job done" I mean result in a smooth and playable game on the most PCs possible. So game developers will strive for effective game engine solutions equally as programmers, but maybe for slightly different reasons.
 
Game developers are quite clear that game development is rarely a fun process. The true satisfaction of game development resides in the positive feedback you receive after completion of a project. In seeing people enjoying your hard work and it having an effect on them, bigger or smaller. For me that is, and should be, the primarily purpose of hobbyist game development. If you don't think so, you should really imagine yourself being the last man on Earth and coding a computer game that extends from being a simple toy, if you would be willing to code even a simple toy. It's quite difficult to picture yourself coding an epic RPG in that situation.
 
A skilled programmer approaches the programming part of game development much more confident and prepared. The programmer is quite assured that he will be able to solve all or almost all issues that might arise during coding and he/she is usually right in this position. On the top of that, most of programmer's solutions for specific problems in the game code will be better and more reusable that those coded by a game developer. This is the programmer's biggest asset. Rarely a game code executed by a programmer will end up in a dead-end. Programmer's sense for structure and order becomes a great advantage as a certain project grows bigger. Something that will seem unnecessary at the very start to a game developer will fit in place later. A game developer, on the other hand, is always in danger of killing the project at the very start by employing shortcuts and quick solutions just to get the basic engine off the ground. All of this will of course become a huge problem later.
 
Let's now concentrate more on the negative sides of these two profiles.
 
As I previously mentioned, game developer's built-in need for quick solutions quite often, in the case of inexperienced game developers, results in projects that simply can't be continued any more after a certain point. They become a big mess that is impossible to maintain any more. All that is left is for the project to be restarted from scratch and only the graphics and sound resources can be salvaged. The second problem lies in the fact that most game developers learn only the amount of programming they need at the specific moment of time to solve a certain game programming problem. This forces them to employ inappropriate solutions with the next new problem where better ones probably exist, but a game developer is simply unaware of them or is too impatient to explore and learn them. This is usually a reason for programming beginners only interested in game design to wander around programming languages and switch between bad programming habits. I would say that the initial learning process (to learn to program a game) for a game developer is faster than that for a beginner programmer interested in generic programming, but much more frustrating and less effective. Still, rarely a beginner only interested in game design will be willing to allocate months of his free time to learn programming (which is really the proper way to learn programming) that is barely related to his object of interest - game design.
 
The programmer's game developing deficiency lies in the very traits which define a programmer. A programmer is a problem solver. And once a problem is solved he/she losses the interest to make something out of this solution - a proper game. Coding menus, various display screens (energy bars, etc...) and interfaces, gameplay balancing, plot triggers, you name it. All these tedious tasks are an ordeal to a programmer. The programmer knows he/she can solve them, but also knows that solving them won't improve him/her as a programmer. The programmer is often in danger of continuing to add features and instances to the game engine indefinitely. The programmer dislikes the necessity of hard coding certain situations in a computer game. He/she is more willing to create an implementation structure for every instance appearing in the game which then can be used in the actual process of designing the game, that is, if the programmer ever comes to that.
 
Also, a great deal of programmers don't have the most refined taste in computer games by my opinion. You could say that programmers are the toy makers and game developers the story tellers. The programmers usually don't appreciate the longevity factor of a game, or the atmosphere and depth it can provide. They prefer games that are more toy-like. Easily learned and very rarely featuring progress. With minimum effort delivered in the graphics and sound department. The fact that these sort of games are small and coded in short amount of time works great for their need for programming to be fun. With a toy-like game the very programming solution is usually the game, while with a progressive game it's only the start. A game developer, on the other hand, strives to deliver a world of its own. Something that will draw the player in. Occupy both his mind and fingers. I dare to say, the game developer strives to art while the programmer doesn't.
 
But I should also say that a game developer is less imaginative and explorative in creating original and unique game concepts, mostly as the result of appreciating the game concepts already done. He/she is more drawn to expand and mimic them. A programmer is usually unaware of most game concepts already done so is prone to come up with something completely original, or is simply more motivated to explore new gameplay solutions.

Of course, you can consider all this as my blind speculation and a clumsy attempt to fit the game developers into two groups. I am fully aware that exceptions to all mentioned characteristics of these two groups exist. Think about them as two extremes.
 
The conclusion of this article is quite self-evident.
 
You must be aware, above all, of what you are trying to accomplish with your game project. After you set this you must observe which of your traits as a game developer need to be tamed and which exploited. If you are working on a larger project, you must restrain your need for fast solutions and carefully plan the code of your game. Define what it has to contain and provide. And if game design is not really your domain, please be aware that working on your game project won't be fun for the most of time. Fun comes later. If you can't handle that, don't design games. Above all, remember that game design is not programming (and it really shouldn't be).
"Things like Basic and Free Basic provide much-needed therapy and a return to sanity and a correct appreciation of people. The arrogant folk really hate a word like 'Basic' - fine, and good riddance." ~ pragmatist

nkk_kan

  • Forum Howler
  • ****
  • Posts: 193
  • Let's rocK~!
    • Yahoo Instant Messenger - nkk_kan
    • View Profile
    • nkk's code cache
    • Email
Re: The Game Developer versus the Programmer
« Reply #1 on: May 11, 2008, 12:56:43 PM »
Really good article!  :)
I think all game programmers/programmers must read that at the least once!  :P

Quote
I dare to say, the game developer strives to art while the programmer doesn't.
I completely agree with this one!

Quote
Also, a great deal of programmers don't have the most refined taste in computer games by my opinion
and this is really a sad thing ..but it's prevalent..even in the FB community

Quote
But I should also say that a game developer is less imaginative and explorative in creating original and unique game concepts, mostly as the result of appreciating the game concepts already done. He/she is more drawn to expand and mimic them. A programmer is usually unaware of most game concepts already done so is prone to come up with something completely original, or is simply more motivated to explore new gameplay solutions.

I think you've sort of swapped both of them in this..Game Developer is more imaginative and comes up with Original and unique ideas and concepts..
A Programmer is generally aware of most game concepts ( because almost everyone is a gamer). The programmer is more likely to mimic traditional game concepts as there are optimized and safe algorithms for such things.
Game Developer uses his own shortcuts and methods to achieve something which i agree is not always beneficial and hazardous to their project but that helps with the logic learning curve much more than a programmer trying to follow safe and optimized algorithm.
These are my thoughts anyways...different people different thoughts  ::)

kudos to this article!  :)

notthecheatr

  • Global Moderator
  • Forum Sage
  • *****
  • Posts: 351
  • Who's the guy from 21 Jump Street?
    • AOL Instant Messenger - notthecheatr
    • Yahoo Instant Messenger - TheMysteriousStrangerFromMars
    • View Profile
    • notthecheatr Home
    • Email
Re: The Game Developer versus the Programmer
« Reply #2 on: May 12, 2008, 01:43:14 PM »
Funny how Pritchard was talking about the same thing with me on IRC.  I hadn't previously thought there was a difference, but he pointed out that while I'm a fine programmer and you suck at programming, you win hands down at game development - if only because I've never actually developed any games yet.  Your article and his article both are very helpful and I think my thinking on game development has been greatly influenced by you both.  Good article.
The funniest thing happened yesterday.

Lachie Dazdarian

  • Double dipper
  • Administrator
  • Forum Sage
  • *****
  • Posts: 1308
    • Yahoo Instant Messenger - lachie13
    • View Profile
    • The Maker Of Stuff
    • Email
Re: The Game Developer versus the Programmer
« Reply #3 on: May 12, 2008, 03:25:04 PM »
Well, I still stand behind my opinion that programmers tend to come up with more original gameplays, nkk_kan. My deep impression. Also, I wouldn't agree that we are all gamers. From my experience, most programmers are terribly inexperienced gamers. Again, in average. And "safe and optimized" game designs algorithms are not the same as "safe and optimized" programming algorithms.
"Things like Basic and Free Basic provide much-needed therapy and a return to sanity and a correct appreciation of people. The arrogant folk really hate a word like 'Basic' - fine, and good riddance." ~ pragmatist

Leonheart

  • Guest
Re: The Game Developer versus the Programmer
« Reply #4 on: May 12, 2008, 11:54:42 PM »
Not really... Actualy I'm gamer first then became game programmer (doh! my QB first game broken due to shit floopy disk! :-\).
I have good quality taste for games, and of course I have many cool gameplay ideas in my head. Of course since I don't like to see dll/so in my game component -> I need doing something from stracth  :P. That's why I don't showing any games for now, I need to create so many component; font lib [OK, and in progress create reversion cross platform GUI for font converter, did you happy now...  ;D], sound lib [OK but little mess, I don't really get how to cross platform into linux -- next plan to support mp3/other wav and other cool effect  :P), resource achiver [OK and will impoved and released soon, Durtka compete with RGA, oh no.. he steal my idea  ;D], graphic format handle [in progress but really get busy with other >30000 lines codes project, can handle 16-bit bmp too  :-[], 3D engine [This is my great end project and I have all the equation and formula for 3D light/reflect/etc, small demo already but not in FB  :o], 3D builder GUI [As lachie said this is not games programmer job, it suck! but really vital  :'(]. Upsss... is this not an advertise, this is plan I dedicated for FB Games Development.

-- Thank's to make me remember again to my mission as games developer  ;D.

Overall, That's really-really-really cool article Lachie! Say it so!

BadMrBox

  • Forum Sage
  • *****
  • Posts: 411
    • View Profile
    • BadMrBox.com
Re: The Game Developer versus the Programmer
« Reply #5 on: May 13, 2008, 02:27:42 PM »
Quote
(doh! my QB first game broken due to shit floopy disk! Undecided).
That happened to me too back in the days when I used floppys.