Hallo Community.
Ich habe vor, ein Echtzeit-Mehrspieler-Online-Spiel mit Unity und C# zu entwickeln. Dabei schreibe ich zwei verschiedene Server. Der Master-Server (Konsolenanwendung) verwaltet die Datenbank und vermittelt die Spieler zu den Session-Servern (Unity).
Auf der Suche nach einer Network API stieß ich auf NetworkComms, welche soweit auch funktionierte, bis ich versuchte, eine Verbindung zwischen dem Spiel und dem Session-Server herzustellen. Anscheinend funktionieren Verbindungen zwischen zwei Unity-Instanzen nicht und die API wird nicht mehr weiterentwickelt.
Als nächstes kam mir die Idee, die relativ neue Low Level Network API von Unity zu verwenden. Jedoch musste ich schnell feststellen, dass diese nur in der Engine selbst eingesetzt werden kann. Logischerweise könnte ich einfach den Master-Server auch in Unity entwickeln. Dann hab ich aber das Problem, dass ich ohne unsaubere Umwege keine MySQL-Verbindung herstellen kann, da die MySQL Library nicht mit .NET 2.0 kompatibel ist. Und abgesehen davon setze ich doch lieber auf eine Network API, die nicht von einer Game Engine abhängig ist...
Inzwischen bin ich so genervt von diesen Komplikationen, dass ich mit den Gedanken spiele, eine eigene Network API zu schreiben und diese in all meinen Projekten zu verwenden. Diese soll wie Unity's API auch Nachrichten mit verschiedenen QoS (Quality of Service) versenden können. Ich weiß nicht, wie man dieses Feature umsetzt (z. B. Reliable Sequenced Packets mit UDP versenden), bin aber gewillt, dies zu lernen.
Meine Frage ist: Ist dies sinnvoll oder ein unnötiges Neuerfinden des Rads? Und könnt ihr mir Lesestoff zu dem Thema empfehlen?