After several months of being able to casually show up to our meetups and simply consume a whole day’s worth of activities, it was once again my turn to do the organising and production.
The last time it was my turn I organised a day’s worth of Akka programming in Kotlin, which, I’ll admit, was really annoying to do. Akka isn’t the easiest paradigm for a Java (Spring) web programmer to slip into, let alone doing it all in a language that isn’t my strongest, namely Kotlin. The docs were…. not the most intuitive to understand. Try getting through this code example https://doc.akka.io/docs/akka/2.5.25/typed/actor-discovery.html while maintaining your sanity and some kind of grip of the word “ping”.
But this month was looking better, a lot better, this month I would get to (at least to a very small degree) fulfil a childhood dream. I would get to work on video game programming, specifically the Unity platform.
I was full of energy and motivated to create a full day’s program to introduce a bunch of web programmers to the realm of video game development. The only problem, I quickly found out, was that the people from the Unity community had already beaten me to it.
The “Learn” platform of unity https://learn.unity.com/ is quite simply fabulous. And (for a huge part) free.
There are numerous tutorials covering many subjects. Some of these tutorials have been stitched together to form logical paths of progression, “Pathways”, which you can follow. The whole thing is gamified to include XP points, small amounts for small easy stuff and big XP rewards for larger tougher challenges. It then starts to feel like playing a game as you learn new skills to make games. On top of that, the internet is also full of youtube videos and blogs describing techniques and methodologies for getting to grips with this very versatile platform (that can do a lot more than just games).
In my opinion, the best way to get a taste of what Unity has to offer is to follow the tutorials in the “Microgames” of Unity. A Micrograme is a small example Unity project that is coupled with a built-in tutorial that progressively highlights different tools and walks you through their use.
We started with the Lego microgame coupled with this podcast-tutorial type video explaining some basic controls for navigating virtual 3d space https://learn.unity.com/tutorial/session-1-unity-essentials-july-19
Over the course of the day we split off from each other, whilst still in the same Microsoft Teams call, to explore and experiment. Some of us built the foundations of a 2D RPG style game from scratch, some got into the mechanics of racing games and I got my hands dirty debugging the (C#) code of an FPS game’s AI so I could figure out why my enemy hover-bots weren’t correctly following the patrol path I had laid out for them.
In the name of full disclosure, the platform did have some small drawbacks. It could be quite buggy. Most of the time it was possible to work around them but one colleague of mine lost nearly a full day’s work after his Unity IDE crashed (despite having saved the scene CMD+S). I also struggled to run QHD resolution on my 3-year-old web programming MacBook which was the only option in the built-in tutorials.
All in all, these were forgivable hiccups that I suspect you get to know and learn to avoid when you have more than a few hours worth of experience. At the end of a great day, I was left with an admiration for a remarkable piece of software and, somewhat ashamedly, a small amount of bitter jealously for the youth-of-today that have these fun, free and accessible ways to learn to program and make the games of their dreams.