My KW MoLoGa Jam 2021 Experience


Why

I've been tinkering with Unity for quite a while now in fits and starts, but haven't managed to put together a "completed work". The last time I made a game from start to finish was probably in my grade 11 or 12 computer programming class. I remember making things like that was a lot of fun. We did Pong and Frogger clones, there were things that had some simplistic AI, and some proto-procedurally generated levels.

I was not out to write the perfect game. I have a tonne of game ideas, and some of them are so good I want them to be perfect. Which kind of means I'll never finish them. Whether or not I'm able to do so, I definitely want some experience under my belt before getting started.

When Dan brought the jam to my attention, it seemed like a perfect opportunity. A nice closed time-frame to commit to, along with a theme that was outside my control gave me both motivation to complete something and a reduced investment in what I created. Which isn't to say I'm not invested. It's just not my dream game.

Goals

I had a few learning goals in mind going in: I wanted to have some basic procedural level generation, saving some data, menu screens and game overlays, and something that had a sense of progression but wasn't too hefty in terms of game play or implementation complexity. I had some assets I've picked up over the past year or so, so I wasn't going to focus on art.

Learnings

The only experience I've had to date with C# has been various Unity tutorials, so this was my first time doing something self-directed. I've got some ancient experience writing C and C++, but lately my primary language has been Python. Not knowing anything about patterns and lacking experience and review in the language I was prepared to make a bit of a mess with the code. And I did :D. 

I started using enums about halfway through, and that made me feel a lot better about some of the code I was churning out. Still there's a lot of hard-coding and awkward management of things in there. One thing I would do if I were planning to work longer-term on this is extract the room generation into an editing tool.

Some of my perfectionist anxieties about starting my dream games lie around project organization. But one of the things I did a lot of in this project is re-organizing assets as I went. Unity seems to be really forgiving about this. Just move it around and Unity relinks it.

Resizing text smoothly (the "zoom effect" on the level transitions) apparently requires a very different approach than the one I took. This ended up chunkier than I wanted, but when I found the fix it was too far out of scope. Apparently 3D text objects resize much more cleanly than the 2D overlay components.

The input manager has a reputation for being clunky, but I decided to use it rather than add another complication to my project learning another new thing. Looking forward to learning the new way though: setting things up to work with the controller for Linux was a big pain. Adding Mac support into the mix would have made it even worse if I even had access to one for developing.

Watching others create their own art (one hand-drawn and one with simple Unity prefabs) gave me a hankerin' for getting out my old artistic skills. I did a minimal amount of editing existing assets with the GIMP on this one to keep it simple - the mold is a blurry version of a texture I found; the gloves and the mop are combinations of existing assets from the Character pack.

Final Thoughts

My impression of C# is that it feels a lot like VB, but more powerful. From here I intend go through some more basic Unity tutorials to see what gems I can pick out and patterns/good habits to add to the coding repertoire. I'm also thinking I'm going to pick up Aseprite and a sketchpad and practice up on some of my long-forgotten art skills.

Get A Fixer Upper

Leave a comment

Log in with itch.io to leave a comment.