

Scroll Down For More Information

Unreal Engine 4 | Open world | Up in the Air | June 2016 - Dec 2016
-
Architected intricate systems like the player character, power up system, and the map and discovery system in our game.
-
Created and maintained major blueprints and it's components.
-
Provided solutions for complex problems arising due to the open world nature of the game,most of which entailed heavy usage of blueprint communication.
-
Made various tools to help level designers and artists iterate quickly
INDIVIDUAL CONTRIBUTIONS

Map and POI
FEATURES WORKED ON
-
Map and Point-of-Interest Discovery system, which include: -
-
Map​ blueprint.
-
Point of Interest blueprint.
-
Point of Interest component.
-
Point of Interest manager component.
-
-
Thought bubble.
-
Ground Pound power up.
-
Power up selection wheel (debug tool).
-
Power up manager component for player character.
-
Power-up pick up.
-
Death and Respawn System.
-
pop-up widgets.
The map and point of interest system works with help of 3 main pieces talking to each other.​
-
Point of Interest Component(POIC): -
-
This component attaches to any actor is is to be a point of interest in the game.
-
The basic Idea behind this is very simple, all it does is it spawns a "Point of Interest Blueprint(POIBP)" on the same location at which it's parent is.
-
Even if this is a very simple step, this allowed me to make a very simple component for the level designers that they just have to attach to any actor they want and then they don't have to worry about anything else (how it works under the hood).
-
This component also acts as an interface between the parent actor and the POIBP spawned by it. Hence updating the POIBP and HUD on completion of parent actor specific task is done through this component.
-
-
Point of Interest Blueprint: -​
-
This blueprint ​does all the point of interest related logic. It is responsible for 3 main things: -
-
Discovery of it by the player.​
-
Performing fading on the billboard attached to it to go towards visibility or invisibility according to what filter mode the map is in.
-
Update HUD on discovery.
-
-
Discovery is handled by just checking player's distance squared Vs ​a discovery radius (set by level designer in POIC and then passed up to POIBP when it is spawned) squared.
-
-
Map blueprint
-
This blueprint is the main orchestrator of all point of interest visibility and management​.
-
It consists of a "Point of Interest Manager (POIM) Component" that keeps tab of all POIBPs. Since level streaming can lead to there being more than one POIBP spawned by one POIC, POIM makes sure there is only one POIBP for each point of interest in the game by destroying redundant POIBPs.
-
When player goes into "map mode", this blueprint: -
-
Blends from the player and map camera.
-
Disables input for player character
-
Asks the POIM to ask all POIBPs to take their attached billboards towards visibility.
-
-
When player goes out of "map mode", this blueprint: -​
-
Blends from map camera to player camera​
-
Enables input for player character
-
Asks the POIM to ask all POIBPs to take thier attached billboards towards invisibility.
-
-
Map and POI System


Thought Bubble
The thought bubble is a simple 3D widget attached to the player character blueprint. Controlling this 3D widget is done by a thought bubble component" that does the following tasks: -​
-
Turn widget towards player camera.
-
Calculate and apply scale to the 3D widget according to whether it has to do towards or away from visibility which in turn in determined by a "reference count".
​​
On entering a trigger box that is to trigger the thought bubble, the trigger box does a couple things: -
-
Increases the "reference count" on the thought bubble component.
-
Updates thought bubble with information about it.
​
On leaving a trigger box that is to trigger the thought bubble, the trigger box decreases the "reference count".
Ground Pound Powerup
One of the 5 different power-ups one can get in this game. The ground pound power-up works exactly how it sounds. When activated: -
-
The player is pushed towards the ground.
-
If ground is reached then it applies a radial force with the player character at it's epicenter.
-
If the player was already in ground then do nothing.
​
And it is not just the base logic that makes this power-up one of the most fun out of the 5. Little touches of polish like adding a subtle screenshake when moving towards ground and a cool particle effect on hitting the ground makes this power-up fun not just to use but also to look at.


Power-up selection wheel
When scouting for power-ups got too time consuming and having 10 different buttons for each possible power-up in each slot was just a stupid idea. I came up with a debug tool that would help the level designers switch between power-ups super quick.
​
The Power-up selection wheel, inspired from idea of a typical weapons wheel in shooter games, gave our level designers instant access to any power-up they wanted at any time in any power-up slot they wanted. This didn't only make designing faster for the level designers but it also enabled the entire team to prototype and iterate on gameplay bytes and ideas very quickly.
​
It worked as follows: -
-
Pressing the left "ctrl" button would take you in "selection mode"
-
Hovering over the power up you want would select that power-up icon.
-
Having kept either "1" or "2" pressed, clicking on the selected icon would equip the player character with the chosen power-up on the chosen slot (1 or 2).
Power-up manager component
Having 2 power-up slots available to the player character combined with 5 different types of power-ups that the player can equip onto any of the 2 available slots gave rise to a need for a "manager" for the power-up system.
​
The power-up manager has 3 main responsibilities: -
-
All execution of power-ups go through it.
-
All equipment of power-ups are done through it.
-
All update ticks on power-ups run through it.
​
Basically then, if one wants to equip, execute, change or swap their power-up, it has to go through the power-up manager. This in turn reduced the equipment, execution and change of power-ups to one function call which when executed takes care of the rest making the system super user friendly.






