Advertisement

Guidance for my son...

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

I also started programming at the age of 10. Firstly, I don't know if it will work for everyone, but I started programming in BASIC on a Commodore 64. BASIC is an easy language for a young mind to wrap around, but it contains a substantial deal of the thought process needed for other programming languages. Looking back now, I also owe almost all of my knowledge of writing good code to programming on a Commodore. A lot of new programmers today don't have the slightest idea what it is like to have to erase comments to write more code... memory limitations at its finest! I also second the basic application design. Everyone will recommend different languages to start with, but if you do end up going a route like C or C++ first, I would emphasize programs like a text based RPG, or a calculator. I would also pick a weekly topic (such as if, else control logic) and have him write a program using only this logic.

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 know several young programmers. I have found that it usually is not the fact that they can not understand the logic; it is the fact that they can not understand the logic in the current context. You have to find creative ways of expressing the logic in ways that they can understand. Granted, game programming does require math and in some areas the math is pretty advanced, but last time I checked, you don't need Algebra or Geometry to create a simple text based RPG, learn control logic, or start building good programming habits.

"The code you write when you learn a new language is shit.
You either already know that and you are wise, or you don’t realize it for many years and you are an idiot. Either way, your learning code is objectively shit." - L. Spiro

"This is called programming. The art of typing shit into an editor/IDE is not programming, it's basically data entry. The part that makes a programmer a programmer is their problem solving skills." - Serapth

