GLINT
in Engine
FILIP KULL
This Game project is unique in that it was developed entirely
within our own game engine,
adding an extra layer of complexity and creativity to the design process.
For this project I choose to develope:
WALL SPLINE TOOl
-
Wall Dencity
-
Amount of rocks per wall
-
Rock seperation distance
-
Rotation clamp
-
Rock type randomizer
-
Rock position randomizer
ROCK PARAMTERS
-
Spline widget
-
"Editor Tick" Converts spline into individual actors in the outliner.
-
Supports an number of different walls and rock meshes
Functionality
list
This tool lets level designers quickly and easly create dynamic cavern wall.
TOOL IN USE
Pipeline
Our programmers convert data from Unreal Engine levels and place assets in our levels according to said data.
With this in mind, my tool had to create individual assets in an Unreal outliner outside of runtime.
Filip Kull
SOLUTION
To spawn actors outside of runtime
I made a "Blueprint interface" actor.
This actor will hold a function
which will simply return true.
Not particularly useful on its own,
the important part is that
an interface can be called outside
of runtime.
Next, a "Blueprint Editor Utility" actor is needed to help check and ensure the final blueprint can implement interfaces.
If it does, then it is allowed to execute the function created in the "Blueprint Interface".
Final step is to add the "Editor Utility" actor as the child of my tool actor: "BP_SpineWall"
This is done inside its construction script.
Under class settings I can now add the interface and after compiling it is granted access to the function in the editor with the press of a button.
Having tested the pipeline with the tool incorporated I could confidently move on to expanding its functionality
BREAK DOWN
Follow spline
To make the walls follow the spline I first get the total length and divide it by the width of the wall pieces. Now that I have the amount of walls that will fit along the spline I increment along the spline placing walls at intervals of the walls width.
The rotation of the walls are based on the point on the spline it originates from. To make the tool more user friendly I am collecting all walls created in an array which gets destroyed whenever the function is called again.
FILIP KULL
On the far right of the blue section of the script graph is an unused feature offsets the walls upward, stacking them and creating massive walls.
ROcks along walls
The rocks positions are based on where the walls are. Horizontally a random position is gained between the current and next increment of the wall loop.
Vertically it is a random saturated number multiplied by the set height of the walls.
A random position is set to a "position array" which checks weither or not the new position is too close to any previous position. If so, the new position is removed from the array. Then the loop repeats "Rock amount" of times.
POSITION ARRAY
Placed rocks
After the position array has been sorted it is a simple matter of looping through
the array and spawn rocks in the curated position.
As a final touch, I randomly rotate the rocks around the pitch to add
another layer of variance.
This was an increadably fufilling project
because of how quintisential the tool was
for the game.
Without it, we would have to start from
skratch and figure out another enviroment
for the game to take place in.
“I am part of The Game Assembly’s internship program. As per the agreement between the Game Industry and The Game Assembly, neither student nor company may be in contact with one another regarding internships before April 23rd.
Any internship offers can be made on May 6th, at the earliest.”