-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Double Damnation can already be finished fully online, on Steam and LAN
Then, why is it not advertised as such on Steam?
It even has desync as a feature, which exists in no other game in existence - this is where I spent most of my netcoding devtime (5 months?), yet why is it nowhere mentioned or promoted?
Because Forge Remastered(the netcoding framework I used) clashes with SteamP2P. The steamworks integration is buggy, but even worse, Forge Remastered has packet bugs (only noticeable at >0 ping)
Ultimately, on Steam, this means there is jitter for the client (Player2/Mage), and all packets are unreliable (unironically UDP) hence you can imagine the infinite bugs.
On LAN, there is no jitter and all packets are reliable (except streaming packets like position and input snapshots), but there are still some packet bugs:
One of the worse being code-wise that the host has to send a position snapshot each frame even if his position is exactly the same as the past snapshot, otherwise packet acks flood the network because of faulty timestamps!
tl;dr: High-Level Netcoding is complete. Low-Level Netcoding is bugged, and I must port to Mirror.
Forge Remastered is dead, so its not like devs gave up development but at least it was a complete, stable project, no.
Anyway, assuming I'm hyped to return to do some huge update on Double Damnation, I will focus on Online Multiplayer, since all of netcoding game logic is complete, and its a damn shame the transport code below is bugged because of the netcoding framework. "Swapping" low-level should be possible. Porting in Mirror must be done.
==================
Mirror Tracker below, to complete and public release Online Multiplayer
- Port to Mirror-compatible version (2019.4)
- Replicate Packet Transfer Design (aka setup NetworkManager properly and have a singleton Network Interface linked to the Game Logic, akin to NetworkCommunicatorController)
- Port all RPCs (see NetworkCommunicatorController)
- Remake Position Interpolation (now that packets are proper, and their timestamps are accurate, dont flood the damn network)
- Integrate Steamworks
- Add 12-player multiplayer!
===================
That last item may have surprised you. Believe it or not, coding more players is easier than having another player "share" the same entity. Seriously, generally speaking, all you need to do is sync a position (Vector2), and an animation/sprite (enum ushort)
And for this reason, I plan to release online multiplayer + 12 player mode, together, so its not "the exact same game with the exact same content, but with online multiplayer", but having an incredible unique new mode atop of that! A proper "ultimate" version.
WHEN?
When I get the will and desire. The hype, so to speak. Explained here