Simulating a kayak in VR


Hello, it’s Jacopo. I am the main developer on Al Crepuscolo VR. To know more about the game and see some images, visit our store page

As you might know, we’re using Unity to make the game and I’d like to tell you about the design challenges around the implementation of the main mechanic of the game: the paddling of the kayak.

I approached the design of the rowing mechanic for Al Crepuscolo VR by reviewing my own experience with rowing a boat on a lake, looking at video references of boats, canoes and kayaks and experimenting with different tools offered by the game engine.

The story at first was calling for a rowboat, instead of a kayak, but after making a prototype, I discovered that the oars were often detaching from their pivot point whenever the player was pushing or pulling too hard. This was breaking the sense of immersion that we were looking for. On top of that, the overall experience of rowing with two separate oars, felt awkward and unsatisfying.

For these reasons I switched to a kayak and this decision immediately enabled us to have a much more interesting design of the boat to work with. The single paddle of a kayak was also much more interesting to interact with, although not easy to program.


To simulate how the kayak is pushed forward on the water, I studied the physics formulas beneath the movement, and I recreated them in a simplified form in the game engine.

In short, I created a special setup (called technically “a rig”) for the boat to detect when a paddle enters the water around it.

As soon as the paddle enters the water, the game begins tracking its movement and calculating the amount of displaced water over time. The amount of water displaced is converted into two forces that are applied to the kayak: a force pushing the kayak forward or backward (propulsion), depending on the paddle movement and another force (torque) making the kayak rotating around its center of gravity, based on which side the paddle is entering the water.


I played around different weights to these two forces to make the kayak reactive to the player’s paddling, while minimizing the risk of motion sickness. It was hard to strike a balance between responsiveness, which requires a faster and more noticeable rotational force, and motion sickness which in certain people can be triggered when the kayak is rotating too quickly.

Another issue we noticed during our play-testing was that hitting the shore and paddling backwards could induce some motion sickness in some testers, thus these cases required extra care. My solution was to fine tune the distance at which the kayak can “hit” the ground and make the boat collide with the shore a bit sooner than expected. This also avoided situations where the player could get stuck in the environment.

For the backward movement, I reduced slightly the acceleration and speed of the movement to keep the movement more manageable.

Recently, we’ve also added an accessibility option to turn on an automatic paddling mode at any time during the journey. This option sets the kayak on an invisible path and lets the player just enjoy the ride. This feature can be activated and deactivated at any time, to mitigate any discomfort or fatigue that could set in.

Paddling through our river is physically demanding, as you can expect in real life, and this is by design, but making the more sensitive players of VR sick is never a good idea 😊

Al Crepuscolo VR is now gliding towards its final release on itch.io, as we polish the interface and make sure that there are no bugs.

Expect a few more articles about the making-of this project before release.

Until the next one, take care!

The team of Al Crepuscolo.

Get Al Crepuscolo VR

Buy Now$4.99 USD or more

Leave a comment

Log in with itch.io to leave a comment.