Ninja Caves
Earlier this month I completed a personal coding challenge, dedicating thirty minutes a day for thirty days.
I built a platformer game for my son (five years old), inspired by Crystal Caves, using GameMaker Studio 2.
I documented the process across a few blog posts and daily videos, as well as published my code on GitHub (links below).
- 30 Days of Code
- 30 Days of Code - Update
- 30 Days of Code - MVP
- masonPlatformer - Code
- 30 Days of Code - YouTube Playlist
One of the goals of the challenge was to reignite my passion for writing code, which has taken a backseat throughout the pandemic due to family/work commitments.
As a result, I am pleased to report that following the thirty days, I have continued to develop the game, polishing some of the rough edges and adding new features. I am not coding with the same frequency or intensity, but still making steady progress and enjoying the process.
The video below includes a brief walkthrough of the first level, which includes the new “ninja theme”, as requested by my son.
As highlighted in the video, the following new features have been added.
- Updated player and enemy sprites.
- Updated tile set.
- Updated enemies, including different behaviours.
- Updated weapons, including bullets.
- Updated objects, including coins, hearts, signs, etc.
- Updated on-screen display, including health, equipment, score, etc.
- Updated animations, covering player, enemy, explosions, etc.
- Improved controller input.
- Implemented player health, including health bar.
- Implemented sound, including music and effects.
My son has been an avid tester, providing plenty of feedback and ideas. The video below including a few highlights of him playing through the first level, testing the core game mechanics.
The game is currently running on macOS, using the 8BitDo N30pro controller. The controller works well (especially for players with small hands), but the Bluetooth range is limited, hence the cable.
My son has also been eager to contribute, specifically the creation of new levels, features etc. The picture below is a design he created for a cave level, where the floor is lava.
He has also suggested we include a shield (to block enemy ninja stars) and a glider to help the player navigate across the level.
Overall, I have been inspired by the process and therefore have decided to continue developing the game until it reaches a natural conclusion (or my son become bored).
Assuming the game maintains a reasonable level of quality, I will look to publish, likely targetting PC, macOS, Linux and AppleTV (controller support needed). I will also publish periodic development blogs and videos, tracking the progress.