Hey there Ghost Hunters!
Welcome to our Weekly Update!
This week, we are gonna take a behind the scenes look at the problems we have faced with our multiplayer server system from our recent alpha event, as well as lay out our plans for how we hope to solve/avoid these issues as we look forward to Alpha 3! (coming soon TM)
Despite all the time as energy the development team is putting forward into working on the next Alpha, I managed to have Kite come on board with us once again to break down not only how multiplayer support for a game like MIDNIGHT GHOST HUNT works, but how we plan to address our server issues moving forward!
Hello everyone! Your friendly neighborhood Kite here.
We have a lot of big things happening behind the scenes right now - and can’t wait to show it to everyone! This week I wanted to discuss the topic of multiplayer networking! A very fun and technical topic but I’ll try to break it down.
During our last alpha test in March/April, we were using Steamworks multiplayer support with player hosted matches. (These are often called “Listen Servers”).
This, in theory, is a really nice option for us indie developers because it essentially means it incurs no costs. One person in a match is acting as host and doing all the heavy lifting so to speak.
However, it’s a double edged sword. During the last alpha, there were a lot of issues that were directly related to players with older hardware and/or poor network connections hosting a match for 7 other players.
If you’re the host, your computer has to handle a lot of calculations and keeping all players in-sync. Some multiplayer games could totally handle this with low system requirements, since 4v4 is not a lot of people and our maps are pretty small. However, you may have noticed there’s a lot of physics going on in MGH! All possessable objects can get knocked around by any and all forces.
Most games do these physics calculations locally on the client - which is to say it may not match up exactly for all players. A chair getting knocked over might fall the other direction, for example, when comparing the results from two different players.
But in our game, the physics objects need to be in sync with all players. If a chair gets knocked over, it’s got to be knocked over very similarly for all players in the match, otherwise you’ll see chairs come to life and start moving that might be, on your screen, several feet away. Not so good.
So in MIDNIGHT GHOST HUNT, the server (host) calculates all the physics and sends “transform instructions” to all the other players in the match a few times a second. These instructions are then used to move the physics object in roughly the same way as it occurred on the server.
Bam, networked physics!
As you might expect, this can cause some serious slowdowns if the machine hosting can’t handle sending all that data, especially if someone is “haunting” in a room with a lot of props.
Also known as the Alpha 2 Lag Switch.
During our next alpha test, we’re planning on testing a new solution. We’re going to be setting up a fleet of dedicated servers that spin up and spin down depending on how many people matchmake.
When you start matchmaking, it will find a dedicated server region that is in the center of all 8 players so everyone has similarly low ping. Everyone should be on an even playing field, and nobody’s experience suffers because the host player happens to have a lag spike or hits 100% CPU usage and chokes out the game.
These dedicated servers will incur some cost on our side, but we love our community, and want to make sure everyone is able to have the best experience possible!
We plan to make player hosting still available as an option so you can play private matches with your friends. Other players won't be able to matchmake into those. We’re also looking into the possibility of player rented dedicated servers - nothing definitive here yet but we know a lot of other games offer something similar.
That’s it for now - stay tuned for more information and thank you all for being so patient while Team MGH works tirelessly to make this game awesome!
As always before I sign off, I’d like to thank each and every one of you for following our progress as we work hard to deliver you a great game! We are so glad you are along this journey with us.
We are looking for Moderators! Do you have experience moderating Discord servers or Reddit communities? If so - please apply HERE!
That’s It for this week, Ghost hunters!
We hope you enjoyed this awesome and confusing look into how we are networking our game, and let’s all make sure to give Kite a pat on the back for his awesome write up!
Make sure to check out our post next week! Stay cool, Ghost Hunters.