Given this thread is what google finds when searching for GGPO in UE…
Yeah, GGPO solves really small part of the whole problem. You need to store and send inputs with the frame number and predict them on the other side. That’s basically all. If you press jump at frame 12, add net delay and it arrives at the other client at frame 15, the client deterministically reruns frame 12 with said input and recalculate frame 13, 14 and 15 from that. The bold part has nothing to do with GGPO, but with deterministic state of the world. It makes no sense to do it that way, if your underlying simulation isn’t deterministic. When you understand that, you’ll also see that the GGPO isn’t that big of a library and doesn’t solve that big of a problem.
The underlying state of the world, the ability to resimulate the game, the ability to store replays as a list of inputs and so on… these things aren’t handled by GGPO and cannot be easily made in the UE.
I’m thinking about doing something like this (for cars), but if I do, I’ll pretty much have my own positions/collisions in my own “console application” and just update actor positions each frame accordingly.