With the launch of Slash Racer today, it’s time to reflect on how the project went. Overall, I learned a lot and am happy with what I accomplished. I feel like this game is much more playable than Shift was, although it’s still simpler than what I hope to produce in the future. So let’s dive into the project’s successes and areas in need of improvement.
As stated on the project page, this was my first game using the Unity engine. As a result, I expected progress to be slow at first. I set out with the following goals in mind:
|✅||Implement the following core mechanics: scrolling, controls, collisions, and scoring.|
|✅||Create a project page on this site.|
|✅||Publish three blog articles.|
|✅||Discover how to build and package Unity projects in an automated fashion.|
|❌||Automate code signing of the release packages in a secure manner.|
In addition to creating the game itself, I set a number of additional goals for this month. These goals were intended to enhance my tools for building and marketing future projects, and refine the habits I’m trying to incorporate into my game development journey. Explicitly stating these goals helped me focus on completing them, and I want to continue to build secondary goals like these into future projects.
Accomplishments and Successes
- Released a game in the specified one month timeframe.
- The game has the intended feature set and additional polish such as help text and title screen.
- The game incorporates art and sound effects, giving it more “juice” than earlier projects.
- Completed my first project using the Unity engine.
- Setup GitHub Actions workflow for building Unity project into packages for each supported platform.
- Learned how to implement common functionality using Unity: render sprites, handle user input, access the game timer, play sounds, create and destroy game objects, move objects using the physics simulation, handle collisions between objects, render UI components, transition between scenes and more
- Practiced using key Unity features, including: the Unity editor itself, game objects and components, behavior scripts, ScriptableObjects, the 2D physics engine, and more
- Began creating a mental model of the benefits of Unity, allowing me to make informed decisions about whether or not to use it on future projects
- Added tutorial content to this site for Unity topics I was exploring
- Created itch.io product page with appropriate featured image and screenshots
- Advertised the development and launch of Slash Racer using my current platforms: this site, Twitter, GitHub, and my personal network
Areas for Improvement
I did not finalize the core gameplay mechanics until very near the end of the month. The game loop is missing “something”, and as a result it is unlikely that most players will complete more than a couple runs. Correcting this in future projects can be accomplished through much more substantial play testing early in the project and really focusing on the fundamental elements of the game’s mechanics.
Usage of Unity
My inexperience with Unity was apparent during development. I struggled with some basic decisions—code organization and how to expose configurable values from scripts, for example. As a result, different parts of the project accomplish the same goal in different ways based on what I decided moment to moment. For now, I will work on this simply through continuing practice with the engine.
While I met the goals for amount of marketing content created, it became apparent that my writing style can be improved greatly. The articles I created are a bit too verbose and—quite frankly—boring. I intend to work on finding a more unique “voice” or style as this site evolves.
I noticed that I don’t really have a clear vision for the content I am creating currently. It is my plan to begin setting specific goals for the articles I write, and decide on a few metrics to capture for each product I publish (be it a game, blog post, etc.).
I am not planning to release any updates to this game. However, I want to complete the following tasks to facilitate carrying forward reusable elements for future projects:
- Create a GitHub project template with a Unity build pipeline
- Extract the ‘Script Library’ assets from the Unity project into a submodule, usable by future games
- It is helpful to list project objectives, including ancillary tasks not directly tied to the game’s development.
- I need to focus more on solid mechanic design and play testing early in a project.
- Writing is hard. As a result, I need to practice more and find some resources on being more engaging.
- In honor of the new year, I plan to spend some more time setting goals for this site and future projects before diving into the next project.