Transition to video game programming

My daughter created this short story narrative for her writing class and is getting bored with the challenges she currently has. She's expressed an interest in video game programming and my understanding is that C# and C++ are the preferred languages. Does anyone here also do this as well? I ask because I'm self taught in my programming skills knowing mainly PLC's and Arduino. Should I side step to try this with her, I'd like to know if there's any recommendations on approaches, starting ideas, etc. I know of Unreal engine and it's capabilities, but I don't know what I don't know.

Math and an open mind. See the coding adventures in this guy's youtube channel.

How old is she and what target platform is she looking at to run the games? You don’t code the same way for a phone or tablet as you would on a PC or Mac.

I prefer to stick to the native tools of the vendors but you can develop games in many languages. If she is just starting, pick a language she might study later in school like Python and make sure she spends time on the fundamentals of programming to build a sound base.

When you go more pro, you’ll find game engines. The Unity engine and the Unreal Engine are currently likely the two most popular choices for game developers. It’s not for pure beginners though.

12 and on windows most likely. No real target defined yet though. Just a general interest on her part.

I would recommend using a Raspberry Pi for this. It has lots of memory and a built in video generator. You can program it in C, C++ or Python.

The python has a framework called PyGame you can use for easy manipulation, of graphics and sound as well as lots of other things.

I have written lots of stuff with it and not just games either. One of my favourites is this imitation of a cardboard cut out theater controlled by an iPad running Touch OSC. This controlled the characters movement backdrops. Here is my live attempt in showing the story of Little Red Riding-hood.

Woops sorry, This was actually written in the Java like language Processing.

This is one made with PyGame. You use a collection of four tilt switches it tilt a virtual board. The object to to first land on a present and then go down the chimney. Everything move with the tilt of the board except rain-dears. When things slide they do so until blocked by an other character.

becoming good at this is not a sprint, it’s a life long marathon in an ever changing world. So building a passion for that space and developing her intellectual curiosity (how does this work, why is it done that way, could it be done differently, what if I were to change that,…) is a key part of the process

She needs to understand that getting good at it is a commitment and hard work but that can be very fun and it’s rewarding to see the results.

If she has no background in programming I would guide her into learning the basics of algorithmics and understanding coding.

Not everyone is the same learner and so you need to understand if she has the patience of going through the theory and basics of text based programming for a few months whilst doing mini codes with possibly text UI or if that will get her bored and make her drop the idea of learning how to code.

That path is hard (low reward at first) but pays back significantly later as you have built a very strong knowledge base in which you anchor your thoughts.

If she likes theory, abstractions, analyzing and understanding things inside out before doing something then that might be a great path. I would say any leading language is a good pick to learn the theory. Interpreted languages like Python makes it easy to focus on code rather than the compiling tool chain although there are good IDEs out there hiding the process.

If she is more the « I want to see immediate results now » and has low patience then that’s not the right path. She seems to have a good drawing skill so combining her own drawings and basic sprite animation could already lead to fun development with a story telling along the way. That’s developing the creative mind as well as basic algorithmic skills (succession of commands,, decision making, loops etc).

There are graphical programming tools ( Scratch is probably the leading one) which make it easy to piece together something and inject your own drawings into it. Personally I’m not a huge fan of those (because I’m more a theory first type) as you don’t really see the code and so don’t acquire skills for one language as you go but it delivers quick results so it’s rewarding and you build up skills slowly. The goal is build up skills whilst keeping motivation intact as it’s easy to loose interest.

There is a risk to get stuck at that level so at some point (a year from now) you need to guide her to learning a text based programming language.

Because of the motivation built developing small games or animations or books, kids are more likely to be willing to spend the time at that point because of the idea of being able to do much more later and having hit a glass ceiling with what they can do in Scratch. Python is often a next step after scratch because of the richness of the libraries but again depending on motivation that’s where you can go to C# or C++ or other languages closer to your platform of choice.

Also one important point - don’t let her isolate herself. Coding can suck the air out of everything else and at that age you want her to stay open to the world and build social skills too. Ideally if she could have friends willing to learn and embark in the same journey or if you have a coding club nearby then consider for her to join.

Dude, that's awesome. Thanks!

Nice. I ran a MC server for my daughter and her friends. Tried getting some family that played to DNS into my network but it just didn't work that well. It's actually a really good option with the command blocks and red stone networks for higher learning.

Agreed. Like I said, she's only 12 and was talking about which university to go to. I told her to chill and that university isn't even necessary or appropriate in every situation. My stance, and currently her mom supports me, is that she'll do community college gen eds first and then we'll go from there. She was kind of shocked to hear that but also sort of happy to hear it too. My plan is to start on something I know and help her build from that. Blink sketch, wire up some LED's, etc. Try to make it interesting using fastled to light up her room, etc. Depending on how she handles that will determine the next step most likely.

That's the key indeed.

I have mixed feelings about the block design to programming which is weird because I mainly program PLC's. Lol. My last real experience in that realm was Lego Mindstorms which had a terrible IDE at the time so it may just be that. How to attach IO interface I think was the main issue.

That's awesome. Mine's a bit harder to motivate. I'm going to make her teach me Blender this summer so her brain doesn't get too soft.