development updates
LOOKING FOR CONTRIBUTORS!
development updates
This is a new site, and I'd like to take a moment to reflect on everything we've implemented so far within the game. Most of this work goes unseen, and I think transparency goes a long way. Take a peek, if you'd like. This list is not in a specific order, nor is it a perfectly detailed representation of all features in the game.
Fully Dedicated ARM Servers for Lobby and Matches
Contextual Parkour System
Contextual Footstep System
Core Gameplay Loop - Runners Start, Seekers Catch, etc.
Proximity Chat
Game Text Chat
Contextual Ping System
60+ Player Pre-Match Lobby
Lobby Shop System - 3D Vendors
Equippable Gear System - 8+ Slots
Selectable Characters
MetaHumans Characters
Purchasable and Useable Items
Pickup/Drop Items in Match - Save to Inventory
Inventory & Player Profile Online Sync
Accrue Currency and Renown During Matches
Ready Up System for Party and Lobby
Matchmaking
Match State Tracking
+ A Lot Of Other Stuff
-James
Since last time, we have been entirely focused on server performance and scalability. Before I started this process, I thought I knew what architecture we'd be on and I had a working version of a dedicated server. Things have come a long way since then. I'm going to do my best to summarize the progress we've made, here!
Understand methods for server testing, like headless client soak testing
headless clients are simulated players, requiring a real connection from another computer
soak testing is the process of loading your server with clients ("players") and monitoring performance
Understand methods for monitoring performance
Create a new build of the game that is able to spawn characters for clients, without logging in, and that move around on their own.
Create scripts for launching multiple clients from one computer and connecting them to our server
Create functions for monitoring FPS, frame time, and RAM usage on the server.
Run initial tests on our DigitalOcean Droplet (server instance)
Find we're not meeting performance goals on the current server type
Extrapolate data from initial tests and find out a few things:
Servers are expensive
Game servers do not support multiple threaded processors very well, and prefer one core
Most high end x86 game servers, with high core speed, are multi threaded
ARM servers are becoming more popular for their per core performance, and they're less expensive!
Resources show that ARM Servers could potentially save us a lot of money in the long run
ARM is a different architecture than x86, which means creating a new build pipeline for the game, and updating our plugins, and rebuilding the engine! (yay 😢 )
First, we decide to move to AWS from Digital Ocean, for scalability reasons, and availability of higher core speed CPUs. (Digital ocean was very lacking)
Learn AWS deployments, EC2 instances, and AMIs
Deploy our x86 server build to AWS and monitor performance on industry standard equipment
Find that it's still expensive to run x86 AWS
Time to pursue an architecture change from x86 to ARM
I commit to rebuilding our server build for ARM which meant disassociating incompatible game objects from the dedicated server, and finding new SDKs and Plugins that support ARM
Complete and ARM build of our server
Deploy our first Graviton ARM AWS server with the new ARM build
Soak test with clients and monitor performance, while keeping pricing data at hand.
Discover that running arm will save us 25% (thousands of dollars!!!) in server costs over their lifetime
- Finally understand what servers we'll be using for a smooth experience for 50+ players, and now have cost data per concurrent user that we can use to extrapolate costs
We can afford servers, will not require immense amounts of cosmetic purchases to fund it, and we can actually launch this game.
We have a path forward for large scale play tests!
With a full understanding of our server infrastructure, we will be pushing fully simulated games with item usage and custom characters, and then optimizing performance.
We will also start to plan community playtests again with our original vision of player counts in tact 8 vs 40!!
Thank you for being here! We've been up to a lot since originally kicking off this server, but it hasn't been community facing. Looking forward to starting playtests up again, and gaining momentum into launch!
Learned how to monitor server performance, rebuilt our dedicated servers for ARM Linux vs x86, found 20% cost savings (between x86 and ARM), deployed to AWS, and found we're well within our performance goals for 50 players! We can afford to make the game!
Playtests soon!!!
-James