Project : Visual scripting exercice
Engine : Unreal Engine
Platforms : PC
Status : Working prototype
Date : 2021
This project is a game prototype based on a Third Person rolling ball type of gameplay.
I wanted to (re)learn basics about visual scripting and go even further to strengthen my skills. It was a good opportunity to improve my understanding of some of Unreal’s tools, scripting logic, component’s arrangement etc.
After getting this project done, I’m feeling really confident when thinking about prototyping new or known mechanics & systems in Unreal blueprints/visual scripting!
Here I will describe you some things I scripted in this project, they will be separated in 4 parts :
Pawn movement abilities, affected by torque force applied to the ball.
Also have ability to jump, wall jump & ground detection.
Able to fully rotate the camera around the ball with movement behind behind binded to camera forward vector, being very intuitive.
There are several different interactive items in the prototype such as coins, bombs and health items.
Each of those items share the same trait, they are pick-ups.
Considering this fact, I built a base Pickup parent class which would define a pickup’s base behavior.
Each interactive item will have a specific behavior when picked up.
They all come with a set of sound, visual effects & animations.
Using basic interaction systems, I created simple ‘puzzle’ situation based on environment interactions.
( Buttons, jump pads… )
Between each level, variables are stocked into save states.
When entering a new level, this saved state is loaded.
By counting dynamically every collectible coin located in a level, the scoring HUD can show the player’s progress inside the current level.
Basic health system with Healing collectibles that can replenish it.
An HUD element does show your health dynamically.
Getting it to 0 would restart the current level.
I made a little script which procedurally creates a fence, using a starting & final point. Filling up the desired distance with the assigned model.
It can support rotation too.