Project : Visual scripting exercice

Engine : Unreal Engine

Platforms : PC

Status : Working prototype

Date : 2021

What is this project?

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.

Why was it worth?

After getting this project done, I’m feeling really confident when thinking about prototyping new or known mechanics & systems in Unreal blueprints/visual scripting!

Some details about what I've done

Here I will describe you some things I scripted in this project, they will be separated in 4 parts :

Controls & Physics – Interactions  –  Systems  –  Others

CONTROLS & PHYSICS

360° pawn movements

Pawn movement abilities, affected by torque force applied to the ball.
Also have ability to jump, wall jump & ground detection.

Camera movements

Able to fully rotate the camera around the ball with movement behind behind binded to camera forward vector, being very intuitive.

INTERACTIONS

Class based interactions scripting

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.

Various items content

Each interactive item  will have a specific behavior when picked up.
They all come with a set of sound, visual effects & animations.

Environment interactions

Using basic interaction systems, I created simple ‘puzzle’ situation based on environment interactions.
( Buttons, jump pads… )

SYSTEMS

Saving/Loading states

Between each level, variables are stocked into save states.
When entering a new level, this saved state is loaded.

Dynamic scoring system

By counting dynamically every collectible coin located in a level, the scoring HUD can show the player’s progress inside the current level.

Dynamic Health system

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.

OTHERS

Procedural fence spawning tool

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.