Peer2Peer
In-game Video
Conference

In-game Video Conferencing

A peer2peer system for an online conference

Company
Viruma
Role
Part-time Developer
Contribution
Development
Brief Description
Implementing a custom peer2peer
server for connecting users
on native and web
One of the most important and required feature for their web-based metaverse services is the ability for the salesman to communicate to their client. This infrastructure should be able to accommodate over 50 people without any lag, since they will occasionally hold a conference.
Challenges
During this time, the company was moving fast and pushes the development process to be as rapid as possible. This was also due to client requirement and agreed milestones. Hence it was important to resolve things calmly.
"What is the capability of the team?"
For the most part, the team consist of myself, with occasionally the help of my senior if he was not busy. Because of this, this project was an absolute challenge for me to take on.
"When was the deadline?"
The deadline was very tight. The board gave me about a month to finish at least a working prototype of the feature
"When was the requirement?"
This feature has to be very stable and resistant to huge traffic, preferably 50 people. It should also be lightweight and capable of sending high quality video and audio streams to everyone in the metaverse environment.
Methodology
This project requires a fast moving development, preferably an iterative one. Building a stable system requires a lot of time and effort,and usually is not achievable within a one month time-frame, Hence I divided the development into 3 Phase:
Speed First. Bugs Later.
Due to the requirement of the project, the wisest thing to do is to use pre-exiting systems. Decoupling the backend for a while will save a lot of time, since I also had to work on the front-end interface.
Small-scale Infrastructure
Once things settled down, I can start working on a custom implementation. Although using pre-existing system is fine, the technology we're working with is very rarely used and relative unsupported
Scaling up. Maintenance for.
During this period, I expected the team to grow, which will lift off some of my burden. I can focus on fixing technical debts, refactoring codes, and implementing better structures to accommodate future requirements.
Timeline
Going Fast. Going Agora.March 2022 - June 2022
Alongside with the development of the web-based metaverse application, I have to build the front-end interface that interacts with the server that handles peer2peer conferencing. This, of course, does not include building the server and API itself. Hence during this period, I integrated an enterprise-grade video conferencing service, Agora.
Lowering CostJune 2022 - July 2022
As an effort to lower the production cost, the manager gave me a one month period to develop a small-scale prototype. They stated that Agora added a lot of cost to their overall pricing My prototype, if plausible, would be used for their small-scale product, which usually only has 5-6 people in one environment.
Proximity Voice-chatJuly 2022 - September 2022
At the time of development, the company began to prioritize a proximity-based voice-chat. This would allow users to communicate under a single room instead of the entire section. Luckily for me, the small-scale prototype had already reached maturity, and was stable enough to handle this proximity feature. It was an interesting feature, requiring me to bridge between the Unreal Engine Pixel Streaming interface, the backend I created, and the front-end I had built.
Maintenance First.August 2022 - September 2022
Although it was still busy, there was enough time for me to document, restructure, and improve the overall system stability, the unreal engine interface, the frontend, and the backend. In this period, I focused on creating an API that is maintainable and easy to be understood by future developers.
© Copyright 2023 William Hardjoko