If you could go back X years and start again (but with today’s
resources!!), how would you teach yourself games programming? Would you:
I’ve spent the better part of this past week looking at threads,
articles and tutorials on getting started in game development. There is
so much conflicting advice because the majority of it seems to be in
response to the person asking the question (i.e. “what features do you
want” or “what experience do you have” or “which platform do you want to
My intention is not to start another “where so I start” thread, but
rather seek your own experiences from a bit more of a “lessons learned”
Thanks in advance!
Please log in or register to post a reply.
I would pick a managed language, such as python, and get a 2d library
for it like pygame or pyglet. Study the language first and then write
some games with the library. I still consider it the best way to get a
general appreciation for game programming. You will do your own
rectangular collision algorithms and simple physics, and possibly a-star
path finding from a top view, and have a general idea how everything
I think it would be possible to also start with an engine like Unity,
but it leaves a lot of holes in your knowledge base since most things
are already done like collision detection, etc. 2d games are also easier
to get resources for and are more elemental, so it helps from a game
design stand point. The only real problem is that 2d animation is
horribly complicated, so you have to keep it really simple on that end.
That’s sort of better too, though, because you will write games that are
games, not graphics.
Another 2d engine choice might be flashpunk if you are more interested
in web games. I think python is really the best starting language,
though, and has many purposes, so will always be useful.
What generally happens is people choose an engine like Unity, then
decide to do something like an rpg because getting models in the engine
and using someone else’s script is pretty easy. They find out that they
can’t produce enough models and they have to write their own scripts
which are quite a bit of work and eventually give up. If they had
started out with realistic expectations and had a little patience, they
may have found a hobby or career they enjoyed. I have known a lot of
people that have started rpg’s, but none that have finished one.
Truth be told, every developer feels like that. I can’t think of a
single moment where I had something on hand that was ready to go.
There’s always upgrades, better algorithms, better designs, and more
coding. Whether I use 3rd party software or my own, the end result is
what I keep in focus at all times. How I get there is really a matter of
choice and careful planning to ensure my needs will be met.
The best advice I think you can ever get is to just go and do it.
There’s no subjective opinion, there’s no pros and cons, no hidden
meanings. Only a task, an outcome, and experience earned. What matters
is what you want and the best way to get that is to try. You don’t walk
into a car dealership and buy the first thing you see. You have to get
in the driver seat and take it out for a spin before you can make a
sound decision. If you feel in the mood to try an engine, check out the
DevDB here on DevMaster to find one that suits your needs. As long as it
has a friendly website with supporting documentation, it should be a
straightforward exercise. If you want to try and go solo, find and read
some articles on DirectX or OpenGL and work your way up from there. At
any time you feel something is wrong, you can easily switch paths.
Nothing is stopping you from walking on both sides of the river.
Thanks for the advice, guys.
I’ve gone with the suggestion about learning Python (version 2) and have
just run through the first 4 chapters of Al Sweigart’s beginner’s book
“Invent Your Own Computer Games with Python” (as it is availble as a
free PDF on his website!). He also does a follow on book “Making games
with Python & Pygame” which is also free and runs through slightly more
advanced concepts using Pygame.
After I’ve finished these, I’ll see where I end up, but I’m no rush to
create the next big thing. Sounds like OpenGL (thanks, fireside) and
Panda3D (thanks for the heads-up on the DevDB, TheNut) could be good
choices, but I’ll see how I feel after I have a better handle on how it
Option 4: “What do you mean by games programming?” because it includes
making games, making game engines, making tools, etc.
Assuming you mean games, then I would learn by making successively more
complex games, starting with a “single-page”, text-based, console app
all the way to a WoW-busting MMO. (Obviously, there are lots of steps
from start to finish.)
When I started we worked in machine code. In fact when I first got my
hands on a ZX80 I spent the first three weeks writing some code to
emulate the Apple system which allowed you to type in hex codes and then
disassemble the program you have just typed in.
Why I didn’t just write an assembler I will never know, I was young and
If I did a lap around a singularity and ended up 13 with a computer
today, I would probably be one of the idiots we get on this site who
wants to write everything in a MMORPG from scratch.
Unlike most of them, I would have probably done it as well.
It would have been a huge waste of time of course. By the time I had
finished it, the technology would have moved on and my home grown engine
would be out of date.
If I was advising my young self, I would probably tell me to pick a
platform. Pick an engine. Then write games. Doesn’t matter how good they
are, just get some games under your belt.
The amount you learn from actually completing a game is amazing. It
cannot be underestimated. The things you come across that can trip you
up even on a simple game will amaze you.
I once had a bug report on the Atari ST, “press these five keys with
your left hand, these five keys with your right hand, and press the
spacebar with your nose. Game crashes”
I would advice myself to stop playing with the amiga and (re)start
coding like in the good old c64 days, i had the amiga for 4 years and
those years were sweet, but with almost no programming at all.
Second, i would stop myself pushing hires svga programming because all
that time was totally wasted.
Don’t jump from an university to another just to be nearer home.