Skip to main content

Introduction

What is Waltzer?

image-1656951578176.png

Waltzer is a flat fairground ride that often forms the centrepiece of traditional British and Irish fairs. The ride consists of a number of cars which spin freely while rotating around a central point, in much the same way as a carousel. As the cars revolve, the floor of the ride undulates over a track so that the cars rise and fall as the ride spins. The offset weight of the riders causes each car to rotate. The riders experience varying levels of g-force from the spinning of the car, and the rotation of the ride itself. Because of this, operators will impose height and age restrictions.


https://en.wikipedia.org/wiki/Waltzer


Why did I start working on a Waltzer in social VR?

Ever since I was a young, I have admired the engineering behind Waltzer and the concept of pairing mechanical motion with human operators who interact with the passengers, which makes every experience unique.

In the past I have made small scale Waltzers out of wood and Legos and have attempted making a virtual version of one in every creative game I've played, most notably Garry's Mod.

Waltzer is one of those rides alongside with ones such as bumper cars and haunted house, which when done right, will make for an incredible VR experience.


Development challenges

Waltzer presented several challenges in terms of the development, out of which synchronization and physics were the most challenging.

Synchronization:

  • The ride's main platform has to be at the same relative angle to the operator of the ride at all times to allow social interactions between the operators and the passengers while the ride is running
  • Cars must always be at the same exact angle and have the same velocity for all clients

Physics:

  • The ride's main platform's motion has been simulated in Blender and exported into Unity, which must work with the cars' physics, that purely rely on live rigidbodies for natural feeling motion
  • The ride's main platform must be walkable while the ride is running and the operator must be able to stand still on the platform at full speed without any movement input
  • The operator must be able to grab the cars and give them speed reliably while the ride is at full speed

Lighting:

  • The ceiling frame of the ride is covered with lights which I wanted to affect the lighting of the main platform and its surroundings in a performant way