Week 5

Team 6 encounters some trouble in the water, but continues to make progress

Posted by VRcap Team 6 on May 1, 2020

Turbulent Waters

Water rendering is one of the most important steps for us as we develop Hands on Deck. Currently, we are using Crest Ocean System as our water renderer. Crest renders beautiful scalable oceans with deep customization on the behavior and appearance, which is perfect for immersing our users in the experience. However, due to hardware restrictions with the Oculus Quest we have had some performance difficulties with Crest. In addition, figuring out ship buoyancy in Crest water has a significant learning curve. Focus has shifted to optimizing Crest, but if it’s not possible we will have to look for other rendering solutions since smoothness is a priority, especially when dealing with VR.

Multiplayer Synchronicity

We were successful in prototyping the ability to have multiple camera views for different device platforms present in the same online. Currently we can have desktop and oculus quest clients join, while synchronizing their respective positions and animations in the online environment, referred to as a room in the PUN api documentation. Now that we are confident in the ability to connect and communicate with clients on different platforms, the focus for developing online interaction will turn to how to organize the clients’ ownership of an object and what we will focus on synchronizing. The client ownership is a concept that allows only one client at a time to make changes to the transform, or position, of a GameObject in the Unity scene. Implementing the transfer of ownership will be pivotal in allowing clients to hand objects to each other, or even interacting with an object lying in the world, as by default all objects belong to the first person in the PUN room.

Lowering the Sails

Wind is going to be an essential part of our experience, because it will dictate how the ship moves and simulates real life. Unfortunately, a big part of how we implement wind will also depend on the water physics, such as whether the waves caused by wind are handled together, or separately. We will need to figure out how to make the Crest water work, otherwise pivot to figure out another way to make water. Meanwhile, we have gotten started on how the wind will interact with the sails of the ship. We are trying to make the sails responsive by giving them the Cloth Unity component, but that also comes with many challenges to optimize how they move and react.


- Work Log -

James: Collecting scripts and functions to provide synchronization of VR and non-VR clients in the same online PUN cloud server.

Patrick: Started implementing wind and sail physics

Abhinav: Tested out Crest system with the Quest, tried optimizations. Experimented with adding buoyancy to Patrick’s ship test within Crest. Tried a few other shader tutorials for water.

- Work Plan -

Everyone: Work on slide deck and presentation for next Tuesday

Patrick: Continue working on wind/sail, and hopefully steering of ship

Abhinav: Continue trying optimizations for Crest, otherwise divert to less graphically demanding ocean solution. Acquire ship model that will be used, add buoyancy

Julian: Work on basic bird player implementation/networking with PUN2

James: Investigating Remote Procedure Calls (RPC), Lag Compensation, Physics Synchronization in order to manage the interactions between players and larger entities in the world, such as the ship itself.