Learning the Unity Game Engine
Game design is something I’ve toyed around with since I started programming. Actually, that’s why I started learning to program. In middle school, I bought “Computer Programming in BASIC the Easy Way” from my local library and eventually made a Super Mario CYOA-style game. It was a mess of spaghetti-code, filled with go-tos. Then again, the book was published in 1989.
In high school, I took an elective course titled simply Computer Programming. In between assignments, I was instructed to work on a project of my choosing. After doing some more reading online, gathering resources, and reaching out to a couple friends for artwork and music, we came up with our first game that consisted of more than text and buttons: Generic Space Shooter. It was, as you could guess, a Galaga clone. It was developed in VB6 and still to this day I have the busted 3.5” floppy disk that contains it’s binary and source code.
Fast-forward to a couple weeks ago, when a friend of mine and I half-jokingly discussed finally creating a game, like we always said we wanted to. We dabbled a bit in Microsoft’s XNA in the past, and he let me know that the Xbox One has moved to Unity instead. It was a bit intimidating at first, at least compared to XNA’s simplicity, but after a couple weeks of working with it I’m quite impressed.
Unity’s biggest draw for me was how portable it is. Out of the box, you can target desktop (Windows, Mac and Linux), mobile (iOS, Android, Windows Phone 8 and Blackberry) and even Web using the Unity Web Player. If you have an Xbox ID account, a Sony development account or are registered with Nintendo as a Wii-U developer, you can also target all current-gen consoles (Xbox One, PS4 and Wii-U) when building your project.The physics engine, lighting technology, built-in AI engine (if you so choose to use it) and a whole mess of other exciting features. What amazed me most, however, is how easy it is to target builds for the Oculus Rift for VR-based games.
There’s still a lot to learn, but in just a couple hours of work, I was able to recreate Pong, admittedly following along with a great video tutorial. I’ve already uploaded this game and have made it playable over in the games section. Is it perfect? Of course not, but it was a great project to learn.
To bring things full circle, however, I am recreating my first full-fledged game, Generic Space Shooter, in the Unity Engine. It will be a 2D-perspective of a 3D world. I’m also trying to rescue some of the assets from the original version such as the music to include with the game. Most of all, though, it will be a great learning experience. Just over these past couple weeks, I’ve learned enough to create 95% of this game with no other reference.
Simultaneously, however, I have also been watching this great series on YouTube of the development of a First-Person Shooter, created from scratch in Unity. This already has me thinking of future projects, things to learn and just all of the possibilities of Unity.
In the future I’d like to start a series of technical blog posts to detail especially interesting things I’ve learned or issues I’ve hit while learning Unity. I’ve been keeping specific notes of things to cover, but in the mean time, it’s been such a blast to learn. As a bonus, I’ll be putting development builds of Generic Space Shooter over in the the Games section as well. It’s not much to look at yet, but feel free to keep an eye on it as development progresses.
Let me know what you think of this article on twitter @brianmmcclain or leave a comment below!