Hi,
ich nutze für ein Multiplayer-Spiel
Narses' NBFP-Komponenten.
Dabei benötige ich eine Art Handshake, um sicherzustellen dass Client und Server wirklich die gleiche Protokollversion sprechen.
Narses selbst hat sowas im Tutorial zwar rudimentär drin, aber das funktioniert eben nur wenn beide Seiten wirklich wissen was sie tun.
Momentan handhabe ich das so, dass ich Statemachine-Artig nach dem Verbindungsaufbau 2 Sekunden Zeit lasse, in denen bestimmte Pakete ausgetauscht werden müssen. Das ist nur weder sonderlich schön, noch wiederverwendbar (für die reine Server-Statusabfrage steht der gleiche Code nochmal da...). Dass es dann Probleme gibt falls einer der Peers erst noch eine Firewall-Regel anlegen will und das Aufbauen der Verbindung deswegen länger dauert, dürfte klar sein.
Wie macht man sowas "richtig"? Ich will dem User ja auch eine "meaningful error message" geben können, also einfach so Verbindung zu machen ist auch doof.
Dass da ein NBFP-Protokoll ist wird ja vom Protokolladapter schon verifiziert, aber das schließt ja nicht aus dass Client und Server ganz andere Spiele sind.
Ideen werden immer gern genommen...
Sebastian
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."