Du bist nicht angemeldet.

  1. Übersicht
  2. » Schwarzes Brett
  3. » OpenHV
  4. » Eine Antwort schreiben

Eine Antwort schreiben

Schreibe deinen Beitrag und versende ihn
Beitragsoptionen
Bist Du ein Mensch oder ein Roboter ?

Verifizierung, dass diese Aktion durch eine reale Person vorgenommen wird und nicht von einem Programm.

Zurück

Themen-Übersicht (Neuester Beitrag zuerst)

Milanium
30.03.2022 05:41

https://github.com/OpenRA/OpenRA/blob/bleed/OpenRA.Game/Support/MersenneTwister.cs existiert aus dem gleichen Grund.

Ronny
29.03.2022 22:33

Das sich Datenfehler bei der Uebertragung einstellen haette ich erstmal fuer sehr unwahrscheinlich gehalten - ausschliessen sollte man aber nie etwas.

Interessante Anekdote: TVTower ist ja in BlitzMax (NG) geschrieben. In BlitzMax Legacy/old/vanilla gab es einen Pseudo-Random-Number-Generator der eben nicht auf allen Plattformen (bzw "Computern") die gleichen Ergebnisse garantierte. Mit Xoshiro-PRNG war das zumindest fuer mich (bzw BlitzMax NG) Vergangenheit.


Da mich das Thema Multiplayer interessiert, wuerde ich mich ueber "Naehkaestchen-Stories" freuen - man lernt ja nie aus.


bye
Ron

Milanium
29.03.2022 15:30

Die gesamte Logik verwendet nur Ganzzahl Mathematik. Die Spielengine ist in C# geschrieben. Lua wird nur für Missionsskripte verwendet und darf auch nur eine streng limitierte API benutzen. Wir haben tatsächlich einen Sync Hash für jeden relevanten Parameter und noch einmal über alles, der berechnet wird, um festzustellen, ob das Spiel noch synchron ist. An das Netzwerkprotokoll haben sich bislang nur wenige Leute herangetraut. Es kommt bei Änderungen leicht zu schwerwiegenden Regressionen. Die Spielerzahl und die Anzahl an Rückmeldungen, wenn irgendwas schlimm kaputt ist, kann dann Fluch oder Segen zugleich sein.

Ronny
29.03.2022 14:01

Danke fuer die Statistik-Links. Hier bei TVTower gab es leider keinen einstimmigen Tenor bezueglich (opt-in) Statistikerhebung ... also hab ich das entsprechend auch noch nicht weiterverfolgt.

Von den 50k-Downloads fuer OpenRA im Jahr 2017 sind wir aber noch weit entfernt ... also zumindest von unseren Servern (respektive nun Github).



Bezueglich Lockstep ... vielleicht huscht ja doch noch irgendwo eine Gleitkommazahl durch die Engine ... könnte den Desync erklaeren. Wenn ihr Lua nutzt, dann sind dort ja "Double" im Einsatz (in Lua "number"). Auch wenn Lua immer meint, da gibt es keine Fliesskomma-Unbestimmtheit (1.99999997 hier, 2.0000003 bei jemandem anders) bin ich mir da nicht sicher.

Wir hatten hier schon so einen stupiden Fehler ... den ich hier partout auf keinem Testrechner nachvollziehen konnte und irgendwie nur von 2 Leuten gemeldet wurde.  Ein int() cast machte halt bei uns aus 2.00003 eine 2, und nur bei den zweien aus 1.99999997 dann ... 1 (oder aehnlich).
Immer tricky sowas aufzuspueren.

Je nach Komplexitaet der Daten koennte ein "Hash" der Spieldaten helfen, solche Fehler zu finden - und bei Abweichungen "granular" die Werte zu vergleichen und so festzustellen, an welchem Objekt es hapert.
Aber was red ich hier da ueberhaupt drueber - bei TVTower hab ich noch gar nix davon hinbekommen. Da muesste erstmal Aktion und Reaktion entkoppelt werden (also "Film kaufen" vs "Filmkauf abschliessen") sonst ist nix mit "Command" pattern gw_smiley_zwinkern



bye
Ron

Milanium
28.03.2022 19:09

Ja, es ist Lockstep und ja alles was nur auf einer Maschine ausgeführt wird, den falschen Random Seed benutzt oder nicht als Order im Netzwerk übertragen wird, führt zum Desync. Ist teils schwer einzugrenzen.

Wir haben https://www.openra.net/players/ und https://www.openra.net/news/2017-01-stats-post/

Ronny
28.03.2022 12:27

Ich schaetze mal, dass OpenRA lockstep nutzt (also alle Spieler auf die Simulations/input-Ticks synct)?

Desync klaenge da nach nichtdeterministischem Verhalten ... vlt ein Lua-Script was aus der Reihe tanzt.


Habt ihr Nutzerzahlen? Bei TVT gehen die Spielerzahlen ja auch maximal ins irgendwas-vierstelliges.


bye
Ron

Milanium
27.03.2022 14:07

Ja, technisch gesehen handelt es sich eigentlich "nur" um einen Total Conversion Mod. Die Engine ist dabei nicht geforked. Alle Verbesserungen fließen in das OpenRA Mutterprojekt zurück. Mehrspieler ist in der Tat ein schwieriges Thema. Der Grund, dass schon länger keine stabile Version mehr erstellt wurde, liegt etwa daran, dass schwer zu diagnostizierende Desynchronisationsfehler die wenigen freiwilligen Entwickler plagen.

Ronny
27.03.2022 13:24

Interessant.

Seid ihr auch mit an der OpenRA-Entwicklung beteiligt? Das Thema Multiplayer/Netzwerk ist fuer mich ja noch ein "ToDo" bei TVTower(.org).


bye
Ron

Milanium
26.03.2022 17:47

ist ein Echtzeitstrategiespiel mit Science-Fiction-Thematik in Pixel-Optik. Enthalten ist Mehrspieler (LAN und internet) eine faire KI für Geplenkel sowie ein integrierter Karteneditor. Der Quelltext, alle grafischen Elementen, Musik und Sounds unterliegen einer Open-Source-Lizenz. Das Projekt lädt sehr offen zum Modding ein.

unknown.png

Unter https://openhv.github.io gibt es eine Übersicht über Bezugsquellen und Community.