Unity or Unreal to Teach Programming

Started by
4 comments, last by frob 2 months ago

I'm a professional software dev and am teaching my daughter to code. I've taught her some Javascript and she understands the basic concepts of datatypes, functions, and object oriented programming.

Now she wants to to build a game! I've narrowed the choice of game engine down to either Unity or Unreal since both have big community support and lots of online resources like tutorials. She's a great self-learner so the latter is important.

I'm starting to look at video tutorials online and I'm seeing lots of Unity Visual Scripting and Unreal Blueprints. Both are touted as a great way to build game logic... "without having to write code!" The thing is, that would defeat the purpose of our daddy-daughter code-jam sessions because I'd like to teach her how write code as we build a game together.

Would building a game with one of these two engines be a good way teach programming in C# or C++ (I'm pretty language-agnostic at this point)? I find the heavy use of the visual scripting stuff in online tutorials concerning since I'd like to focus on teaching to build logic in raw code.

Advertisement

Of the two choices, you are probably better with Unity as it uses C# and is more forgiving. Unreal exposes much more so it is powerful but bad for learning, and uses C++ that demands more background knowledge and skill. Like you wrote, blueprint-only projects probably won't teach what you want.

Neither will teach good programming practices, but it will expose the kid to real world systems. Unreal has far more cruft in that regard, lots of macro magic and tools that do work behind your back. Unity has a lot of historical baggage, but it is less obvious to beginners than the macros. It is possible to write well architected code in either, but few tutorials and beginner guides will follow it.

Another issue Is the complexity of the engines. They offer many controls necessary for experts but confusing to beginners. The settings, options, and configuration can be more trouble than a beginner can deal with.

It can also be tempting to start with a pre-built project and then stay only in designer mindset, not ever getting into code. “Look at all the boxes, rocks and trees I placed” probably isn't the goal. It can feel good, and for a level designer is a good skill to start with but is not the programming you wrote about.

You might be better served with PyGame, any of the JavaScript tool sets, or Game Maker Studio that has its own language but easier, safer learning curve. Baptism by fire can work well, if they can tolerate the heat, but that initial blast is generally overwhelming.

UnalteredPlatypus said:
I find the heavy use of the visual scripting stuff in online tutorials concerning since I'd like to focus on teaching to build logic in raw code.

Visual scripting is optional with either engine.

Not knowing them well myself, from what i hear Unity is more recommended for beginners than Unreal.

I've tried the same with my son. I have used the SFML library, which is not an engine but implements gfx features like sprites and tiled backgrounds, sound and network, etc. I made a simple action game in one file using C, but C++ works as well ofc.

It would have been very educational and the library is convenient to use. He was just was not very interested.
But that's surely a good option too, in case engine complexity gets in the way. Another such game application framework is rayLib. I guess they all have communities in form of forums.

Thanks to everyone for the feedback! I've been playing around with Unity and we might try building a simple game and see how that goes.

I'm wondering, is anyone aware of resources teaching development with either engine with emphasis on writing raw code while minimizing the use of the visual scripting?

Just use the same you were planning to use, like the official Unity tutorials. While Unity has some of it around state machines, animation, and similar, the majority of the work will be in code or the level editing rather than “visual scripting”.

This topic is closed to new replies.

Advertisement