My very first experience with game creation was more than 20 years ago, using the game mod software that was available for Team Fortress, which my brother used to play. That was running on a pretty standard home computer for the time, a typical grey tower PC with one of those solid clicky power buttons that made a sound in both directions as you pressed, "ch-chonk", and a similarly chunky CRT taking up most of the desk space. I remember the cycle of making some adjustments and then waiting ages for it to compile into a usable level, then noticing all the things that needed to be changed and going back around the cycle. Adjust. Compile. Wait. Keeping waiting. Wait a bit more ... and ... test. Oh, there's another issue. And away we go again. Not to mention that trying to find answers to any issues on the fledgling dial-up internet was a real chore.
The process was slow to say the least. Plus it was a shared family computer, back before everyone and their dog had their own, residing in the cubby space beneath the stairs, by the ground floor hallway where everyone would pass by. Not exactly a good working spot. It was a school summer holiday, hot and sticky, and sitting in a chair in front of the computer wasn't exactly comfortable either. Needless to say, I didn't get very far with the whole endeavour. But the memory of creating, of world-building, of interacting with the computer in a different way to a user for the first time, stays with me.
Fast forward to the present, and a lot has changed, both in my immediate world and the wider world. I have a bit of coding experience under my belt, a much underfed creative side, an ageing but still fairly able laptop, and a bit of time on my hands to learn some new skills. Well, it is the age of the coronavirus after all. There are numerous resources available just a click away, often pretty decent too. Time, at last, to try my hand at game creation again. Actually, I tell a small lie. I did have a dabble a couple of years ago with a Udemy course for the Unreal engine. It's a very popular course, but, for me, was a bit of a disjointed experience that seemed to be hacked together on the fly, and ultimately didn't leave me with the skills to fire up the engine and a code editor and get on with developing my own ideas. I had other things to focus on too, so again, I didn't get very far.
Come July 2020 and the kick-off for a new round of an official course in Unity, the big competitor to Unreal. The course, called "Create With Code", ran for a couple of months with two live sessions per week punctuating recorded tutorials, and, importantly, with structured challenges that built up concepts from scratch, covering a consolidated little curriculum. It was also designed with complete beginners in mind, absolutely no prior coding experience necessary. Unity games are programmed in C#, and although I'd not used that language before, I did have some prior experience with C, which is somewhat similar, at least compared to languages like Python that I'd otherwise had my head in for a few years. So even though the course is good for complete beginners, with some existing understanding of code the process was that much smoother.
Unity installation was a breeze, especially with hand-holding guidance in the course to assure you about engine versions and how best to handle them. And to skip ahead to the end of the process, I later found that compiling work into a usable product is equally simple. I was fully prepared for a day of pain in herding the code out the door and into a real active game, but not so. It was straightforward to the point where I was suspicious if it had even worked at all until I fired it up and had it running live. All in all, I'm happily sold with the Unity experience so far. Great learning materials, setup, and end-to-end user experience. Perhaps I would've had a similar experience with a different Unreal course, but the fates didn't choose that path for me. There's a lot of chatter about the best engine to use for game creation, especially for beginners, but I think it's perhaps less important to focus on the engine itself than the learning materials. Without guidance in that area, that is partly down to luck as well as self guided research, so another beginner may well have a much better start with Unreal than they do with Unity, opposite to me.
After completing the "Create With Code" course I got on with applying the lessons learnt to my own project, cooked up from scratch. I had an initial basic game in mind, not overly ambitious, but I still wanted it to be interesting enough for both myself as the developer and also, of course, for anyone who played it. I didn't want to lock things down too much, and instead of keeping to a strict game design document I just let myself play around with it for a while until things started to take shape, then I reiterated and allowed it to evolve until I was happy I'd got the basic mechanics down, which involved a player, an accomplice, and an enemy, as well as a power-up that gave the player a projectile ability which stunned the enemy. Following that came level design, which was a rite of passage in and of itself. Finally there were some considerations about style, and extra touches like sound and visual effects, although it may not look like there's been much effort on that front at all, but that was in fact part of the effort, namely to keep the aesthetic fairly clean and simple. The end result is "qb" (pronounced "cube"), which is currently live as a WebGL game on Unity's own servers, and can be found here, with the main code files being available on my GitHub account here. With the game completed, I wanted to reflect a bit on the process and some behind-the-scenes details of making something like this. To the untrained eye, the game indeed looks super simple, and compared to proper games from proper studios, of course it is just that. But there's still a lot that has to tick along in harmony to get even this simple little game working just so, and the experience has given me a much greater appreciation for the craft of making games. This series of articles covers my journey into this world so far.