Advertisement

Guidance for my son...

Started by October 05, 2013 02:17 AM
42 comments, last by Migi0027 11 years, 4 months ago

Hi,

For a ten year old student of game development, I would encourage very simple application development first, especially programs which would be similar to those found inside of software games. He should be developing applications like indexers, general user interfaces, simple vector graphics word games in console application form, and learning basic compiling into executable programs and files. There are fun books which teach these things in simple game form to young students. Most developers would highly recommend that the young pupil stay in the 2D graphics gaming area for a good 1-2 years minimum before getting to 3D graphics game development. Jumping directly into 3D development would almost certainly result in many bad coding habits to be started which are difficult to retrain to good ones for a beginner or even intermediate level programmer.

Secondary, I would encourage an interest in math which can spare many lines of coding and also serve to teach the development of good coding framework upon which later coding is added. For example, a few lines of algorithm can set a pattern for efficient coding that plugs into it. One good algorithm might spare the coder in thousands of lines of coding later with many benefits to it.

Eventually the game developer will need to consider how to expand in the 2D and 3D graphics art areas of game development. You may help your son to discover his own artistic strengths and weakness. Each can be improved with practice. There are many paths to pursue such as art classes, tutoring, or assigning project yourself. As for game development, the key is to assemble a work pipeline of software and tools to make game art and use a game engine to bring them into a game which was coded by the student.

Remind your son that above all he should nurture already existing passions and talents in game development to have fun with it. This is the key to staying with it.

Clinton

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

I thought I'd just reply with some thoughts I have about learning in general here, since others have already answered you excellently:

I think the big mistake to risk making here is to think that programming is somehow unsuitable for people below a certain age. Well ok, if you're 3 years old and still using the pottie, then maybe you should wait with programming. It's definitely true that age factors in, but I still think a lot of people overestimate it. Especially when talking about 9+ years of age.

Throughout my own learning process (and believe me, I'm relatively new to the coding bit, not to mention I'm a total manchild), I've found that - at least for me - it's not as much a question of age or IQ. It's much more important to have patience and diligence. And, if you want to be successful to boot, an ample supply of open mind, social skills and general life experience and scientific literacy.

Furthermore, kids are actually much better learners than adults - a well established fact (or at least a strongly documented and consensual hypothesis). Kids don't have the life experience that would otherwise produce patterns and biases that outright hamper your learning ability. The only real problem with low age is the reduced ability to process the information and seeing the bigger picture (again because of lacking experience). But as your son is learning the stuff, the bigger picture will just naturally come to him in time. That comes with learning and age, and it might even go faster for him than other kids of his age because he's constantly honing it through programming.

Well, in either case I think Unity sounds good. Good luck. :)

- Awl you're base are belong me! -

- I don't know, I'm just a noob -

Advertisement

I think an interesting first step into game programming could be using SDL to program a tile-based game. This would link nicely to the tile-based gameplay he's been used to from RPG maker. To achieve this, first teach him some general programming concepts, read enough C++ tutorials and try to grasp the concept of pointers.
Once that's done, there's plenty of decent SDL tutorials online. One I found particularly useful when I started out with SDL (and C++) was this one:

http://lazyfoo.net/SDL_tutorials/

Should be a decent foundation to getting acqainted with the game loop and 2D rendering concepts, as well as some basic game entities.
3D game programming would then be the next logical step, but will require alot more time since it relies on more advanced maths/algebra concepts.

I suggest trying different programming languages with the goal of writing "Hello World!" programs.

Aiming for Unity right away is a little too much (the expectations would be too high).

Just installing IDEs, understanding the build process well enough to get a result and getting to compare the different approaches to similar problems ...

those things will show your son pretty soon if he has what it takes and if that is really something that he wants to get into.

He will get stuck, have to deal with outdated tutorials and figure out why he gets error messages. Starting with convenience products gives a false impression.

Programming is frustrating at times and a lot of research is required when you are stuck.

It also helps with the big picture thinking. It is totally possible to approach the topic from the wrong angle and not make any progress at all (while it feels like you do).

I think that is what talent is about. If you lack in that department then guidance / the chosen path will make a huge difference.

That is why I also suggest reading more general books (like "Clean Code") that give an idea of how programmers think.

And, of course, being a regular at Gamedev.net helps with that as well.

