Project Type:
Development Engine:
Programming Language:
Other Tools:
Team Size:
Role:
Duration:
Post-Launch Update
Unity
C#
PlasticSCM, F-MOD
7
Programmer
3 months
Hamster Ball Blitz is a 2D top-down physics-driven game for iOS and Android where you play as a hamster competing in a tournament with the goal to knock every opponent offstage.
Through MassDigi's DigiStudio internship, I joined a team of designers, programmers, and artists to continue development of the published game.
Our team was given the opportunity to self-select features to implement and polish as a content update for the title.
With the games internal structure, we noted that adding multiple opponents would be within scope for features to be completed. Thus, we worked on adding functionality for 1v2 matches where the player fights 2 opponents at once. To do this we modified gameplay scripts relevant to the win condition and added UI viusals for the second hamster opponent. With the 1v2 completely playable, we made every second match of every tournamnet a 1v2.
As the player completes the games tournaments they are rewarded with 'artifacts'. These items serve as power-ups for the player each with special effects. Our team designated providing players a way to see their collected artifacts and understand their effects as a priority based on our playtesting. With this goal in mind, I went about creating this feature which I dubbed the 'Artifact Room'. Using the ScriptableObject structure for artifacts (including name, description, and image among other attributes), I loaded relevant data into a prefab and then displayed in a grid using Unity's Grid Layout Group component.
Each time the player completes a match they're rewarded with the choice of an upgrade of 1 of 3 stats.
Those being: speed, mass, and ability.
In our design review and playtesting, our designers found that while mass provided a massive advantage it's drawback was lacking.
Mass minimizes incoming knockback and allows to push enemies further, such a stats main disadvantage would obviously be speed and acceleration.
By getting larger, you become slower.
I went about making a tool to allow designers to modify the relationship between mass and applied acceleration per frame.
Using Unity's AnimationCurve I created a Mass-Acceleration Curve where the mass stat represented the x-value and the applied acceleration scale was the y-value.
By using an AnimationCurve, the graph is visualized and modifiable in a design-friendly GUI allowing to change points and the type of curve (exponential, quadratic, logarithmic, etc).