Originally Posted by
Gorman
I have seen other games simply release the server software, then people can point the client at the server they want to connect to. Yes this isn't true p2p, but it is user hosted servers which is a big step up. If ongoing running costs are an issue, this is one of the first things I would do.
I've worked on networking in industrial simulation before, and I would say that in a high trust environment networking is super simple even if the domain is complex. It does depend on how well the codebase separates concerns, but chopping out the server code and pasting it into the client project is certainly not an impossibility. I worked on a project doing the opposite, chopping out the core from a p2p piece of software and moving it to a centralised server - going the other way is actually easier because you don't have to modify the existing client code at all - the local client can join via local host using the same comms as it would have done remotely.
Well, you have read the repo, I have not, so maybe it's not built in a way that makes re-engineering easy. But in general there is no technical reason why changing the architecture from centralised to p2p is difficult.
My posts were mostly written up with an assumption that Toribash codebase is never made public and the scenario where the community attempts to get it to work all on their own. Of course when you have direct access to source code it completely changes the picture (as I've already mentioned in the same post you quoted), though why would you need to implement p2p networking in that case when you can just build and run the server whenever you need. It's certainly possible, but like... why?
Re costs: open sourcing server code doesn't make a lot of sense financially imo as running the game server machine on its own has always been the lowest of Toribash expenses, and parts that do cost money cannot be really decentralized. It might happen at some point, but I probably wouldn't expect it while Toribash / Nabi are still running as a business.