Dorfzentrumplatz

» Siedler Map Source Forum » Siedler DEdK Script Forum » Dorfzentrumplatz

Seiten: Zurück 1 2

Stroke1984
#26
14.01.2017 20:50
Beiträge: 15

Zitat von yoq:
...
Im MP Spiel: Irgendein PC muss "vertrauenswürdig" sein, typischerweise ein Server des Unternehmens. Da bei S5 der Host ein Spieler ist, wäre es vernünftig zumindest diesen als zuverlässig zu betrachten.
...


Dem kann ich mich nicht anschließen. Nur weil es jemand geschafft hat den port 7073 für TCP weiterzuleiten macht ihn das nicht vertrauenswürdig. Im Gegenteil - die Tatsache, dass man es schafft einen Port weiterzuleiten zeigt, dass man mehr Wissen besitzt als andere - zugegeben der Info-Gehalt ist nur marginal höher (und soetwas sollte wirklich kein "Achievement" sein, dennoch hört man oft von Problemen damit - somit würde einen das "vertrauensunwürdiger" machen.

Im allgemeinen dürte man nur Sachen synchronisieren, die auch Nachprüfbar sind (was bei einem Guten Konzept - und damit einer sinnvollen Synchronisation - KEIN Hindernis ist)
Beispielsweise eine dritte Heldenfähigkeit:
Spieler 1 drückt auf den neuen Button ... sync ... check (synchronisiert) ist synced-Entity am Leben, ist der Cooldown ok, ...
Nachteil ist natürlich die nicht so flexible Synchronisation - dennoch erhält man dafür sicherheit und das zu kleinem Preis.

@yoq: Mag ja sein, dass man sich seit Jahren kennt, trotzdem würde ich den meisten nicht trauen - Würde ich bswp. ein Executeable ausführen, das mir ****** geschickt hat? - Nein. - Zumindest nicht ohne es auf Viren zu überprüfen, das gleiche Prinzip gilt für den Multiplayer - klar kenne ich die Leute, aber vertraue ich ihnen deswegen? Nö. Wir haben alle unsere Leichen im Keller, die einen haben eben nur mehr als andere.

@MadShadow: Siedler lässt sich doch schon laggfrei spielen siehe GameRanger, LanSpiel oder Spiel mit "direct connect zu IP" ohne Server. Ich hab mich zwar nicht damit auseinander gesetzt aber ich denke, dass das Spiel über das Internet (=ubi.com) so umgesetzt ist, dass es automatisch zu dem 2 Sekunden lag kommt, da von den Paketen erwartet wird, dass sie innerhalb von 2 Sekunden kommen und dann erst ausgeführt werden. Braucht eine Paket + Antwort länger als 2 Sekunden => Hängen.
Im LAN sollte diese Zeitdifferenz weit niedriger angesetzt sein.

Der vorherige Absatz ist natürlich nur eine reine Hypothese.
Testen ließe sich das ganze durch z.B. Hooken/Wrappen der (Win)Sockets.

Zitat von jojo818:

Das Ganze hilft nicht wirklich, da der, der mit Debugger starten will einfach das Script austauscht



Es hilft solange du luac nutzt, suche dir aber zur sicherheit einen custom precompiler, da der "standart" für Lua 5.0.2 leicht zu entschlüsseln ist.


Nein - luac hat und wird nie helfen. Customimplementierungen können auch nichts an dem Format ändern. Globale Variablen bleiben IMMER Global, da man nicht weiß in welchem Kontext das File ausgeführt werden soll. Somit lassen sich nur kleine Teile - lokale Funktionsnamen, lokale Variablen, etc. - unleserlicher machen - in meinen Augen sinnlos, da dem Code leicht etwas hinzugefügt werden kann.


Kleine Frage am Rande - GUI-Callbacks synchronisieren - sprechen wir dabei noch von Custom-Funktionen oder von Sachen die mit z.B. GUI.SellBuilding synchronisiert werden?

Btw: Der Abreißbug war füher nur ein paar Leuten bekannt - die Stillschweigen darüber gehalten haben - später kam es raus und viele haben ihn seitdem genutzt - zu nichts gutem. Security through obscurity mag umstritten sein - dennoch ist es ein Silberstreifen am Horizont über trister Realität.

Dieser Beitrag wurde von Stroke1984 am 14.01.2017 um 20:59 editiert.

mcb
#27
18.01.2017 12:43
Beiträge: 1472

Zitat von Stroke1984:

Kleine Frage am Rande - GUI-Callbacks synchronisieren - sprechen wir dabei noch von Custom-Funktionen oder von Sachen die mit z.B. GUI.SellBuilding synchronisiert werden?

Btw: Der Abreißbug war füher nur ein paar Leuten bekannt - die Stillschweigen darüber gehalten haben - später kam es raus und viele haben ihn seitdem genutzt - zu nichts gutem. Security through obscurity mag umstritten sein - dennoch ist es ein Silberstreifen am Horizont über trister Realität.



Sorry, hab deinen Post übersehen.
Ich spreche davon, zusätzliche Buttons hinzuzufügen (und alte zu ändern) um den Helden komplett neue Fähigkeiten zu geben. Würde ich das ganze irgendwann mal für MP nutzen wollen, müsste ich die neuen GUI-Callbacks natürlich irgendwie Synchronisieren.

Was für ein Abreißbug? Wieder irgendwas MP-Spezielles?

Settlerman
#28
18.01.2017 13:54
Beiträge: 238

@mcb PN

yoq
#29
18.01.2017 20:41
Beiträge: 91

Die Strategie "jeder Client prüft jede Aktion nach" klingt auf den ersten Blick gut, doch sobald Timing eine Rolle spielt (zB wer zuerst einen Punkt auf der Map erreicht, bekommt Güter) muss es einen PC geben, dessen Meinung zählt - und der bei Widersprüchlichkeiten eine Entscheidung trifft die für alle gilt. (eine solche Situation kann leicht durch unterschiedliche Pings / lokale Lags entstehen)

In dem Sinne war auch mein "vertrauenswürdig" gedacht, soziales Vertrauen, ein Spieler den die Community kennt, und von dem man annehmen darf, dass er nicht versucht zu cheaten.

Zu den Lags bei ubi.com: kann ich mir nur schwer vorstellen, ubi.com ist eigentlich nur ein Vermittler und informiert die Clients über die IP des Hosts. Alles weitere läuft wie ein normales Spiel direkt zwischen den Clients, ubi.com macht bis auf ein paar STILLALIVE Pakete (um den Spieler in der Lobby zu halten) nichts mehr während des gesamten Spiels nicht. Falls es dich interessiert, ich habe nachdem Ubisoft angefangen hat Server abzuschalten das ganze nachgebaut: https://bitbucket.org/settlersdev/s5online. jojo818 betreibt damit einen Server: Thread

Ich würde eher schätzen die Lags kommen daher, dass Spieler mit 50kbits Upload hosten

edit: Falls ihr euren Bug nicht mit Lua in den Griff bekommt, könnte ich mir den evtl. mit S5Hook vorknöpfen

____________________
S5 & S6: Lua Script Debugger (Thread) | bbaTool
S5: S5Hook (Thread) | S5 GUI Editor | S5 Grafikupgrade + nVidia fix | Win10 Creators Update

Dieser Beitrag wurde von yoq am 18.01.2017 um 20:57 editiert.

Stroke1984
#30
19.01.2017 16:24
Beiträge: 15

@yoq das ganze mit dem s5hook umzusetzen würde das ganze meiner Meinung nach nur komplexer und noch undurchsichtiger machen. Ich denke die beiden Ideen pattern-matching oder lokales überschreiben sind da das passendere Mittel der wahl.
Zum MP durch die Tribute ist es schon synchronisiert, das heißt es muss keinen bestimmter mehr geben. Ein bestimmter wäre unter bestimmten Voraussetzungen sogar gar nicht möglich zb. Ort erreichen. Da kann der bestimmter auch nur auf die Reihenfolge der Tribute gehen. Und das geht dann auch global.

Zum Ubi lag: irgendwas muss es damit aber auf sich haben, da im LAN (VLan oder auch VPN) oder bei direktem eingeben der IP ("globale" IP) des Hosts die Lags deutlich! kürzer ausfallen vllt. 0.5 - 0.8 Sekunden statt 2+. Ich habe mir zwar den netcode nicht angesehen, dennoch bin ich davon überzeugt, dass andere Spieler und ich das nicht nur so wahrgenommen haben.

Edit: kleiner Nachtrag zum Vertrauen: ich habe schon öfters ohne Regelset spielen wollen, weil mir das einstellen oft zu lange dauert. Hat auch nur einer zugestimmt die Regeln mündlich auszumachen? Nö. Lieber stellt man dann 10 Minuten ein und startet dann halt beim verklicken nochmal. Soviel zum Thema Vertrauen.

Dieser Beitrag wurde von Stroke1984 am 19.01.2017 um 16:34 editiert.

yoq
#31
19.01.2017 19:04
Beiträge: 91

Ich meinte den Abrissbug? nicht die MP Synchronisation. Eval ist immer eine Katastrophe, ich sehe da vielleicht einen halben Vorteil (schnelles Skripten) und 10 Nachteile ; )

