views:

313

answers:

7

Hello, I am 13 years old and am interested in programming for games. I am currently building an iphone game with Shiva using Lua as the scripting language. After that, I am not sure what I should do or what languages I should learn. My goal is to keep building games but I also want to build my own game console. Of course, that wont be for years but I need to learn something right programming now. I know that programming games vs applications is totally different and thats why I need some help. What languages or things do you recommend for me to learn?I also want to be able to create applications but programming applications and programming games is a whole different thing.

Thank you

+1  A: 

Perhaps check out some of the game programming links here: http://lazyfoo.net/SDL%5Ftutorials/index.php

Those tutorials assume C++ which is used a lot in games programming so may be worth learning.

Or you could check out this tutorial if your interested in Java http://www.cokeandcode.com/node/6

Adam

Adam Taylor
I agree with Adam, C++ is the defacto if you want to do serious games.
Jonathan
I also want to be able to create applications but programming applications and programming games is a whole different thing.
+2  A: 

Having worked in the industry for several years, this is the best summary I can find:

http://gamesfromwithin.com/so-you-want-to-be-a-game-programmer

My advice:

Learn C++ inside and out. Program in it every day. If you're already set up for iPhone development, learn OpenGL. It wouldn't hurt to learn Direct3D as well if you have access to a PC ( also have a look at XNA ). If graphics isn't your thing, make sure you know how pathfinding (A* algorithm) or collision detection works.

Keep building your own projects, and find a good online community that can support you if you have questions. Employers want see that you are smart, but more importantly, that you are dedicated - game programming is very hard, don't let anyone tell you differently.

You can download free development tools for Windows here: http://www.microsoft.com/express/download/

The one you want is Visual C++ 2008 Express Edition.

Justicle
Well to learn OpenGL do you need to know objective c? On mympac I have windows xp, is that fine to program c++ in?
You need a bit of Objective C if you're on the iPhone - you can do OpenGL on PC, iPhone or Mac. You can use C++ on PC, iPhone or Mac. On iPhone and Mac you can mix C++ and Objective C, which an make things confusing for a beginner. I updated awnswer with link to Windows dev tools.
Justicle
can I use the pc dev tools on my mac, I have windows xp on my mac. Or???
Yes. Sorry I wasn't clear - instead of PC I should have said "Windows".
Justicle
Yeah but should I install the windows dev tools on my mac which has windows xp on it? Or ?
Or should I program c++ in xcode. Is there a difference?
Xcode is for developing Mac OS applications, and only runs on Mac OS. Visual Studio is for Windows applications, and only runs on Windows. Which one you choose depends on the operating system you want your app to run on.
Justicle
A: 

You should check out Unity3D website. They have now a free version (named Unity) for personal and commercial use. You can use scripting with C# (possibly any .NET language), JavaScript, and Boo.

XNA would be a good fit too.

Stringer Bell
I am currently using Shiva
Compared to ShiVa, Unity is the Nirvana.
Stringer Bell
hmmm, well I like shiva because you can program Lua in it. If i were to use unity I wouldnt know how to program in it.
what would you recommend?
+7  A: 

The first game I ever wrote was a snake game written in Turbo Pascal. I was fiddling around and managed to get (using a series of dots) a line moving across the screen. Once I did that I made the line change direction. I hooked that up to the arrow keys and got excited. Two hours later i'd gotten a different coloured dot as 'food' up on the screen and it was a game of snake. Each game I wrote pushed me further and forced me to learn new things (ideas tend to roll on from one another.)

  • Try and stick to arcade style games. Breakout, Pong, Snake, etc. The amount of time it will take you to build Halo doesn't bear calculating!
  • Don't worry about which language you learn. You will learn many over the years. Right now is the time to ask which is easiest to start writing games with. If you already have the basics of C, then that's your answer straight away.
  • If you have no idea where to start, start doing animations instead of games. Ideas will come once you get used to your tools.

Write a program that draws a smiley face in the middle of the screen. Changing screen modes and using big graphics engines might be overkill for this. Keep it simple. Get that smiley face to move around, change it's colour, make it an unhappy face, etc. Before you know it you'll pick up some good momentum.

The question to ask is how do I write a smiley face on the middle of the screen instead of just on the next line in the console. In my first snake game, the answer was to write a load of space ' ' characters until i got to where I wanted. The better answer, apparently, is ncurses. If you are on Windows XP then the MingGW compiler is free you can get the (non-standard) conio.h library. That's what I used in my second snake game and it will get you started very quickly.

Good journey!

deau
+2  A: 

Look into modding.

I found QuakeC (how Quake1 mods were made) to be really easy to pick up, and you already have a very rich base of game content to use so that you can focus on gameplay and such. I found it a lot easier to stay interested when you're starting with a fun game and adding your own twist to it, rather than starting out making 3d box demos or other overly simple but needed low level programming steps.

Quake1 is pretty old but has the upside of pretty much everything involved in it being open source and free to extend. You could just as easily start modding any of the newer games out there.

A lot of todays big name game shops got their start making Quake or Halflife mods.

semi
A: 

When you're just starting out, C, C# and C++ might be a bit complex to start with. If you're serious about game development, you will probably need to learn C++ eventually, but if you just want to quickly get some things done, you're already on the right track with lua.

Javascript is another language which is very similar to lua in many ways (and very different in others). One advantage of javascript is that everyone in the world has javascript installed on their computers. Another advantage is that it's very easy to learn. There are disadvantages too, but they are not nearly as bad as most "serious" programmers think. Javascript gets an undeserved bad rap.

Here is a very good tutorial for learning javascript: http://eloquentjavascript.net/

It does not cover games programming, unfortunately- But it does cover concepts that are relevant to both games programming and application programming.

Here is a tutorial for javcascript that does cover games programming:

http://billmill.org/static/canvastutorial/index.html

you will need a web browser in order to follow that tutorial. This does not include internet explorer, so you will probably want to use safari, firefox, or opera.

Once you are comfortable making games in an easy language like javascript or lua, then it will not be quite so hard to learn to make games in a hard language like C or C++.

On the other hand, you might be happy just making games in the easy language, and that's okay, there's no rules that say you have to learn C or C++ to make good games. Good games come from good ideas, not difficult programming.

Breton
A: 

Priority Order for a game programmer.

Any subject that needs Analytical thinking and Logical Problem Solving. Necessary knowledge in the following domains.

Mathematics Data Structures Computer Graphics Physics Artificial Intelligence Computer Networks Web Technologies

smallbug005