This week’s devblog will give a quick update on the progress so far with Multiplayer and Networking testing.
Multiplayer Setup
The first goal was to simply get at test build running on a cloud server and allowing multiple clients to authenticate and connect. I was able to get that working in fairly short order, but then comes the more difficult part of syncing up movement, animations, and all the various combat systems and UI components. I’ve done a lot of work to try optimizing the number of network calls that get made rather than blasting out every value to sync multiple times per second. This required a lot of code refactoring with the functions that were initially created for local use, but I’m pleased with the performance results so far. Here’s a first look at the multiplayer testing with me two-boxing a couple of networked clients over cloud build:
Loot
The loot system also received a significant overhaul to accommodate networked need/greed rolling for group loot. From both video previews, you can see the roll results appearing in each client’s chat window, and only the high roller receives the respective item. A player can either select the coin icon for a greed roll, or the sword icon for a need roll, with need rolls obviously taking preference. If a player does not make a selection before the loot timer for a given item expires, a greed roll will be assumed. If a player is not grouped, the roll sequence will be skipped and the gear will immediately be rewarded to the player’s backpack or stash, whichever they choose.
Group Combat Testing
After getting basic movement, animations, and combat synced, I expanded the multiplayer testing out with 4 clients and some more complex NPC engagements. Overall, these tests went really well and the clients were able to receive the needed combat information, determine the correct order of events, and appropriately reflect the details of these engagements in each client’s UI. This testing helped to identify a few other areas that needed some tweaking, such as damage over time spell tracking, health and mana regen tick rates, and some spell effect instantiation. I also rigged up a few of my new models to test some new NPCs against multiple players. Here’s a look at a 4-man group vs. the new Treant miniboss:
Next Steps
Next, I’ll be finishing up some code refactoring to allow networked clients to see other players changing gear and updating their stats. I also plan to start working on backend services to link characters to accounts, improve the authentication services, and begin tracking character data for persistence. The account and character functions will all eventually be rolled into the login, character creation, and character selection windows that I previewed back in Devblog 5. From there, I’ll be working on the player cities, starting areas, and matchmaking for several game events.
We’re nearing ever-closer to a full gameplay loop and persistence, which means the start of pre-alpha testing. If you’d like to participate and get a first look at the game, just Register with the site and you’ll automatically have a saved spot in line. I’ll only be taking a small number of initial testers, and early registrants will get the first shot at free keys.
Thanks for reading! If you’d like to get involved in discussions on the game’s development, feel free to head over to our Forums or join us on Discord!