Custom multiplayer programming

Multiplayer Gameplay

Multiplayer gameplay needs to feel synchronized between all the players which is inherently difficult due to latency over the internet. In reality everything is always de-synced in a multiplayer game, but with clever multiplayer techniques like client-side prediction, interpolation, extrapolation and reconciliation this de-sync can be hidden from the player.

Some multiplayer-designs for gameplay that can be used to handle synchronization are Deterministic Lockstep, Snapshot Interpolation and State Input-Interpolation.

Deterministic Lockstep

The gameplay is synced by carefully managed time-steps in the simulation where each time-step use the exact same inputs from each player on every client. This results in the same outcome of the simulation which then plays out the synchronized gameplay for the player. When this multiplayer gameplay design is developed correctly it is the best one out there and will make the game feel extremely responsive and synchronized. The design is extremely hard to develop though especially for games with un-predictable and complex gameplay.

Snapshot Interpolation

A multiplayer technique where the server sends the complete snapshot of the current scene in the server to the players multiple times per second. The snapshot contains the position, rotation etc. for all objects in the scene. The client then smoothly interpolates through the snapshots to play out gameplay for the player.

State Input-Interpolation

Similar technique as the snapshot interpolation but instead of sending the whole scene in a snapshot this handles each object separately and also sends un-applied inputs along with each synced state, multiple times per second. With this technique objects are synced at different rates depending on their distance / relevance to the player they are synced to. And the interpolation is actually more of an extrapolation where the inputs are played out for each object over the next time-steps until the next state is synced from the server.

Network Architecture

Around multiplayer games there are complex systems handling accounts, chat, matchmaking, scaling game-servers, grouping and clan management, etc. These systems are designed and developed in different ways depending on the needs of the specific game.

We have the capability to both design and develop multiple different styles of network architectures, from complete solutions to specific features.

Education

We give lectures around Multiplayer Gameplay, Network Architecture and Network Optimization. Both for companies and as guest-lecturers at game development schools.

Multiplayer Setup (Remote or On-Location)

More and more companies are taking the step into multiplayer and we are here to help you get setup and started with the knowledge and infrastructure you need to develop your own multiplayer games. We can help with complete setup or specific competence enhancements. Areas we handle are Multiplayer Gameplay techniques, Network Architecture design and development, Network Library integration and functionality, Network Optimization, Amazon AWS integration, SQL / in-memory database integration and management. And when you are up and running, we are here for your support whenever you need it.

We’d love to hear from you!

hello@fullymultiplayer.com

© 2020 COPYRIGHT FULLY MULTIPLAYER AB. ALL RIGHTS RESERVED.