Jojendersie / Monolith

A voxel based space simulation game
16 stars 1 forks source link

Network Transport Layer #43

Open Jojendersie opened 10 years ago

Jojendersie commented 10 years ago

Derive a protocol based on UDP to:

Wumpf commented 10 years ago

From my experience with network programming I recommend a few things warmly:

One does not simply add network functionality to a game! ;) Personally I still think that this one feature is just too much. I've seen in Skytides how difficult network programming can be even, if the whole architecture is made to be network friendly. Of course it is not impossible, but it will definitely fail if underestimated or started too late!

Jojendersie commented 10 years ago

I entirely agree with you. A network architecture must be added very early. I did it once before in ScarlettGamma and came to the solution that TCP is not the gamers choice. RakNet and ENet might offer a better protocol which is worth using one of them.

Well, what remains is the final decision: Network or not? A strategy game with at least LAN support is much better than without. But yes, it would be the most expensive task in this project.

With Network:

Without Network:

Thanduriel commented 10 years ago

Well, what remains is the final decision: Network or not?

My thoughts on this: definitely NETWORK. Our core future is a sandbox which allows the player to be creative. If you build something cool you want others to see it. If i think about about minecraft its far more fun to build on a server even so you just build your own stuff ... While in sp-action ship design errors or scripts not working as intended may be annoying, in lan.matches i can imagine them to be hilarious.

Yes, i dont know much about network programming(i already realized its not that much fun) but yet i dare to close with an ignorant statement: "It has been done before, so we can do it as well"

Jojendersie commented 10 years ago

Yes, we can.

Desgin coming soon...

Wumpf and me are trying to find a solution which will encapsulate the network such that most other things do not need to bother with this explicitly. There is a new wiki-page which will handle the details in future: https://github.com/Jojendersie/Monolith/wiki/Network-Architecture