So after two longish weeks I've made it to the end of my first game jam, and I'm pretty happy with my progress. I have a playable - if not complete - game that's only slightly deviated from what I set out to make, and though it could have been more I realize that it's only my first jam, and I'm happy with what I have.
So - without further ado - here's what I did good at, what I didn't do good at, and what I've learned from my first game jam.
What went well
I was basing Format.execute() on an isometric action game concept inspired on the works of Supergiant Games that I had made in college; I sought to improve on that design and take it to another level of polish and complexity. The first thing that sticks out to me is how much I've improved as a programmer since then, which was about two years ago. I was able to make many improvements over that first version, such as finally figuring out how to make the player rotate to face the mouse and incorporating parent classes to make my code neater and more elegant. I also explored new ways of programming UI, designing a health bar that wasn't just an appropriated slider and creating a system of icons for the player's abilities that displayed 1) which ability was selected and 2) how long cooldowns were.
What didn't go well
The first thing that went wrong was I didn't put nearly as much effort into the design stage of the project as I did the rest of it. I know that very often things change after the design stage due to constraints, but I feel that some of the changes I had to make - which I'll get to in a moment - could have been avoided had I been more thorough drawing up the concept. I realized, once I got under way programming, that I was writing code for a game that I had no idea how 1) it looked or 2) it played, and it was so far into development that I had no choice but to continue.
I also spent probably more time on the code than I needed to. I had to scrap my original concept because I realized I simply didn't have enough time to find the art assets that would work the idea I had going in, so I changed the theme to what would become Format.execute(). While I do think the game did come out looking well enough, it should not have come out looking this way. This also ties back into not taking the design stage seriously and winding up with no idea what kind of game I was making.
What I've learned
I've learned that I need to have a concrete design process before I launch into any project. Among others, I need to know
- what type of space the game exists in
- a visualization of the general aesthetic; for this I need to do some primitive sketching or look at images of games I want to get inspiration from
- write down EXACTLY how I want the game to play
- think of the type of emotions/thoughts I want the player to feel/think, and how I can make the game evoke those thoughts
For UI development, this was the one part of the game I did sketch out, and I thought it came out looking pretty nice if not completely polished. Everything was laid out nice and simple, and it seems to be easy to keep track of both the player's condition and the status of the enemies they're fighting. I also got to learn about anchoring in Unity, which is something I'll definitely be taking into future games.
For coding lessons, this was the first time I had seriously incorporated parent classes into one of my games, and now that I've done it I wish I'd done it sooner. I incorporated it into health systems, basing the enemy and player health scripts off a base health script, and it worked out very well in greatly simplifying that aspect of programming the game.
This game jam has been a fantastic learning experience, and I'll definitely be participating in other jams in the future. I've come away with many successes and failures, but even more importantly I come away having learned something, which means all the more to me. Many thanks to everyone who organized and participated in this jam, and I hope to see you all around soon.