Having analysis paralysis in regards to choosing a multiplayer interpolation solution

Godot Version

4.3

Background

I’m currently on a journey to create a minimum viable product for a multiplayer shooter I’m developing. I’ve made good progress despite the hiccups, but I’ve been facing a crossroad of a multiplayer interpolation solution.

You see, I prefer implementing features in logical order. As an example:
Create server -> Have clients join the server -> Sync client actions on the server -> Etc

This way, when I encounter something I don’t know (a lot), I can figure it out by interpreting my own solution with information I learned. NOT copy pasted. If I copy paste, I really don’t know what’s happening. And if I don’t know what’s happening, I get overwhelmed. And if I’m overwhelmed, I stop working. And if I stop working, I don’t know what happening. It’s a viscous cycle!!!

Essentially, I can only work 1 step at a time. :gdsweat:

Question

Now, I’ve got 3 options in regards to interpolation/advanced multiplayer feature implementation.

  1. Netfox (Plugin that is “A set of addons for responsive online games”)
    netfox
  2. Delta Rollback (A more advanced fork of Snopek Game’s rollback plugin)
    BimDav / Delta Rollback · GitLab
  3. Learn and implement these features myself.

Now, it might seem more ideal to install a plugin, learn that plugin, then create the actual game.

However,

applying one of these plugins really disrupts my flow. I’ll have to refactor/completely reprogram my codebase and ignore most of what I learned. And If I take the time to craft my own solution via trail and terror (AHHHHH!!!), I’ll really understand what’s happening under the hood. Plus, it’ll feel like actual progression for myself.

I’m leaning on number 3, but I want a second, third, and maybe even a forth opinion on this. What do you think I should do?

Welp, I choose option number 3, if anyone was wondering.

I feel that implementing features myself makes me truly understand them. Plus, I just figured out how to create fully server-authoritative multiplayer.

btw, neither of these plugins are really meant for shooters. Rollback is generally used for fighting games with peer to peer elements. Most shooters basically copy Quake’s net-code which has a completely authoritative server and client-side prediction. The difference is that shooter servers don’t “rollback” if an input arrives late. Instead, any late input just gets dropped (which is useful for performance and fairness). Read through at Introduction to Networked Physics | Gaffer On Games (not as a tutorial, inspiration only) it’s a very thorough explanation of the problems.

2 Likes

Glad I made the right choice. I’ll give that article a read.

@gaboot
Another question. What foundational networking features would you say a third-person shooter needs?