Intro to Holoearth’s Server-Side Tech
Author introduction |
Hi everyone, my name is Yukihiro Nishine and I’m a manager in the Holoearth engineering team.
When speaking of Holoearth’s development, it likely conjures images of the Unity-based client-side implementation, the avatar system, or concert events and the like. But this time around I would like to speak to some of the server-side technology that we put to use.
I hope this will be interesting for those of you who are interested in the behind-the-scenes development of Holoearth.
Contents |
・Programming Languages Used |
Programming Languages Used
We primarily use Go, with a handful of other languages as well including PHP, C#, TypeScript, and Rust.
Rather than a single application, the Holoearth servers are composed of multiple applications that each use a different language.
▼Application segmentation
・Sandbox game
・Lobby (Entrance Hall, Alternative City, etc.)
・Infrastructure for account management, payments, etc.
・Others
The server side of the initial sandbox game development was done in PHP.
From there, the communication lobby and underlying system was made with Go, and currently Go is the primary server-side language being used.
On the other hand, the other languages not used until this point may be used when the appropriate case calls for it.
For example, a new system being developed requires in-game logic to be handled in real-time by the server side, so by using C# on the server side as well we can ensure the developers working in Unity can develop the client side in lockstep with the server side.
As for other languages, we use TypeScript in Cloudflare’s FaaS (Cloudflare Workers), which works in conjunction with Cloudflare resources, and Rust is used in the communication infrastructure that is currently in development.
Cloud Environment and Tools
The Holoearth cloud environment predominantly uses AWS, of which the main services utilized include EKS, ECS, EC2, Lambda, Aurora, DynamoDB, and ElastiCache.
For storage and CDN we do also use S3 and CloudFront, however, to reduce costs we moved much of this to Cloudflare.
For monitoring tools we use Datadog, and Snowflake is our platform for data analytics.
COVER may not be a web services and game specialty company, but we are establishing a development environment that can go toe-to-toe with such companies in the industry.
About Cloudflare
Cloudflare was initially well-known as a CDN service, but these days it offers a range of different services.
Holoearth migrated its CDN needs over to Cloudflare to make use of its ecosystem. Besides its CDN service, we are also utilizing Cloudflare Stream, Cloudflare Images, and Cloudflare Workers, among others.
In particular, we make heavy use of Cloudflare Stream. The video streaming rooms we made available to users during New Year’s and hololive EXPO were made possible by Cloudflare Stream.
I was actually first introduced to using Cloudflare Stream after joining COVER, and I was amazed at both how easy and cost-effective it is to implement video streaming.
For those of you interested in video streaming development I definitely recommend giving it a try.
Final Thoughts
That wraps it up for a brief introduction to Holoearth’s server-side technology stack, which until now hasn’t really been revealed.
Our own CTO, Ikko Fukuda, has previously shared that metaverse platform development is a sort of “mixed martial art concerning the world,” which is spot on. Holoearth development is not always straightforward, but that is precisely what makes working on it as an engineer such a rewarding experience.
Thank you for reading, and we hope you continue to follow the story of Holoearth’s development!