Operation Starfall
Hybrid Learn-Work Environment
OperationStarfall is a 2.5D Metroidvania Couch Co-op based on the style of 80's Saturday Sci-Fi Cartoons.
Project Details:
Software: Unity, Git, Trello
Languages: C#
Duration: 30 weeks (ongoing)
Team Size: 24 (2 leads, 14 devs, 8 artists)
Workflow: Scrum (3-week sprints)
Note: The Github/Trello for this project are private.
My Contribution
I am partly responsible for managing the Github repository and gained experiences as Scrum Master & Lead Developer.
Furthermore, I am responsible for features such as, but not limited to:
Gameplay System - Level Reloader
The Level Reloader uses a dynamic system where we sort only objects/entities that need to be reloaded in a sub-scene in Unity created when starting runtime. When the player dies or uses input to reload the level, it will only reload the sub-scene, leaving the landscape and other static objects loaded. Which makes it incredibly quick and optimised.
Gameplay Feature - Slingshot Synergy Ability
Synergy Abilities allow players to combine their special powers and create new effects. Such as the Slingshot Synergy Ability, which allows a player with the "Push" ability to 'hold' a player with the "Pull" ability as they're mid-usage, which results in a catapult-like effect where the player with the "Push" ability slingshots the other player in a given direction!
Custom Inspector - Component Filter
The Component Filter is a rework of the already existing Unity Inspector view that allows users to filter the component list based on categories and includes a search bar.
How it works
After you selecting a gameobject, the user will be faced with the default inspector as usual. However, now there will also be a grid of labels/categories which when clicked on, will filter all the components on that gameobject, showing only the ones that are part of the selected category.
The user will also have the option to use the Component Searchbar, allowing them to filter out specific components or components that contain part of a word they search for.
My contribution
Component Categoriser
Every time the user selects a gameobject, the Component Categoriser (script) will compare the components on the object to the ones already in the Component Collection, whenever a new component is detected that is not yet in the Collection, it will automatically be added to the Other category in the Component Collection.
Component Collection
The Component Collection is a scriptable object which works in cooperation with the Component Categoriser to categorise every detected script in the game.
The user can then proceed to add/move components to categories in the Collection, which then affects which filter labels are shown in the inspector view.
Component Categoriser.cs
Code Refactor - Stamina Lookup
The StaminaLookup script serves as the middle-man between the StaminaPool and the InputParser. StaminaLookup is triggered when the InputParser attempts to use an action, it will parse info about this action to the StaminaLookup script which will then check if said action has been defined in the ActionsMap, which is a tool developers use in the Unity Inspector to define things such as but not limited to: how much stamina an action should use.
Once the ActionsMap has been checked and if the action is registered, it will then check if the player's StaminaPool has sufficient stamina to perform the action. If so, it will both execute the action and call upon the StaminaPool to deplete the stamina.
Should the Action not be present within the ActionsMap, it will automatically allow the action so as to avoid having to add actions the developer doesn't wish costs stamina.
Code Sheet
Design Sketch
Method Extension - Transform Extensions
Transform Utilities are Method Extensions with the purpose of both preventing repeating code and to simplify certain processes often performed in code.
While these extensions are used in Operation: Starfall, my contribution to the extension primarily resides in my Toolbox project, click the button below to head straight there.
Code Expansion - Knockback Force Calculation
After some playtesting, we found it necessary to take a very close look at the current "feel" of the gameplay and what systems we have in place that we could tweak to improve said gameplay. One of the things we found could be helpful was more control over the knockback force added to entities on hit. As such, I added several more parameters to the equation, all having their own influence on the eventual outcome of a knocback force. Giving developers complete control over every knockback.