Inspiration
Rose Hack 2021 would not be what it is today without roses or hacking. Three hours into brainstorming, I suddenly had the idea of making a game inspired by Rose Hack itself. This is the origin of ROSE || HACK.
What it does
You are the Rose Warrior, and it is your job to protect the colossal Great Rose when it blooms. You have the power to plant a giant ROSE and control where it goes, and it grows taller as you reach higher. But you can only bloom one giant ROSE at a time, so you'll have to HACK the petals of your current ROSE with a beam attack in order to plant a new one - it is a necessary sacrifice. A line of dots shows you where you're currently facing - this determines where you fire your HACK. But be careful of the BUGS that surround the tree, as they will try to HACK your ROSE and make you fall back down. You have the choice to rush your way up the ROSE, OR HACK the bugs away - each has its trade offs. How fast can you reach the colossal petals of the Great Rose?
How I built it
I wrote a lot of JavaScript code from scratch. There are at least 1000+ lines of code in total. I use the HTML5 Canvas to draw the graphics. I implemented a simple architecture of static tiles and dynamic entities. I developed several classes to implement the various entities in the game.
The Great Rose structure is generated via a moving entity that leaves a trail of tiles and sometimes spawns new moving entities to create branches of tiles. This "generator" entity also spawns enemy Bugs.
The mechanic of rose height scaling was added later in development to make it easier for the player to climb any extreme heights that may appear.
Challenges I ran into
There were a few severe bugs that I had to work through carefully. For instance, the player would jitter unexpectedly because I accidentally reused a Point reference between several entities. Also, due to how I only handle one entity at each grid spot, it was once possible for the player to fall through the ground because the aim indicator overrides the solid tile. There were several issues with the grid space, as I divided it along the visible tile size and therefore needed to snap every point to the interval before using the grid.
Accomplishments that I'm proud of
I managed to write 1000+ lines of JavaScript code without running into too many showstopping bugs. Looking back, I was able to practice advanced debug and design experience. I implemented a modestly advanced motion and collision detection algorithm. I successfully designed a game that is well-balanced and fun to play.
What I learned
I learned that HTML and JavaScript provide a pretty good way to prototype small games pretty quickly. And I've learned how to properly scope a game project in order to make it viable for a hackathon.
What's next for ROSE || HACK
I plan to add more level features, such as new enemies and new destructible tiles
Log in or sign up for Devpost to join the conversation.