A work-in-progress (now obsolete) online co-op mod for Haste.
Warning
Obsolete! Since Haste 1.5.0, online co-op has been added to the base game.
And so, this mod is no longer needed and now serves only as a reference for others.
When I started working on this mod, a few servers were already available for Haste, but they used separate dedicated servers and felt more like an MMO. Fun concept, but not what I was looking for. I wanted to play with friends and actually play together, not just be in the same world doing different things.
After some research, I discovered the Mycelium Networking library, which is a Mirror-like networking library using Steam for Unity. This is what I would use to implement the netcode with heavy modifications to the library so it would fit my needs.
I had to reimplement a lot of synchronization logic from scratch, as Mycelium didn't provide any components, most of which came from reading how Mirror implemented it and adapting it to work with Mycelium and Haste. Besides that, it was mostly a matter of hooking into Haste's code to add the networking logic.
All the basic features are currently implemented and working, but most of the game mechanics are still not synced.
I hope the code might be useful to someone else making an online co-op mod for a different Unity game :)
If you do, please let me know! I'd love to check it out and see what you did with it.
This project used to be licensed under the GPLv3, but is now licensed under the MIT License.