Ich hab es gerade mal getestet, es läuft bei den Tributen eh so wie ich geschrieben habe, der Host entscheidet die Reihenfolge (und seine Events sind immer zuerst dran)

Edit: wo kannst du in S5 eine Host IP eingeben?

____________________
S5 & S6: Lua Script Debugger (Thread) | bbaTool
S5: S5Hook (Thread) | S5 GUI Editor | S5 Grafikupgrade + nVidia fix | Win10 Creators Update

Dieser Beitrag wurde von yoq am 19.01.2017 um 22:25 editiert.

MadShadow
#32
19.01.2017 21:58
Beiträge: 372

@Stroke
Regeln mündlich absprechen? Also ohne regelskript spielen? Würde dann auch bedeuten mit abreissbug und ohne einige andere Features zu spielen. Die meisten maps sind ja so voreingestellt, das man lediglich Start drücken muss. Selbst wenn man 10 min brauchen würde um alle regeln einzustellen, ist das eine geringe zeit im Vergleich zur Spielzeit die oft 1,5h + beträgt. Früher hat man teilweise sogar 2h darauf warten müssen das überhaupt mal genügend Leute da sind und nicht andauernd plötzlich jemandem einfällt das er noch schnell zum Essen muss.

@yoq
abreissbug ist schon seit langem gefixt, im regelskript von anarki.
Direkt verbinden kann man sich mit einer Funktion aus dem XNetworkUbiCom table. Set server ip oder so.

