Dev Blog

Multiplayer Progress Update - August 2021

Posted By EHG_Stanzwar on August 24, 2021 (Source)

Multiplayer Progress Update

Hello Travelers, and welcome to the August multiplayer update!

I am once again excited to provide you with a status update on the development progress as we’ve made great strides since July’s Update.

The goal for this update will be to talk to each of the points I brought up last month, as well as mention some of our major goals for the coming month. It’s worth noting that we are also hard at work releasing the Sands of Majasa Update, which is currently receiving polishing touches and undergoing a heavy QA pass.

Let’s address the topics from last month:

1. Ensuring our content, up to reaching End of Time, is polished and easy to play. A major system we are to begin on is Waypointing so players can play asynchronously more easily.
  • We’ve made incredible progress here! We are now playing content together, starting from logging in from End of Time and using waypoints to travel across the eras. Quest and scene states are being polished and the town portal logic is working well. We’re still figuring out some of the logic of some side quests for example, but most work well and we’re happy with them.

2. Debugging our party system to ensure play is as smooth as possible. The last 20% is the trickiest.
  • A lot of code that was written early on for the party system was simplified and optimized significantly this month. Parties are now fully functional.
3. Planning for earlier access to one of our endgame systems in order to extend multiplayer play to make it viable for wider testing.
  • For July to August, we decided to go with the Arena system and have successfully implemented it. Playing the Arena in a party has a number of new considerations, such as the need for a voting system to progress to further waves, how to handle distributing rewards for multiple players before progressing, how a single player’s death will affect the party and ongoing arena run, and more. We crafted a voting system and are internally testing the Arena every week now in 2-3 hour sessions!

    Our highest group Arena ranking is currently Rank 53, which is very modest compared to leaderboard numbers :slight_smile: I imagine somebody will score a much higher ranking in this week’s playtest.

    How the Arena can work in a multiplayer environment is a very interesting discussion and I’m happy to field questions about it below.

4. Collecting data. We need to not only be able to monitor and track player activity to help inform good decisions, we need to be able to monitor all of our front-end and back-end systems if we want to provide you a high quality experience like other online ARPGs.
  • Progress over the last month has been steady. There are so many data points a high quality Action RPG wants to collect, and how we collect and store them is as critical as the data itself.

    We are now storing our game server health metrics on a very popular and large scale cloud service. We also successfully added player data collection for things such as class, abilities, levels, and more. Adding more data points is fairly trivial for us to do - even for things such as items.

    Our work over the next few months will be focused on interpreting and using the data to maximize online stability, and gain insights about players.
5. Optimizing our server size in order to save cost, and this comes in two major forms: server optimization, and “netcode” optimization. We are profiling our server to reduce its size online in order to allow us to put more servers on a single machine. We are optimizing our “netcode” to significantly reduce the size of the data we need to send between the server and clients, as well as optimize our gameplay code to reduce the amount of computations we send to the server in the first place.
  • In the last month we managed to reduce our server memory overhead by quite a bit (~30%). We are now in a range where it’s efficient enough to host our game servers at mass scale. We’ll continue to further optimize the server footprint up to release.

    We are constantly improving our game code to be more efficient, much in the same way we have done with our graphical performance. On this note, I may only provide updates in this department in the future when there are really significant finds!

6. Getting our idol and potion systems working server-authoritatively, so you can complete your character build (and survive!).
  • We have fully implemented potions and they are server authoritative as well. Idols are still a work in progress, and it’s not so much an issue with server authority as it is the case that idol unlock slots need to be properly synced to the client, and then all the idol affixes need a heavy QA pass and Multiplayer playtesting.
7. Scaling up to approach the ability to test more widely!
  • We doubled the amount of bare metal servers we are hosting, and are now successfully using emergency alternatives for potential sudden spikes in concurrent players.

What Are Our Goals For September?

  • More testing and optimization of the Arena experience for multiple players in a party, and advance supporting systems noted above
  • Convert the Idol System to be 100% server authoritative
  • Collect additional server performance data
  • Improve gamepad support for server-side multiplayer
  • Start preparing to add Multiplayer to the Community Tester Program. This will involve fixing many “minor” bugs that we are used to internally but would not want testers to have to suffer through :slight_smile:

With that said, we are always looking for more players who are positive, contributing members of the Last Epoch community to come and test our game before releasing to the wider public! We have a very active Community Tester group who get special access to early builds of our releases and help us make Last Epoch great.

If you are interesting in joining our Community Tester program, please submit a support ticket with your contact information!

Stanzwar