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:


Note: The Github/Trello for this project are private.

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.

Visual Sheet

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!

Visual Sheet

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

ComponentCategoriser.pdf

This was merely a summary from a blog post my partner and I wrote for this feature.

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.

Technical Design

*As the repository is private I am not within my rights to share any visuals about the repository itself.