Stroke1984
#33
20.01.2017 15:39
Beiträge: 15

Zitat von MadShadow:
@Stroke
Regeln mündlich absprechen? Also ohne regelskript spielen? Würde dann auch bedeuten mit abreissbug und ohne einige andere Features zu spielen. Die meisten maps sind ja so voreingestellt, das man lediglich Start drücken muss. Selbst wenn man 10 min brauchen würde um alle regeln einzustellen, ist das eine geringe zeit im Vergleich zur Spielzeit die oft 1,5h + beträgt. Früher hat man teilweise sogar 2h darauf warten müssen das überhaupt mal genügend Leute da sind und nicht andauernd plötzlich jemandem einfällt das er noch schnell zum Essen muss.

Es gab ja auch eine Zeit vor Anarkis Regelskript. Da hat auch alles weitgehend gut funktioniert, bis auf die Erstspieler die sich nicht getraut haben zu Fragen was denn "5er", "2er" oder "4er" sind. Aber die haben das Spielgeschehen sowieso nicht beeinflussen können. Mag sein, dass einige schlecht organisierte Leute "früher" (wann denn?, nenn mir doch ein Jahrzehnt) lange auf Spiele warten mussten, dennoch ist das ja wohl kein Grund es noch weiter zu verzögern. Und die ganzen Erbe Spieler sind sowieso außen vor - da gibt es nämlich kein Regelskript und da hat auch alles geklappt.

