The first project that I got started on developing is an interesting little game called Darkshark. The character was created by my son, and I ended up writing down every little thing he’s told me about Darkshark and his world to use as the basis of the game.
This isn’t the first time I’ve done something like this with my kiddo, as we previously put together a book full of bedtime stories about the adventures of our dogs in a Hundred Acre Wood type of world and had it printed with illustrations via Amazon CreateSpace. But, this project is markedly more complex by a wide margin.
When I first got started, I was biased towards software that was a bit easier to develop with, like GameMaker Studio. I’d done some work on Unity and with the Unreal Engine doing 3d asset creation, but I found that the whole process was tedious. I’m used to old school level development in the Hammer editor from Valve, and so when I couldn’t design levels using a CAD style interface and realized that things had to be created in Blender, it was a grim moment.
I’d originally wanted to make a game based on the stories my son and I had created, but the 3d workflow was a bit much for me as a hobby. I’ll include a few pictures here just to give you an idea of my progress.
But, as I mentioned, the workflow was just a bit much for me, so I decided to go with 2d development. As my son had come up with Darkshark around this time, it became the focus of my newest project (though I plan to come back to the bedtime-themed game in the future).
I originally started with GameMaker, but decided that Unity was a bit closer to my goals as I started writing code for movement, enemy movement, and attacks/knockback and things like that. It turns out that C# grows on you.
One of the things I hope to do in this space is to work on blogging my work as a hobbyist working on various projects. As a technical writer, I see this blogging as part and parcel of my professional identity, and as a valuable contribution to my future understanding of my past decisions in my hobbies. (I’ll explain).
Currently, I’m knee-deep in working through developing a couple of games for my kids. I’ve always had an interest in games and game design, having done a lot of tinkering growing up with map editors for various games ranging from older Build Engine games to Warcraft II & III, Starcraft, and Day of Defeat: Source. With the advent of Unity, development has become even easier without having to dive into a total conversion (which I’ve attempted with the Source engine while in undergrad).
With that said, developing a game involves a lot of coding, tough decisions, and iteration. One suggestion I’ve run into over and over again for folks learning a new coding language is to blog the work you do on projects in the language. The rationale is that future you will not remember what past you was thinking when a particular piece of code was put in, and so you need to preserve this for posterity.
What I”m planning to do then is to provide blogs based on the work that I’m doing with Unity both on the coding end with C# as well as the asset development end with Asperite and other tools I’ll be using to create content for the games.
Whenever I teach writing for the web (usually Fall of even years), I tell my students that if something takes more than a few minutes for you to figure out and get working, you need to comment that into your code. I figure I should do the same thing and explain my work as I’ve gone through Unity development on these and other projects.
Now, this isn’t to say that all I’ll be blogging is Unity. Far from it. But, I expect a lot of the content will be this type of blogging.