Once he picks a programming language for a larger project he can look for communities like "JavaCodeGeeks". Those have invaluable articles.

Last but not least even more general books like "The Seven Habits of Highly Effective People" or about learning (e.g. "The First 20 Hours") might help as well.

Given enough eyeballs, all mysteries are shallow.

MeAndVR

You mentioned he's been scripting on Roblox, which is where I came from (I also started at 12). Because he has some Lua experience, I'd recommend looking at http://love2d.org/ which is a simple to use game engine for Lua.

Falling block colour flood game thing I'm making: http://jsfiddle/dr01d3k4/JHnCV/

There's no nice way to say this. I see a lot of people on the forum who can't commit to making one game, and even admit to it.

If someone decides they want to do something around 3 - 6 years old, it becomes them. Children at this age will also experience augmented reality so whatever they think of becomes well-ingrained.

At any other age they might just be thinking, oh this will be a trial run to see if I can do it and enjoy it.

I'd say the hardest part is appreciating undeveloped games. Picturing one game in your mind, that impossible goal, and keeping it in your head for a decade, barely changing. Continuing to learn normally is a trivial matter, and for me it is merely a means to an end.

Like you were asking, if I had a child who believed they wanted the same path, I'd expect this much.

Programming can be a handful to get started. I recommend teaching someone how to do some or all of the following:

1 type on a keyboard

2 compile and run their first high level programming language - some compiled languages need so many files and environment variables I still am not sure why

3 avoid infinite loops

4 guard against crashes, saving frequently, backing up saves in the same location

5 create backups, hard drives do die

Other than that, introduce them to new topics as usual, let their creativity blossom. A common thing game thinkers will do ( I always do, but now I try not to for longer than a few seconds) is they'll see something new and wonder what a game adapted version is, and they can have a lot of fun talking about it and making stuff up.

I've read about the idea guy. It's a serious misnomer. You really want to avoid the lazy team.

Advertisement

This is coming from a person who started programming at 10 because he wanted to make games.

If I can go back in time, I would tell myself to "stop making games on your own stupid!" Most people will tell you "Make him download this" "Tell him to learn that". I think this is ill-advised. For example while it is possible to learn programming and game making by trying to do so with practice (I'm going to make a game in Unity!) It's going to be inefficient. Trust me, I've been there. I learned a lot, but if I had someone guide me, I would have learned a lot better.

I would personally recommend to have your son consider taking this course from Harvard provided by Edx: https://www.edx.org/course/harvard-university/cs50x/introduction-computer-science/1022 (It's free and online)

The reason is that CS50 does not only teach you how to program, it also inspires you. A person above stated that it is important to see results of your work. The people at Harvard know this, and they give you a lot of 'early wins' (The first problem set is a Scratch game! You could show him mine, might get him inspired:http://scratch.mit.edu/projects/2995632/).

My suggestion is to take it easy, a 10 year old is what, 3rd grade? Making games involves math that is more complex that I who am 20 can't do. Plus, being 10 his mind is not developed enough yet, the scope of what could be understood and comprehended is small.

Hell, I only understood the meaning of some events that happened in my life when I was 15-16 let alone if I was 10.

My suggestion is to take it easy, a 10 year old is what, 3rd grade? Making games involves math that is more complex that I who am 20 can't do. Plus, being 10 his mind is not developed enough yet, the scope of what could be understood and comprehended is small.

Hell, I only understood the meaning of some events that happened in my life when I was 15-16 let alone if I was 10.


He's actually 12, not 10. And I know a 12 year old who can script or program and catch on about as well as I can, and I'm an adult. So he should be fine. I know it sounds strange, but it is possible. 12 year olds can do more than you think, not everything but they seem to be able to do some things about as well as adults.

I started making games when I was 12 using GameMaker, which is kinda like Unity but 2D so it's simpler.

It's nice since you can get results much faster and more visually than with the other engines and a lot of the heavy weight stuff is abstracted away.

It helped me a lot anyway.

The only catch is that it now costs at least $50 if you want to do anything bigger than Pong with it, so if money is an issue I'd recommend him to learn C# first and then afterwards learn Unity.

EDIT: And also, and this may sound obvious, regardless of what he chooses, praise for even the simplest looking accomplishments is nice since it's actually pretty hard, so when he excitedly shows you a ball that bounces around or a square you can move with keys, congratulate him on it.

This topic is closed to new replies.

Advertisement