Der Abrissbug war für mich persönlich nie ein großes Problem. Es ist ja leicht in der Statistik ersichtlich wenn es jemand macht. Außerdem gibts ja noch andere Anzeichen - Mikrorukler, wenn es jemand übertreibt, die "gestackten" Effekte usw.

Die anderen "Features" wie Türme bei Mapstart - verschandeln toller Maps? Oder Ausdünnung (Tosca 4er, 5er) muss nicht sein, da hätte ich lieber ohne Regelskript gespielt. Leider stand das nicht in meiner Macht.

Zitat von MadShadow:
...
abreissbug ist schon seit langem gefixt, im regelskript von anarki.
...

Zum Abrissbug - ja Anarkis skript hookt die Funktion (lokal!), ein Fix sähe aber anders aus (global). Alles was es bisher gibt sind nur Workarounds. Ein Fix wäre weitaus tiefgreifender und würde wohl an der Netzwerkverbindung bzw. eine der verarbeitenden Funktionen ansetzen.


@yoq Achso der Abrissbug über S5Hook wäre eine feine Sache - global gültig. Aber MP-Synchronisation über den S5Hook hätte auch was . Aber dafür müsste man wohl einen externen Launcher anbieten, oder ist Assembler so spannend? *grins*

MadShadow
#34
20.01.2017 18:23
Beiträge: 372

Zitat von Stroke1984:
Mag sein, dass einige schlecht organisierte Leute "früher" (wann denn?, nenn mir doch ein Jahrzehnt) lange auf Spiele warten mussten


Irgendwann nach 2013 war es häufig so dass nicht mehr soviele Spieler online kamen und man teilweise wirklich lange auf Spiele warten musste.

Zitat von Stroke1984:
Der Abrissbug war für mich persönlich nie ein großes Problem. Es ist ja leicht in der Statistik ersichtlich wenn es jemand macht. Außerdem gibts ja noch andere Anzeichen - Mikrorukler, wenn es jemand übertreibt, die "gestackten" Effekte usw.


Wenn man es darauf anlegt, dann kann man das buggen gut verstecken so dass es deutlich schwerer zu erkennen wird. Problematisch ist dass der Bug auch mal ausversehen ausgelöst werden kann.

Zitat von Stroke1984:
Die anderen "Features" wie Türme bei Mapstart - verschandeln toller Maps?


Ich denke du meinst, dass die Starttürme nicht abreissbar sind? Ich frage mich auch warum es diese Option gibt und was man damit bewirken wollte. Wenigstens mal jemand der die Multiplayermaps nicht hässlich findet Dafür gabs ja immer viel Kritik.

Stroke1984
#35
20.01.2017 19:51
Beiträge: 15

@MadShadow Habe gehört, du bist derzeit für dedk.de zuständig, wann wir denn die Seite wieder online sein?

MadShadow
#36
20.01.2017 20:41
Beiträge: 372

@Stroke1984
Zuständig ist nicht ganz das richtige Wort, da ich nicht verantwortlich dafür bin dass die Seite möglichst bald wieder läuft, aber es stimmt, ich habe die Möglichkeit die Seite zu bearbeiten.
Angeblich hat das Framework mit dem dedk.de erstellt wurde Sicherheitslücken und kann deswegen nich mehr verwendet werden. Jetzt muss dedk.de neu gemacht werden und dafür habe ich im Moment keine Zeit, da meine Prüfungen anstehen. In 2 Wochen könnte ich eventuell ein wenig was machen, allerdings stellt sich auch die Frage ob man Funktionen wie das Forum überhaupt noch braucht, in Zeiten von Skype/TS/Discord.

Seiten: Zurück 1 2

SiteEngine v1.5.0 by nevermind, ©2005-2007
Design by SpiderFive (www.siedler-games.de) - English translation by juja

Impressum