With the game playable and end-to-end complete, inclusive of visual effects and sounds effects, I could happily call it done. Unity allowed me to easily build a WebGL version for running in a web browser. This was an ideal way to get the game out seeing as it was fairly lightweight, with the uncompressed output files weighing in at only 11.8MB. Those files need to be delivered by a web server in order to run in a web browser. This can be a local web server, simply a bit of software running on a home machine, and I quickly found options to do just that with good old Python in the terminal. Boom, up and running in a browser, Unity free, would ya look at that. I approached this last hurdle prepared for some big issues, peeking out from behind my fingers, waiting for the monsters to jump out any moment, but they were nowhere to be seen. A few little build tweaks were necessary to get things just right, but no major headaches by a long shot. Unity certainly scores top points for ease of use in my books so far.
Furthermore, Unity also has its own hosting website called "Unity Play", where anyone can register and freely upload their game for others to enjoy. This too was super simple, almost suspiciously so, like the tech gods were tipping the scales of karma too far, which can only mean some hideous debt must be paid at some point. But then again, maybe that was balance being restored following the trudge through the coding no-mans land of micro-issues throughout development. Yeah, let's look at it that way. We're all squared up now, no hard feelings.
After getting it online and seeing it running live, completely free of my own system except for the web browser, I could finally breathe a sigh of relief. Done! Ahhh, done, done, done. Awesome, onwards and upwards, what's next on the bucket list? Oh hang on, what's this? Ah. Huh. Hmm. Some messages from a couple of friends who checked it out straight away, aaaaand they found a couple of issues. Of course they did.
During development I knew the game inside and out and exactly how to go about each level. With this special creator's insight, I always either did or didn't do certain things when I was testing. Despite knowing all the cards, that actually sets up a certain bias as to how you imagine things working, and what you anticipate other people doing. Other people are completely free of that bias, and so end up exploring a bit more of the unknown, because to them everything is unknown, so they push in all directions. Even though it's not great news to get such feedback after thinking that all the angles were covered, I realised that it is really just an essential part of the process, and I was extremely grateful for these early comments from people who took the time to check the game out. It let me revisit the project with fresh eyes, and really tighten it up. So, a bit more work to do, but the game ended up much better for it in a few key areas.
At the time of writing, nearly two months after putting the latest version of little old "qb" out there, it has just over 100 views and just over 10 plays (I'm including numbers from an initial version that I later replaced, which reset the count). If you want to join the ranks of those elite few, please check out the game at the link below. Okay, we're not hitting the charts anytime soon, but that was never the goal. It's good to just have projects like this living and breathing out there and visible in the wild, I think, for proof-of-principle as well as a sense of completion, and, of course, a little bit of self marketing. Why paint a picture if no-one's going to see it? Why write a story if no-one's going to read it? Even if no-one does come along to see your work, at least allow for the possibility that they might. You never know, you may just put a smile on their face, if only for a little while.
This retrospective series of articles on developing my first game in Unity is, in some ways, the actual conclusion to the project for me. As a scientist, you always have to write up yours experiments, right? It was mostly for my own learning benefit, and it was good to go back and remind myself of the journey and remember what was accomplished along the way. There are a number of things I've not discussed, but hopefully this series gives a sense of a beginner's journey with game development, which may be helpful to someone else in the future.
For time reference, from starting out fresh with the "Create With Code" course to getting the game up and running in its final state on "Unity Play", that all took about four months, three of which was just this project. That time wasn't taken up with packed 9-to-5 days or longer hard at work at the digital grindstone, mind you. I was taking it at my own pace and enjoying the ride. Plus I took a couple of unrelated expeditions with some other things on the to-do list, and so the game was sat idling for some time. And of course not all work ends up in the final project, and certain things are difficult to account for time-wise, sometimes with little or nothing to show for all the effort. But there you go, that's software development.
I can only imagine the scenario in a proper game studio, but I am absolutely sure that there is more hard work that goes into making games than many players fully realise, especially if they've not tried making something digital themselves. To have a vision of something fun, entertaining, interesting and artful, to get a dedicated team around that and bring it to reality, fighting all manner of demons along the way, is no small feat. Having tools such as Unity to handle many of what are now regarded as the basics certainly helps with the heavy lifting. But lifting still needs to be done, and a lot of it too. Regardless of how my own path with game dev goes from this point, every game I play from now on will be seen in a new light, and with a higher appreciation of this craft.
Full play-through video:
Check it out for yourself here:
- Design & Code -
- Shader & Materials -
- Visual Effects -
- Sound Effects -
- Music -
Thanks to the Unity "Create With Code" team for helping to kick-start this project
Design & Code © 2020 Darren Temple
All other assets are the property of their respective creators, and are used with thanks