Teaching game programming

Started by
30 comments, last by programmermattc 15 years, 9 months ago
Really I don't believe in the whole start with easier languages, then work your way down the chain. I believe in the "Big O" theory. ( If it is even a theory. :D ) Let me explain myself.

A programmer can only ever really respect a language when he knows the inner workings. It is best to come from a humble beginning. My recommendation, is start him on a small-scale, not an easy language. Let him control what he wants to control when he wants it, then move him up to higher level languages like C/C++.

Start him out with z80 assembly on a TI-83/84(+) calculator. (You can even use an emulator if you don't have a real calculator.) But after you learn how controlling ports work, using a screen driver to write to the buffer, and key input all works, you will gain respect. z80 assembly is one of the more smaller, easy to learn, and fun assembly languages, but you can still use all the powerful concepts like pointers, etc. At any rate, that's what I started out on when I was 11. (z80 assembly and TI-BASIC)

Honestly, I have to say that I don't think you should really do anything for him. Give him some ideas, and let him drive himself to any results. I don't really think he has the drive right now if he hasn't even searched the net, and found a community like gamedev.net or devmaster.net.
Denzel Morris (@drdizzy) :: Software Engineer :: SkyTech Enterprises, Inc.
"When men are most sure and arrogant they are commonly most mistaken, giving views to passion without that proper deliberation which alone can secure them from the grossest absurdities." - David Hume
Advertisement
Just a side note but relevant:

Why do most of the "how to get started" - threads focus on picking a programming language?

Making a program is more than learning a programming language.

I taught hundreds of people all kinds of programming languages; a lot of them still do not understand how to make a program. There is a difference there.

For me, I needed to understand how a computer works (all the way down to the electronics that are involved) once I got that, the transition to programming was natural. Two other things that helped me greatly were (and still are): I love solving problems and I want to see nice pictures on my screen.

The way in and the drive to keep going differ for each person.

Find out what makes him tick, what is his drive?

It could very well be that 'programming' is not his thing but designing levels is...

Quote:Original post by Halifax2
Start him out with z80 assembly on a TI-83/84(+) calculator. (You can even use an emulator if you don't have a real calculator.) But after you learn how controlling ports work, using a screen driver to write to the buffer, and key input all works, you will gain respect. z80 assembly is one of the more smaller, easy to learn, and fun assembly languages, but you can still use all the powerful concepts like pointers, etc. At any rate, that's what I started out on when I was 11. (z80 assembly and TI-BASIC)

I would recommend learning z80 assembly as a first language over C++.

This has little to do with the complexity of the language (I suggested Python - however, Python can be pretty damned complex when you want it to be. You can do some pretty complicated metaprogramming, introspection, reflection and other programming buzzwords which I may not know the meaning of ), instead my point is that some languages contain traps which, when overcome, do not really benefit your skill as a programmer, yet when they catch you out, they most definitely has a negative impact on your learning experience. C++, with it's numerous special cases which seem obvious, yet in reality are not (there are a lot of things left undefined in C++, for example), is one of those languages and I, in my humble opinion, do not believe that learning this (as a first language, I'm all for learning C++ as a second) has any value over other languages. In fact, I belive that other languages would provide for a more positive, focused (because you struggle with the language less and can focus on the topic at hand: learning programming concepts) and enjoyable learning experience.

This is all just opinion, of course. To each his own.

I'm 14 and I recommend Beginning C++ Game Programming (been programming since around 10). Awesome book. And C++ really isn't that bad as a start, if you can wrap your head around it from the beginning (which I can guarantee you won't happen from an online tutorial like cplusplus.com). If not, then try something like Python, or if you're feeling adventurous, C#. I've heard Java is also rather similar in terms of the learning curve when compared to C#.

(also, it sounds like I'm suggesting things for you, even though these suggestions are for your bro [grin])
Quote:Original post by infinitas
Frankly; how smart is he?
If he's a real smart ass, and can do maths/logic without even thinking about it, start him at:
http://www.cplusplus.com/doc/tutorial/
Then throw him at google. While he may whine, spoon feeding never helps anyone, he must also have the motivation to want to learn it himself and figure it out for himself, otherwise he isn't going to go anywhere.


Perhaps I'm completely skewed in my perception of smartness, but he wouldn't have to be too smart for that. I started on that site about six months ago and I can do just about everything in it now (I'm 14). If he's a year older than me, he should have very little trouble on that site. It's maybe the best tutorial I've read - much better than those aweful 'Learn C++ in 3 weeks' books. I'd say the web is infinitely better for beginners, moving on to books as they progress.

Dulce non decorum est.
3 things i find most helpful:

www.cprogramming.com
www.cplusplus.com
irc.afternet.org #gamedev
To clarify what I was saying earlier, in a whole mess of jumbled language. :D I would recommend he chooses whatever gives him the most ecstasy.

At the end of the day, programming should be insane ecstasy. (Yes that is redundant.) Programming should be a drug, and what I was basically saying earlier, is that it doesn't seem as though your brother has gotten a taste of that drug yet.

Everyone at my school wants to make a game, and at first I was naïve enough to believe that they could follow through on it. My point being, almost 99.9% of the time a person wants to do something, but not actually do it, if you catach my drift.

My recommendation to your brother would be, get your butt up and do it, or become a designer, and make other people do it for you.
Denzel Morris (@drdizzy) :: Software Engineer :: SkyTech Enterprises, Inc.
"When men are most sure and arrogant they are commonly most mistaken, giving views to passion without that proper deliberation which alone can secure them from the grossest absurdities." - David Hume
I see everyone is suggesting C++, but what about XNA? It's pretty much made for game programming.

Beginner in Game Development?  Read here. And read here.

 

I first began programming with ActionScript in Macromedia Flash back when I was like 11. It taught me how to make variables, loops, and all the basic stuff.

I'm now 16 and proficient in C++. I'm also fully self taught.

I think self teaching is by far the best route to learning something, because if you're passionate enough about something to take the time to teach yourself the in's and out's then you will quickly grasp all of the concepts involved.
Also, it might be a good idea to show him some of your first projects laying around if you still have any. Drive home the point, that he won't be making amazing games from the beginning, but it is one step up the ladder. It is important to realise that, plus you get to look back at your old stuff and cringe inside ;)

This topic is closed to new replies.

Advertisement