My responsibility for this game is tied to Environments. However, due to the capacity of VR game, I am also responsible for creating a pipeline for the game. This allows all artist to easily manipulate and create levels. For buildings, I created a procedural building that can be adjusted like in Houdini with BP.



Procedural Buildings

Tools for FunkyBall

Since the game is an arcade game and the player will see everything, I have to make sure that building is procedural enough that shows variety. My goal is to build parameters that define its shape. 



Sometimes we will want an extra floor to place dentils on top, therefore I put in an extra function that only active if true, that spawns another floor.



Each window has a different rotation base on their axis, therefore I must rotate 4 times in 

total. A for loop is created for how many window to be spawned.



I first define all the shape of the whole building, including base, body and the edges. I parameterized them so that I can adjust any of them when needed.



Building coding:

The spawn window function spawn and static mesh, rotate base on the for loop, and then set its material. It was collapse for organizeion.



Moving cars

Moving cars are essential to cities and without them, the environment will be dull. I have decided to create some moving cars and modulate them, therefore I can keep spawning them if I wanted to.



To begin, it start off with a random color and glass material for the car and delay its start if wanted. These values are public, therefore I can have a huge variety of them.


I have decided to create a blueprint for the car, the cube is start point and the sphere is the end point. When the car reaches the sphere it will turn invisible to create an illusion that it kept going. The car always looks at the sphere.



Blueprint checks the distance from the cube to the sphere, and use that information to respond to the visibility of the car. It was clamped to avoid the car from going further than needed to avoid any bugs. And when the car reset, it sets a new material for itself. This process loops.