BBL VR game


Project information

Description

Our client BBL wanted a product that they could take to tradeshows and schools to entice young adults to look into the transport sector for potential future employment. To make this as fun as possible, we made a game that pits 2 players against each other to try and park a truck in the shortest amount of time, without hitting walls or pedestrians. The second part of the game is loading in a truck with a forklift. The key is to fit in as many tetris-shaped pallets into the truck as possible within the time limit.

  • Time: 8 weeks
  • Team structure: 1 programmer, 2 artists
  • Game Engine: Unity
  • Prominent Plugins: Photon, Meta SDK
  • Language: C#
  • Roles: Lead Developer

Details

Testing and Iterating

User experience is one of the most important factors when making a VR game meant to entice people. If they are turned down by the experience, it is hard to convince them of anything else besides the awful experience. One key example was the driving of the forklift. It worked exactly like a forklift in the movement category, but the suspension of the forklift was so high you had lots of bobbing of the vehicle. This caused around 50% of the users to get quite nauseous (which was found out after a round of testing) and was thus swiftly adjusted by making the player's head move along with a target object on the forklift, instead of being a child of the forklift.


Placement system

The backside of the truck would be divided into grid blocks. Every pallet you would try to load in (just like a tetris shape) is also made out of grid blocks. The key to this system is to take the self-described center block of the shape and describe the relation from that block to the next block using a custom data type. Then when trying to place it first check the placement grid position you're on now with the center block. If it is unoccupied, it goes to check the positions for each neighbor of the center blocks, etc etc, until it has checked all necessary placement grid positions. By adding an orientation to the main shape data class, I was able to simply adjust the rotation of the entire shape and it's placement checking function.