My name is Griffin White, and I am a programmer that worked on Boomerblade. Most of my time was spent perfecting the player and sword mechanics, but I worked a few other jobs here and there. I'll just go over the big, interesting jobs I remember, rather than every detail.
My first job was to put together the most basic prototype of the game - a simple twin stick shooter with a moving player and some kind of projectile that would later evolve into the Boomerblade. Most of the camera work was done here, but I fixed some jittering issues much later. The arc took quite a while to solve, so other features came first.
Within a week, I had the player and sword's special abilities. The player could quickly move in one direction with a press of the spacebar (this would later become a roll animation), the player could teleport to the sword, and the sword could be called back to the player, which at this point meant simply moving to the players position. Later on this ability would become something else; the sword freezes in midair, and a second (or so) later would instantly return to the player, hitting any enemies along the way.
But I still didn't have the sword arc.
The core idea for the sword arc is that it relies on player movement. The player would throw it in a direction, and after reaching max distance, it would turn back around and try to catch up where the player was going when the threw the sword. If the player didn't catch it, the sword would keep going in the same direction - in addition, it can hit walls and bounce around at any point in the throw.
The first solution I had for this was for the sword to follow a parabola, using a quadratic function. I would have the start position and the players predicted position for the x-intercepts, and the swords range for the y-intercept. This caused a couple issues.
- The sword never actually went to where the reticle was aiming it, but rather to the left or right. Fixing this would require tilting the parabola so that the original line up the y-intercept was almost straight, but then we would have to figure out another way to get to the predicted position, since it would no longer be represented by the x-intercept.
- It just didn't look right for most throws. The parabola was pretty if the player was moving left/right and threw the sword forward, but for awkward throws such as throws up/right while moving down/left, it stopped making sense.
So, the parabola was scrapped and I went with something simpler - the sword would move straight ahead, then making a gradual turn until it was facing the predicted player position, and then move straight from there. This made for a pretty simple state machine instead of having to generate a tilted parabola, and looked basically the same.
After the sword's arc was working, I was asked to implement a Path Predictor - that is, before (and eventually, during) the throw, a line would appear should where the sword would go. Basically, the movement arc was a difficult concept to grasp, so players needed a way to mess around with it and see what would happen before the started throwing the sword (and getting in trouble when they lose track of it).
Implementing this was troublesome, to say the least, and I didn't fix all the major bugs until the last week of development. Sometimes the line would go below the player and level, disappearing from view. Other times the line would get twisted around instead of facing the camera. Sometimes, when the player wasn't moving, the path predictor couldn't decide if it wanted to turn the sword to the left or right, and would flicker back and forth; on the other hand, the sword's left/right turn was always consistent. I fixed every issue I found, but it was a constant thorn in my side while I tried to work on other things.
Besides all that, I implemented sprites and animations for the player, and a little for the goblin. I also fixed up the sound player (originally created by Thom, I think) to handle more sounds and looping sounds, then implemented most of the SFX within the game.
Also, I put together the first draft of the main menu (not the pretty one currently there), and created a dialogue/monologue system - basically, at the start of the level, a text box would appear that the player would click through. At the time of this post I am not sure that any dialogue has been written, so it may not appear in-game.
Comments