One of my best friends’ youngest son wants to get into game development. I wanted to get some professional programmers’ opinions on what language would be a good starter for a 10 year old child. He wants to start out doing things in Minecraft and Roblox, but I’m not terribly familiar with either of them (know of, never played nor want to). I’ve found that Roblox uses a derivative of Lua, but how far does it deviate? I did see the post where Scratch was suggested, so I’ll look into that as a tertiary engine.
The goal would be for me to learn the language myself and then help him with understanding terminology and walking him through the basics.
Lua is a widely used scripting langugage in game development. For example, Factorio uses it as a modding language, and Roblox uses a modification of it as you mentioned. The “derivarive” of Lua is probably just a library that builds it into the core of the platform such that you have some Roblox specific functionality when using Lua with the Roblox game engine. Though, I don’t know this for sure. Lua, like Python, is an extremely high-level langugage with easy syntax to learn. It doesn’t have as large of a community, however, so the resources are more limited in that regard. Unlike Python, which some may find as a plus, it doesn’t use whitespace as syntax, instead opting for a statement like end to close out loops and/or if statements.
Honestly, I am by no means a professional, yet, so take my statements for what they’re worth. And I am far more familiar with Python than I am with Lua to be honest. I’ve never made anything with Lua, but I considered it for Factorio modding. Lua stikes me as similar to Bash, syntactically, as well - another scripting language that I have never used (aside from the Linux commandline).
I can parse Lua for quick fixing of certain functions in Elder Scrolls Online addons, but haven’t sat down to fully learn it yet. I’m fairly familiar with Python, like you. I learned basics of most of the popular languages but have never put them to any use as someone has usually already made something open source that’s sufficient for my needs, but I’d be able to tweak it for personal use depending on the language. I know enough to get by. lol
If they want to develop directly for the games, going to the respective game development wikis might keep them more engaged. Otherwise if you want them to learn general programming, python will open more doors.
If they want to build for roblox, going through the creation wiki might be a more direct route
There’s editions: java and bedrock. Pick the version they play and want to mod. I believe the java edition has more community mods.
This guide for java mods would be a good start https://docs.minecraftforge.net/en/latest/gettingstarted/#
He wants to make games in Roblox to start out with, but he was also telling me his school uses Minecraft Education and how his friends were inputting strings of code to change the properties of weapons.
Depending on what he wants to do.
LUA was fun for me with Mining-Turtles in some Minecraft Modpack back in the day. Never used it outside of getting small robots to do mining and resource processing though.
Scratch - Yes, having the cat move left and right at the push of a button may seem dumb, but control-flow is important to learn early
Processing - A good way to get stuff going, and it is similar enough to Arduino-sketches and C++ so the transition to “non-prototyping”-languages isn’t too much of a brickwall learning curve.
Python - I hate it, but it has its place, I think.
I was looking into Scratch yesterday and it definitely looks like a fun way for kids to learn. I’ll definitely be getting him into that.
I’ll look into Processing. C++ is fairly easy and I was planning on getting him into that, too.
His mom is planning on getting him his own computer for Christmas, so I have plenty of time to get acquainted with what I don’t know yet and re-familiarized with C++ and Python. Even if he decides not to go down the developing route later on, I still learn something. Win/win.
So it depends. If you want to develop game engines… C/C++/C#
If you want to develop games above that… Java/lua/python
High level languages cater to the people who just want to write since they essentially remove all the difficulty for the human shifting it onto the engines developer
Writing engines IMHO is much cooler and much more needed. Everyone wants to be a game developer but if you can write better engines for those developers… Youll be in business a long time but also its MUCH more difficult. C/C++/C# dont hold your hand like java/lua/python. Would be time to take the training wheels off so to speak. Good languages to learn regardless since they have the widest application
The cheat sheets will help early on, but take some time to show him the process of reading developer documentation, stack overflow questions, and using chatgpt explain the logic of code sample blocks (rather than copy paste code, which I am guilty of).
Showing him good information retrieval practices and how to ask for help will be especially beneficial as the saying goes
Give a Man a Fish, and You Feed Him for a Day. Teach a Man To Fish, and You Feed Him for a Lifetime
@progressEdd Oh, I intend to. There’s a lot of computer basics in general that I’ll need to go over with him, too.
I was actually going to share it. It’ll be a while, because I’m sure I’ll be doing some editing once I sit down with him to make sure I made it understandable. He’s a smart kid, but everyone has their different way of associating things.