Plåtniklas

Plåtniklas

Plåtniklas is a game that integrates both VR and AR, where the two worlds co-exist on a one to one scale. Thus the AR player can see the VR player, and vice versa. They will see the same environment, and the changes made to that environment. Both of them can interact with the world and its objects, as well as with each other. This is a project which ran from mid september 2018 to december 2018 and is part of the course Advanced graphics and interaction at the Royal Institute of Technology. The project is developed by using Unity, HTC Vive and ARKit.

The Gameplay

Plåtniklas is a scrap monster whose sole mission is to destroy the city he was once relegated by. He crushes the four buildings of the city by hitting them with his hands. The AR player acts as an attack helicopter and their mission is to defend the city from Plåtniklas. They fly around the city shooting projectiles at the monster, attempting to defeat him. Meanwhile, Plåtniklas can hurl the leftover building scraps at the helicopter to make it spin out in a spectacular fashion, before resuming their attack on him.

Old demo

Goals

The main goal of this project was to create a space where an AR player and a VR player could interact with and affect each other’s game experiences, in the same real world space. This enables a more social gaming experience than what most VR games offer today, as more people can join the same, otherwise walled-off game world through AR. Our goal is to create a game that is equally engaging and immersing for both players, regardless of how they play.

Photo by @linneaholmphotography

The Team

Olivia Bengtson

Main Responabilites

  • UI Designer
  • Modeler

Viktor Ceder

Main Responabilites

  • Network Programmer
  • AR-VR Intergration
  • Github Guru

Linnéa Granlund

Main Responabilites

  • Modeler
  • Character Designer

Anton Martinsson

Main Responabilites

  • AR Developer
  • Motion Programming
  • Game Mechanics

Petra Olsson

Main Responabilites

  • AR-VR Intergration
  • Game Mechanics
  • Modeler

Method and Madness

The game concept was born from a few brainstorming sessions in early September of 2018, and ever since Plåtniklas has been chugging along at a slow but steady pace forward. We quite quickly realized that the amount of related work was minuscule, and that we were gonna have to build most solutions and ideas we had from complete scratch, with little or no inspiration from similar projects. In other words; Plåtniklas has been a highly experimental, trial and error-type of project.

Tech stack

To deliver on the promises of the project, we’re using ARKit for powerful and stable Augmented Reality with surface detection and accurate AR world placement. In addition, we’re using the HTC Vive and SteamVR for a highly engaging VR experience with the signature full body tracking that the Vive is known for. With the power of these great frameworks (and a sprinkle of our own additions), both kinds of players can interact with the world and the other types of players in a multitude of different ways.

Lessons Learned

We quite early figured out that networking was going to be a big obstacle to overcome. Unity’s native networking features do not allow both AR and VR devices to spawn on the same server, so we had to create our own network manager. Another big problem was the positioning of the world in AR world space.The origin of an AR world is where the mobile device is when the applications is started. For a long time we tried positioning the world around those coordinates. Initially, we placed markers on a detected AR plane to calculate an origin, and then tried to change the position of the AR player to match that. This failed due to rotation problems, and insufficient knowledge about math. We redirected, and decided on changing the world origin coordinate of the AR world instead. With building our own Network manager, we encountered a bunch of problems. To get variables to sync between the different players, to spawn objects at correct positions and move appropriately. And to alternate objects in the virtual reality from the phone.

Induvidual contributions

Olivia Bengtsson

  • UI designer - Designing of all GUIs in the game..
  • Modeler - Designed and modeled the buildings in the game.
  • Special effects - Created particle systems for explosions and smoke.

Viktor Ceder

  • Network Programmer - Enabling the connection and co-existence of the VR rigs and AR rigs in the same environment by coding our very own Network manager(Built upon Unity’s inbuilt one).
  • VR-AR Integration - Making sure the player does not see their remote representation.
  • Github Guru - Managing all Github merges and conflicts.
  • Webmaster - Making this awesome page.

Linnéa Granlund

  • Character designer - Modeled the head and hands of Plåtniklas.
  • Animator - Design and animated crowd simulations of humans walking around the city and reaction to Platniklas.
  • AR-VR Integration - Enabled models of Platniklas head and hands to follow the movements of the VR player, as well as Helicopters following every movement made by the AR player.
  • Game mechanics - Code for hitboxes on Platniklas.
  • Sound effects - Found and modified the sound files.
  • Documenting - Documented the project through pictures.

Anton Martinsson

  • AR developer - Enabling code for plane detection and placing the world, as well as instantiating and shooting projectiles in the right direction.
  • Motion programming - Touch on screen for shooting projectiles.
  • Game Mechanics - Coding script to enable Platniklas to take damage.
  • Movie maker - Filming, planning and editing all our cool movies.
  • Poster designer - Designing poster for public exhibitions.
  • Modeler - Modeling the island the city stands upon, as well as the water with waves around it.

Petra Olsson

  • AR synchronisation - Coding and designing the synchronisation between the AR and VR world coordinates, enabling them to be in the exact same location.
  • AR-VR Integration - Help with instantiating and shooting projectiles in the right direction. Enabling the helicopters t o be hit by objects thrown.
  • Game Mechanics - Code for smashing the buildings, making them smaller for every 10th hit, adding intractable script for enabling picking up and throwing cubes. And coding a synchronisation script for displaying current health on a health bar.
  • Modeler - Modeled Helicopter and helicopter motion, modeled missiles
  • Sound effects - Added and edited sound for helicopter, explosions, missiles and when smashing the buildings.