Unicorny Jump!, an Introduction

The second game that I’m working on (I find having two with different genres helps) is Unicorny Jump!, a game for my daughter. She’s just getting into playing games and so I wanted something fairly simple to get her going. The basic gameplay is jumping to get different collectibles on the screen. Over time, I’m iterating on that gameplay to make things more complex.

As a rhetorician and technical writer, I’m a big fan of having structures and architecture in documents, as well as games, that teach you how things should work and operate. You can find any number of breakdowns of the original Super Mario Bros. that show just how this can work in the video game world just like it does in document design with a table of contents, headers, sub-headers, and fonts/colors themed for different distinct purposes. With this game I’m attempting that by slowly ramping up the complexity by introducing new elements one at a time before using them to increase difficulty.

A screenshot of development of a pixel art game in Unity Engine.
A shot of the early development of Unicorny Jump!

With a basic set of assets created, I’ve been iterating on different level designs, different powerups that have different impacts on the player, and eventually different types of levels with gameplay themed to the art. Right now, I’m moving past a simple game with apples and a super-speed apples to include ice-themed levels with a fire attack to melt frozen apples.

The goal is to have simple additions that don’t clog up the main interface with a fireball button appearing next to the jump button when you get a certain item like a hot pepper. I’m working through getting the first ice level built now as you can see in this short clip:

My current challenge for the game is to get the code designed for shooting out the fireballs from the unicorn. Once that’s done, I’ll be ready to get the rest of the level going. (I’m told a jet pack needs to be next on my list).

Enter Darkshark

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.

Picture of various 3d models of tombstones and other items
The props for the game
A screenshot of a haunted house's basic layout in UE4
A look at a haunted house
A screenshot of a first person game in UE4
A picture of the default view of the game

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.

A screenshot from Aseprite showing three frames of a 2d character's movement
A shot of early attempts at coloring and animating Darkshark

Hobby Blogging as a Rhetorician

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.