[gameprogrammer] Re: Fast development over multiple platforms, which language?

  • From: brianevans <brianevans@xxxxxxxxxxxxxxx>
  • To: gameprogrammer@xxxxxxxxxxxxx
  • Date: Tue, 08 Mar 2005 12:01:10 -0600

>Cause all the game programmers learned C++ in school and when people
>asked them what language they used they said C++ and so all the people
>who wanted to be game programmers learned C++. Nothing to do with the
>language, every thing to do with fashion.


Hey Bob,

   I'm not sure I believe that is only because of fashion.  It may be more 
to do with habit.  It was not that long ago that we had sub Ghz processors 
and memory was expensive, compared to now.  On Win95/98 era hardware 
(100-500 Mhz machines, 64-128MB ram), the only choice that made sense for 
serious games was C/C++.  Java has just recently (2001+ at least ;) ) 
become viable for games, IMO, because the JVM's have gotten better, and/or 
the increase in hardware performance and available memory hides the 
performance hit.  I would not have considered it viable for any but the 
most basic of games in 2001.

I'm not talking about mobile games.  Any mobile class game will get laughed 
out of the serious PC game arena.

Anyway, that kind of history will lead to reputation and prejudice.  Its no 
wonder people automatically think C/C++ when considering serious game 
programming.  And I think when you really get down to it, it is about control.

Correct me if I'm wrong, but given the higher degree of control over memory 
in C/C++ it is possible to program with greater memory efficiency than 
Java.  It is also possible to create memory leaks, but if you only have 64 
megs of memory to use, memory efficiency is important.  Controlling when to 
deallocate memory is important in games (and real time apps especially) so 
you don't get hiccups or long pauses while the garbage collector goes to 
work.  Last time I used Java, that was a problem.  Now, with machines 
getting a 512-1024 megs of memory, it may not be.

Java also will not give you the control down to the metal.  Some people who 
really push the edge may require that.  I very much doubt Carmack will ever 
write a engine in Java.  Maybe you will do something that requires 
hand-optimized Assembly loops?  Maybe the JVM can optimize it enough for 
you?  Granted, most of us will probably never need that control.

If you're writing a Bejeweled clone, I doubt any of this matters.  If you 
were writing Quake 2 in 1997, you had to pick C/C++.  If you were writing 
Quake 2 now, maybe you could use Java.  If you were writing Doom 3 now, I'd 
think you'd have to use C/C++.  But for most of the games most of us can 
make right now, it really doesn't matter, though its nice not to have to 
worry about a JVM being installed.  But then again, it would be nice not to 
worry about memory leaks.  Ahhh, tradeoffs.

But, ahem, back on topic.  There's so many ENGINES out there that really 
the discussion should be on what engine to use for rapid development rather 
than what language to develop a engine in, or what language a particular 
engine is written in.  Developing an engine yourself is not rapid game 
development. :)

Geez, I write too much.

brian.



---------------------
To unsubscribe go to http://gameprogrammer.com/mailinglist.html


Other related posts: