So, which language/languages would you guys say is/are the best for making video games?
I'm studying to become a game programmer and I'm not really sure which to focus on.
Still C or C++ I'd say.
For the forefront of commercial game development (cutting-edge 3D stuff) you really need every ounce of speed and functionality you can get, and the old standbys - although not very pleasant to program in compared to modern languages - are the best choice.
You should also familiarize yourself with Lua and Python, those are becoming popular to embed in games as scripting languages for AI and such. And various assemblies if you plan on developing for any game consoles. (Knowing some assembly is a boon anyway - understanding how your code works on the lowest level can make you a better programmer.)
Java and ActionScript (flash) are also sometimes used for games. There's a boom going on at the moment in small games -- on the web and on cell phones -- and in this area those two languages predominate.
If you'd like to start making games right now, try Pygame. There's some rumbling that Pyglet is even better. You can get free tilesets from http://lostgarden.com/ if you want to start with 2D. 3D is a lot more work, asset-wise.
>>3 Thanks for that lost garden link. I'm glad I clicked on it. The first blog post, about making a game if you don't have an artist, applies to me and contains lots of obvious, common-sense wisdom I had never thought of.
Take the time to study mathematics. Linear algebra is used quite a bit in the game industry, especially with 3D games (a.k.a. every game except "Brain Age"). I am not in the industry myself, but a close friend of mine is, and more than one company had him take math tests about quaternions:
Actual game developer here. C++ and Python/Lua/Tcl for scripting/AI.
I don't think anything could replace C++ anytime soon... D, maybe.
>>6
Tcl is used in the game industry?
Quick Basic
Nobody really uses Tcl anywhere. It's one of those languages which is doomed to be used in university to teach students how much it sucks so that they don't get tempted to use it later when they have a real job. You know, like Eiffel.
I was considering saying LISP too, except that GOAL (Game Oriented Assembly LISP) was used in Jak and Daxter, which makes me think that maybe it has some merit in games.
That's pretty cool. Lisp isn't the most practical language in most cases but I wouldn't say it sucks.
You'll find Lisp used for game logic in a few games, but you're not going to find anyone actually writing a whole game in it.
Of course, games use all kind of crazy shit for scripting, so no wonder somebody would pick Lisp.
>>17 Franz made a CL-like language called GOAL for Naughty Dog. Not for scripting, not "just" logic, and not "just" anything, but for real programming, and all of the programming, to use your words, the whole game. When >>15 said Jax and Dexter series was written on it, they meant all of it. Crash Bandicoot was made in lisp as well (using a predecessor, of GOAL).
In fact, CL is perfect for games because of incremental programming. This makes it possible to build the game while it is running. If you get stuck in a wall, or you get a crazy loop, just fix it and continue playing, no need to rebuild, burn, run, test, debug cycle.
study C. this is the answer for every thread in this forum.
>>18
yeah but you have to learn lisp first which is difficult.. long term benefits in programming are hard to see.
>>20
Learning most lisps is in fact very easy, but being productive using a lisp-like language seems unusually hard. One really hard thing for non-lisp programmers to understand is that the various lisps aren't all that similar- even to each other. CL programming is completely different than scheme programming. CL in fact stands out because you can get as productive in CL as you are in any other language within a week or two.
Setting up a CL environment is still a barrier, and it only becomes "easy" once you "get" lisps. The best way to get into it quickly is to download a premade system- even an older one. I recommend lispbox (http://gigamonkeys.com/lispbox/ - the Allegro CL and OpenMCL ones are the best) and I recommend you read and do at least half of Practical Common Lisp in it.
Then stop, and try and make a more modern CL environment. Download the newest (CVS) emacs, (CVS) slime, sbcl (on linux x86; use openmcl on ppc and I have no idea what win32 users can use). Use lispbox as a guide and assemble them together. Try to do some of the other examples to make sure you did it right.
Once you can get through PCL, you can probably do anything in CL that you can do in whatever your current favorite language is, and you can probably do it faster. Within a month, you'll be able to tackle more abstract problems and you'll learn to love the REPL. Within a year, you'll be using homoiconic lisp forms in other languages simply because they are in fact extremely practical and "the parenthesis don't really bother you" anymore.