Leftgridtop
News

Rekord27.02.2010
BUG13.02.2010
Suchen Verstärkung26.12.2009
Frohe Weihnachten24.12.2009
Archiv
grid

MAP23.08.2009
Ports20.04.2009
BUG entfernt!04.01.2009
Painsound07.12.2008
Archiv
shooter
Kleiner Fehler, große Auswirkung

Puh, dass war mal wieder eine sehr lange Nacht. Eigentlich wollten wir „nur“ einen Timeout für unseren Portcheck hinzufügen. Ein Geistesblitz brauchte uns dann aber dazu den Netcode ein wenig zu überarbeiten und bis tief in den Morgenstunden dran zu arbeiten.

In den bisherigen strike2Death Versionen ist uns ein immer wiederkehrender Fehler aufgefallen, den wir uns erstmal nicht erklären konnten. Das Problem war, dass einige Spieler untereinander nicht kommunizieren konnten, sogar nichts von einander wussten, obwohl die Verbindung zum Spielerteller (Host) tadellos funktionierte.
Wir vermuteten immer, dass es an einer Firewall liegen könnte, jedoch wäre eine Verbindung zum Host dann auch nicht möglich gewesen. Dabei lag es an der fehleranfälligen Datenübertragung über UDP.
Denn wenn ein neuer Spieler ein laufendes Spiel beitritt, muss a) der neue Spieler alle schon vorhanden Spieler (Clients) erstellen und b) alle vorhanden Clients müssen den neuen Spieler erstellen.
Diese Daten sendet der Spielersteller (Host) an die anderen Spieler (Clients). Wenn dabei ein UDP Paket verloren ging, konnte unter umständen der neue Spieler von einem der vorhandenen Clients nichts wissen und ihn daher auch nicht erstellen.


Folgendes haben wir geändert:
Jetzt wird mit Kontrollen sichergestellt, dass jeder Spieler jeden anderen auch erstellt hat. Falls nicht, werden an den betroffenen die Spielerdaten erneut gesendet.

Neue Spieler melden sich jetzt direkt bei den anderen Clients an und das solange bis die Anmeldung bestätigt wird. Somit kann gewährleistet werden, dass jeder Spieler jeden anderen kennt und erstellt hat.
Nebeneffekt, der Host wird entlastet, da dieser nicht mehr alleine für den Beitritt neuer Spieler zuständig ist.

Kommentare(0) | Lukas (09.04.2007 )

Righttop