The XR project - part 2

Multiplayer
For this project, as it is an arcade type room that we would like to make with multiple games that people can play, a lot of multiplayer bar games came to our minds (e.g pool, air hockey, foosball). So naturally, we played around with the thought of creating a multiplayer VR experience, although we knew it might be hard to actually implement it. Of course, we could make some of these games in a way that they could be played solo, but we wanted to challenge ourselves a bit. We also agreed that it's doesn't matter even if we can't make it work, because we will still learn a lot from it. Then Coherence was suggested among us as the tool for networking.
Coherence is a network engine, SDK, and platform that enables the rapid creation and execution of scalable multiplayer games. It's main parts are the Replication Server ("Replicator"), the Game Client and the Simulation Server ("Simulator"). The Replicator is a server that remembers the state of the game world and replicates it between multiple Simulators and Game Clients. The Game Client is a build of the game. It uses the coherence SDK to connect to it. The Simulator is a "headless client" - a version of the Game Client without graphics - that has been optimized and set up to perform server-side simulation of the game world. When something is simulated on the server, it's simulated on one or several Simulators.
Hand animations and grabbing
For some of the games in the arcade, we need special animations or certain ways to grab objects. We struggled a lot with making this work, but eventually we found a way with the OVR setup, using Custom Hands. There were some example scenes provided by Oculus to show how to use the custom hands with different hand positions and interactions with objects. The Pinch Grab example came in handy with holding and throwing the darts, and the Palm Grab was used for holding the golf club. This works with 2 Hand Grab Interactables, which are the hands holding the object and with a Visuals game object, which has a reference to the 2 hands and has the Mesh of the object as a child. This way, whenever we interact with this object, the hands will automatically snap into the position that was specified. One object can have multiple hand positions in which you can hold them. For this, we simply need to add all the HandGrabInteractables under the Interactables in Visuals.
In this project, most of us had to get familiar with Blender to create our own models, since assets for our games were hard to find (or they were expensive). Several models, such as the darts board and the hole in minigolf were assets that we had to make ourselves. This was also an interesting and valuable experience that can help us a lot in the future.
Minigolf
This game fits perfectly into our original idea, because in real life with multiple golf courses, it requires a lot of space. This minigolf game is a good way to practice, with a lot of unique obstacles that would be hard to create on a real golf course. The moving/rotating obstacles make the game more difficult but also more fun.
Darts
Darts is a good single- or multiplayer game that can be found in most bars. In VR, it provides a good way to practice for real life games against other people, without having to worry about damaging your walls or furniture when you miss with a dart.
Pool
A pool table is also something that would rarely fit inside someone's apartment. In VR, you could play pool with your friends or family and you don't even have to be at the same place. It can also be a great training tool if a version is made where the path of the ball is charted, so you can see where it will go.
Author: Anett Barát

Kommentarer

Populære opslag fra denne blog

XR project final part and XR Expo

Individual reflections - Kristóf Lénárd

Individual reflections - Christian