Project XRoom is creating a multiplayer interactive AR experience that people can enjoy in a room scale space.
By utilizing the advantage of Edge Computing technology, players can enjoy fast synchronous interactions and high quality visual effects without any powerful hardware in their hand.
As one of the programmer in the team, my job is to build the game interaction. Also, deployed the game on edge computing platform.
This project offers me a great opportunity to learn the distributed systems. To deploy the game server in AdvantEdge edge computing platform, I made a lot of effort. I learned the knowledge of image and container and learned how to build our game server into a image and run in a container. After that, I learned the usage of AdvantEdge edge computing platform(https://github.com/InterDigitalInc/AdvantEDGE). With the help of our client, we implemented the edge computing environment with our game server.
To demonstrate the advantage of edge computing, I tried to deploy the game server on the AWS. We compared the game running performance under the environment of edge computing and cloud computing.
For the game part, we designed the game server and client with mirror network. It’s a nice network service for Unity networking game. Due to the nature of edge computing, we have to build the game server as a detached part. The game system is designed as follows:
The Unity executable on the edge is the game server. The server will do most of the calculating jobs. On the client side, they are responsible for rendering and transferring user input to the server.
For the AR part, we used AR foundation package to build the game. However, we need a solution to solve the space drifting problems caused by the player movement. After several researching, the solution we took is using a QR Code to correct the game objects’ position. There is algorithm on the client side to calculate the game object position based on the relative position of the marker.
This is a very interesting project. I enriched my skillset as a DevOps programmer. I learned the deployment process and some useful platforms and software. As a game programmer, I learned how to develop a networking game.
I would like to appreciate my team. I can’t build such a cool project without them!