"The 'friend' relationship in c++ is the tightest coupling you can give two objects. Friends can reach out and touch your privates." - frob

 

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 had allready completed my first graphical game and started on my 2nd when i was 12(started programming at 10/11 in BASIC with nothing/noone to guide me except the manual that came with my families computer(computer manuals were a heck of alot better in those days), my lack of more advanced math knowledge wasn't a big problem for the type of games i was making. I think the most important thing for anyone starting out in game development, regardless of age is to get their expectations straight.

If the OPs son can see a simple snake or pong clone as a challenge and a huge accomplishment to be proud of when finished he'll be fine, regardless of his age, if he keeps comparing his own results to todays AAA games he will struggle.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
Advertisement
started programming at 10/11 in BASIC with nothing/noone to guide me except the manual that came with my families computer(computer manuals were a heck of alot better in those days)


Ah yes, that manual... what a wonderful friend he was.

"The code you write when you learn a new language is shit.
You either already know that and you are wise, or you don’t realize it for many years and you are an idiot. Either way, your learning code is objectively shit." - L. Spiro

"This is called programming. The art of typing shit into an editor/IDE is not programming, it's basically data entry. The part that makes a programmer a programmer is their problem solving skills." - Serapth

"The 'friend' relationship in c++ is the tightest coupling you can give two objects. Friends can reach out and touch your privates." - frob

I would suggest you stay away from anything that shortcuts the basics. Yeah Unity and other such programs are great and can teach him a lot. But, can cause a lot of harm at the same time. What I suggest is you get him interested in just pure programming. Java would be an excellent language for him to learn as it is not terribly difficult to learn and it can be treated as a blank canvas for his imagination. Also understand that he may not want to be a game developer in the future, and by teaching him Java you can open him up to a much larger world outside of games.

I hope this isn't too late, but I have a few things to contribute regarding game design.

I started programming around 2009. Before then I'd experienced web languages, and at a shallow level. The one lesson that I think I've learned is how to think like a programmer. Once that mindset is established, you need far less outside help in completing a task.

I started programming as a path to realise multi player in a game engine I'd found. About 4 years later and I'm nearly there. I'm going to base this in the context of the Blender Game Engine, because it's free and it offers different levels of intricacy regarding logic systems and its other features. It's easy to get started, but requires greater thought to create true masterpieces.

The most important thing for a new developer/ game designer is interest. It's far quicker to learn about a new subject (or an old one for that matter) when you're invested in the education because it is the means to the end. Doing exercises is all well and good, but unless you have a natural interest in the topic in question (which I'd argue most programmers will eventually find) you don't make the same head way. So, when someone on the forums for Blender (blenderartists.org) describes their plans for a large game, unless it's an MMO (which is just too great a task for any programmer, besides an inexperienced one) then the journey is worth its time invested. I started out with the ambition to create an FPS, and I put it on hold, but only after learning a great deal. So this is my first point; Let ambition drive the learning process

Furthermore, it's important to understand that a game is divided into many different "components" that together comprise the experience. There are visuals; audio and game play mechanics, all of which have their own fields devoted to them. As a game designer, when working by one's self it can be a challenge to remain focussed on one of them. Sometimes, you needn't enforce that practice, but ultimately it's a choice most of us make. So, I would ask what interests your son has in the process of creating a game. It's often the process that enthrals us as much as the end result. There are many game engines that don't require any coding (the Blender Game Engine being one of them) but offer it if needs be. These shift the focus to the game assets, and the experience rather than the structure of the game logic (but this is not entirely the case). Conversely, focussing on the programming of the game logic can lead to great skills in mathematics, programming concepts and many other skills, but to the detriment of the assets of the game. It's not necessary to make the choice early on; it simply influences how long the game will take to make.

It's also important to consider the support network behind the path he chooses. Blender's community is its strong point, and on the whole I believe we are supportive in every aspect. But this is definitely the case for other engines, it's just a point to consider. Working with others can really spur your development, and gives the experience a greater sense of value and depth than working by one's self.

I think it is a good idea to create small games at first, which somewhat contradicts my earlier point. This is a different method of learning; an iterative process that best suits those with shorter patience. It's just as effective though, in its own way.

A quick response to the above; I started writing Python inside the Blender Game Engine, now I've branched off to C, C++ and found it a relatively painless (as painless as differing type systems can be) experience. I think it depends on the individual.

Simon Forsman has a very valid argument. Modern day games are the products of large swathes of developers working on all aspects of a game. The best advice to give a new developer is find your own niche, your own style that is within reach. And do this from the start.

I wish the best of luck to your son, as well as yourself! I hope you have a wonderful experience of it; it's added a depth to my thinking and feelings about many different aspects of thinking and knowledge, so I'd consider it time well spent.

My two cents on the topic:

He's young. He's ( probably ) easily distracted. He won't do this just because he decides it ( i.e. out of commitment ), he will do it because it's interesting for him and he likes coding.

This means that he needs motivation to get him through this. He needs to see the results of his work fast, and he needs to get some success now-and-then.

At least, that was my experience. I've started with Game Maker when I was 11, and started scripting at 12. I did it because it was interesting, and I really wanted to create something interactive. And I've got pretty good at GM, so later on I've tried PHP and other webdev stuff, even later C++.

I'd recommend Game Maker, but the key things are: fast feedback and motivation ( which comes mainly from solving problems ). Also, be there for him when he gets stuck. He's 12, so he won't really be into maths, and that's probably where you can help him the most. Otherwise, I'd say, let him explore ideas.

Also, general, simple applications are a NO-NO! Well, that's not exactly true. Let him do what he likes to do. I was interested in games, so I tried to make games. Although he's probably interested in games too, just let him do whatever he's interested in. And try to show him programming methods/ideas through the topic he's interested in. It makes a difference how you explain for example the length of a vector: you can explain to him it with vectors and dry math, or you can explain it to him showing how to check if an enemy is in range or he's too far to see the player. Both need to know how long is a vector, but the second one is probably more useful if he's interested in games.

Also, if he's talented in some kind of art, that's a big plus! I tried to be a one-man army, and had already some talent in drawing. So as time was passing by, I've learnt to draw and make models for my games. I guess he'd do the same. But if he won't, it's not a problem. Maybe he could find a team? I'm not sure how would he find a group of 12-13-14 year olds, but if he can, it'd be great.

Advertisement

My two cents on the topic:
He's young. He's ( probably ) easily distracted. He won't do this just because he decides it ( i.e. out of commitment ), he will do it because it's interesting for him and he likes coding.
This means that he needs motivation to get him through this. He needs to see the results of his work fast, and he needs to get some success now-and-then.

At least, that was my experience. I've started with Game Maker when I was 11, and started scripting at 12. I did it because it was interesting, and I really wanted to create something interactive. And I've got pretty good at GM, so later on I've tried PHP and other webdev stuff, even later C++.

I'd recommend Game Maker, but the key things are: fast feedback and motivation ( which comes mainly from solving problems ). Also, be there for him when he gets stuck. He's 12, so he won't really be into maths, and that's probably where you can help him the most. Otherwise, I'd say, let him explore ideas.




Game Maker is pretty good, it teaches you its own programming language and ways, that mirror some real programming conventions. An alternative on the opposite end of the spectrum is Construct 2 (https://www.scirra.com/), an engine which doesn't require programming (uses an easy events based system) but can produce similar results. Performance is a little worse, though.

When I was a kid, my interest in making games really took off when I got my hands on Graal v1.3. For those of you who don't know, it is a game for Windows that is very similar to The Legend of Zelda: A Link to the Past, and it has a built-in level editor where you can design your own maps, NPC's, items, weapons, quests, etc. It uses a scripting language based on C++, and it allowed for a huge amount of flexibility in what you could create, while retaining gameplay that was very familiar to me. My friends and I had a good time making maps and building a large world together, with all sorts of neat scripted weapons and items.

I always look back with fond memories. The new versions of Graal suck, by the way. They tried to modernize the game and make it like currently popular MMORPGs, and they lost the spirit of the game. The best version was Graal Classic; it was the latest version that still had local multiplayer.

Hi,

First off, congratulations on actually trying to help him (instead of dissuade this idea).

As your son is 12yo, and he'll probably start working (if everything goes well) around 18, he'll have a lot of ground ahead of him.

I say this because some of the technologies we use today to make games actually came to life in the last 6 years, so it is possible that some of them will fade as well, giving room for something even better.

This takes me to my point: don't focus on one specific technology, but on the general knowledge for now.

Some programming basics with Python or other higher level language would be a great starting point. You could take a look on pygame, or even Flash, to create this basics on what's a game, how it works by a bird's eye and then move up to something more complex.

This way he can then decide if he actually want to be a programmer or a game designer or maybe something else; as he probably doesn't understand the difference yet, as I didn't when I started as a kid.

Hi,

First off, congratulations on actually trying to help him (instead of dissuade this idea).

As your son is 12yo, and he'll probably start working (if everything goes well) around 18, he'll have a lot of ground ahead of him.

I say this because some of the technologies we use today to make games actually came to life in the last 6 years, so it is possible that some of them will fade as well, giving room for something even better.

This takes me to my point: don't focus on one specific technology, but on the general knowledge for now.

Some programming basics with Python or other higher level language would be a great starting point. You could take a look on pygame, or even Flash, to create this basics on what's a game, how it works by a bird's eye and then move up to something more complex.

This way he can then decide if he actually want to be a programmer or a game designer or maybe something else; as he probably doesn't understand the difference yet, as I didn't when I started as a kid.

I don't have anything to add, but never do Flash it's a technology that should die, it's a resource hog and has horrible performance even on high-end machines. Hopefully it will be replaced by HTML5.

This topic is closed to new replies.

Advertisement