• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Weiterführung der Diskkusion über CM Systemarchitektur

Baertram Beerbaum

Aktiver Nutzer
alter Thread:
http://www.slinfo.de/vb_forum/allgemeines-zum-rollenspiel-sl/58730-neue-cm-idee.html?post1135088

Sylvie Munro hat darin behauptet, dass man sichere und effiziente CM Systeme nur als geschlossenes System entwickeln und anbieten kann.

Mir schwebt aber eine open source Lösung vor. Dabei liegen dann natürlich alle Schnittstellen offen.
Ich denke es ist alles eine Frage der Systemarchitektur.

Da es sich bei dem system um ein rundenbasiertes handlen soll welches ausdrücklich nicht die Bewegungen und Treffer der Spieler auswertet ist es weder Zeitkritisch noch nutzen einem selbst gescriptete Waffen etwas.

hier mal Ein Versuch einen Komunikationsablauf aufzuzeigen

- Spieler A trift Spieler B
- Emote Vorspiel beginnt, man entschließt sich zum Kampf
- Die CM der Spieler nehmen Kontakt miteinander auf. (bis dahin hören sie nur auf den Besitzer)
- die CM einigen sich auf eine Master slave Rolle Das Master CM Triggert den Kampf (zufall, der Angreifer ist slave, etc)
- die CM fragen ihre Owner nach der Kampaktion, evtl über dialogfenster. (bsp. Spieler A Messerattacke, spieler B Zweihänder)
- nun sehe ich zwei Möglichkeiten, entweder das CM rechnet selbst, oder aber und diese Lösung finde ich besser,
das Master CM nummt Kontakt zu einem Server auf. Ob nun via Realy wie bei DCS oder direkt, muss man schauen.
-der Server würfelt die Aktion anhand der Charcterinfos und der Wertetabellen durch und gibt das Ergebnis an das Master CM zurück.
(hier bin ich mir nicht ganz sicher ob es evtl besser Wäre wenn beide CM mit dem Serverkommunizieren.
- die zurückgegebenen Infos werden den Spielern mitgeteilt und in ihre TP Anzeige eingerechnet.
- diese haben Zeit das Ergebniss zu emoten (evtl) Zeitschleife einbauen)
und die Nächste Runde beginnt.

Am Ende eines Kampfes verkünden beide CM auf ihre Weise das Ergebnis.
Bei Unstimmigkeiten könnte automatisch ein Datenlog an den server gesendet werden, von beiden, Das kann dann vom GM mit den gesendeten Daten des Servers verglichen werden. Wer keine GM hat kann sowas über eine HP auch ganz öffentlich machen.

im Verlauf der entwicklung wäre es schön wenn die gewählte Kampfaktion einen Animationsablauf startet. Wenn es sehr gut wird, könnte dieser sogar das ergebnis anzeigen. Waffentreffer oder der gelungene Magieeinsatz.
Ich denke man sollte so etwas mit einplanen aber erst in späteren stufen einbauen.
Genau wie es möglich sein sollte, das es Gruppenschlachten gibt.
 
Hmmmmmmm bei so was müssten dann aber viele Variable beachtet werden

-Angriffskraft (Waffe+Kämpfer)
-Angriffsgeschwindigkeit (Waffe+Kämpfer)
-Kleidung / Rüstung / Schild / Verteidigung (wobei Rüstung Schild usw. die
Angriffsgeschwindigkeit schon wieder beeinflussen)
-Bei Pfeilen die Entfernung und der Bogen
 
Wie wäre es mit einer Mehrschichtarchitektur
a) CM Server - evtl. als Webservice
b) CM Client/HUD rein zur Visualisierung
c) CM Waffen -> reine Gattungsdaten als Config .. Wirkungen im CM Server

Bei dem System wäre die ganze Logik und Verwaltung im Server, der für alle gleich ist.

Man müsste dann Schnittstellen zwischen
a-b a-c b-c definieren und dann könnte jeweils eine(r) an
einem der Module arbeiten

evtl. als Komponente d) einen Status/Logmonitor wo man
das Geschehen tracken kann .. der könnte über Mediatextur
als Webseite angezeigt werden und wäre dann für alle sichtbar
 
Der Server sollte kein LSL sein, weil da zuviel Infos auf einmal bearbeitet werden müssten und auch zwischengespeichert, ich würde hier eine externe Lösung bevorzugen .. die dann aber gehostet werden müsste

Es sollte möglichst viel Logik in die externe Schicht gelegt werden... die dann zentral verwaltet wird. Der Hoster müsste natürlich vertrauenswürdig sein und kein potentieller Cheater.
 
Beertram, das ist erheblich einfacher lösbar. Da SL ein visuelles Medium ist, kann man es auch so nutzen. Beispiel:

Es gibt, wie bisher auch, Waffen und eben den CM.
Entschließt man sich, zu kämpfen, wird die entsprechende Waffe gezogen. Von nun an ist sie aktiv und kann Daten mit dem CM austauschen.

Jetzt wird die Aktion ausgeführt (Emote): Die Waffe triggert daraufhin eine Animation und teilt dies dem CM mit.
Der CM errechnet nun, ob ein Schaden erfolgte oder nicht.

Die Waffen selbst hätten dann Werte wie Schaden, Tempo, Gewicht, Reichweite etc., die als Parameter mit einfließen.

Problem dabei: Mit reinen Emotes kommt man da nicht sehr weit. Wenn Rundenbasiert, stelle ich es mir so vor, dass man zu Beginn einer RUnde 2 Möglichkeiten hat: Defensive oder Offensive. Je nachdem sind verschiedene Aktionen wählbar.
 
Es sollte möglichst viel Logik in die externe Schicht gelegt werden... die dann zentral verwaltet wird. Der Hoster müsste natürlich vertrauenswürdig sein und kein potentieller Cheater.

Natürlich nicht.

ich Denke eine entwicklung beginnt mit den Lastenheften.

für das CM selbst, die Animationen, den Sound die Licht Effecte, der Software bzw den scripten für den externen Server inkl der Tabellenstruktur. Optimal wäre eine PHP Lösung die selbst auf 1&1 servern laufen würde.

Dann wäre es sicher hilfreich einige Tabellen Presets zu machen.
Darunter verstehe ich klassen - Rassen Fähigkeitstabellen für verschiedene Szenarien.
Außerdem kann sowas den späteren nutzern helfen schnell eine default Konfiguration zu haben.

Als Ergänzung müssten dann alle Schnittstellen abgesprochen werden.

Dann wird die Arbeit aufgeteilt und wie üblich abgearbeitet und in wikis dokumentiert.

Letztres wäre mir ein großes Anliegen.

Das ganze als open source als große Gemeinschaftsproduktion.
 
@Sylvie

weshalb möchtest du die Waffe miteinbeziehen? ich würde nur waffenkategorien nutzen,
zB. dolch, Kurzschwert, langschwert, Axt, Zweihänder,......, SchusswaffeA, .....SchusswaffeB.

Diese Lassen sich viel komunikationsärmer direkt im CM verwalten oder gar gleich auf dem Server.

Natürlich kann es vorkommen das der dumme Spieler nun eine AXT wählt und visuell einen Dolch führt. doch nur um das zu verhindern eine weitere Komunikatiosschicht einzuführen empfinde ich als Resourcen Verschwendung. Und du hast unter diesen Gesichtspunktenauch Recht mit dem geschlsossenen System. Wenn jeder Waffenbauer die Eigenschaften seiner Waffe festlegen kann, ..... brauchen wir nicht diskutieren.

Wenn die Verwaltung in der Serversoftware außerhalb von sl untergebracht ist, die CMs nur untereinander und mit dem Server das notwendigste komunizieren und die Verläufe dann sozusagen öffentlich sein können ist ein Cheaten kaum möglich, außer für jene welche Zugang zum Server haben.
 
Genau:

- Sämtliche Tabellen, Werte im Server
- Kommunikation protokolliert und nachvollziehbar
- wichtige Ereignisse in ein öffentliches Log welches jeder Beteiligte einsehen kann
 
Bei einem Server außerhalb von SL hört's schon wieder auf. No way.

weshalb möchtest du die Waffe miteinbeziehen?
Weil es logisch wäre? Weil es Individualität fördert, auch die geschlechtliche? Weil es die Verarbeitung EXTREM vereinfacht und beschleunigt?
Wozu eine irre komplexe Waffenkategorie-Verwaltung, wenn man mit wenigen Eckdaten mehr auf einfachere Art und Weise erreichen kann?

Und wie schon erwähnt: SL ist ein visuelle Medium. Wenn da einer mit einem Dolch steht und eine Axt emotet, ist das einfach nur Banane.

Und überhaupt: Ich dachte, wir diskutieren hier Ideen und schlagen nicht gegenseitig Ideen tot.
 
Klar kann man ein paar Tabellen anlegen aber was auch wichtig ist

Spieler 1 schlägt mit Waffe A zu die 10 schaden macht
Spieler 2 bekommt den schaden aber wie viel ? ist er nackt hat er ne Rüstung oder ein Schild ?
 
ohh was für eine spannende Sache hier. :))


Was ich bisher so las würde sich alles auch Realisieren lassen. Evtl. nicht im vollem Umfang.;-)


Open Source kann ich nur empfehlen, da es sehr aufwendig werden könnte und viel Testzeit:shock: in Anspruch nehmen wird.


Externe Server würde ich erst dann einsetzen wenn es absolut nötig wird. Eine reine LSL - Lösung hat den unschlagbaren Vorteil das es ohne extra Aufwand auch für kleine RP´s einzuführen ist.


Das die Waffe selbst ihre Daten und auch Animationen beinhaltet sehe ich nicht als Problem sondern als Vorteil.
Es wird Waffenschmiede animieren für dieses System gute Waffen herzustellen und nimmt den Scriptern des Systems Arbeit ab.


Die Waffendaten werden dem Server übermittelt, und damit auch den Gegnern offen gelegt, wenn eine Waffe aktiviert ist.
Die Auswertung einer Runde soll ja der Server übernehmen anhand der (allen vorher schon bekannten) Waffendaten.
Betrügen kann nur, wer den Server manipuliert. Und das würde geübten Spielern auffallen (wenn nichts so läuft wie es zu erwarten währe).


Waffendaten könnten sein:
- Nahkampf- / Fernwaffe (z.B: Schwert oder Bogen)
- max. Reichweite
- max. Wirkungswinkel
- Gewicht ( beeinflusst z.B.Geschwindigkeit eines Kämpfers aber auch die Durchschlagskraft der Waffe)
- Faktor technische Entwicklung ( vom Speer über Bogen / Armbrust bis zur Laserkanone)


Dasselbe Spiel geht auch mit der Rüstung.


Der Server erhält von Kampfbereiten Spielern die Waffen und Rüstungsdaten sowie deren Körperliche Fitness und evtl. Verletzungen übermittelt. Sind von allen aktiv beteiligten Spielern die Daten eingegangen, wird ein kurzer Countdown in den HUD´s getriggert und die Position der Spieler als letzten Datensatz übermittelt.
Der Server bestätigt den Erhalt aller Daten, dies ist für die Waffen das Signal die ersten Animation zu triggern die dem gewählten Zug entspricht(z.B:Angriff, Deckung, Ausweichen). Sobald der Server die Auswertung beendet hat verkündet er die Ergebnisse der Runde. Die Waffen könnten auf die Ergebnisse mit einer zweiten Animation reagieren und den Ausgang der Runde (für den jeweiligen Spieler) mit einer dritten darstellen.


Da die Schnittstellen, Channels usw. offen sind besteht die Möglichkeit Kontrollserver im HUD mitlaufen zu lassen um die Ergebnisse des RP - Server Betreibers zu überprüfen. Schon diese Möglichkeit einer Kontrolle dürfte "linke Vögel" unter den RP Server Betreibern den Aufwand scheuen lassen diese zu manipulieren. Es dürfte in der Regel auch nicht in deren Interesse sein.


oh:idea:, da fallen mir schon beim Schreiben so viele Details ein das ich nun nicht mehr entscheiden kann welche Sinn machen:-?. Besser ich überlasse euch erst mal diese Gedanken zur allg. Diskussion.


bis auf weiteres
thinkangel
 
im Übrigen, was hast du gegen einen externen Server ?
2 Dinge: Abhängigkeit und Latenzen.

Das die Waffe selbst ihre Daten und auch Animationen beinhaltet sehe ich nicht als Problem sondern als Vorteil.
Es wird Waffenschmiede animieren für dieses System gute Waffen herzustellen und nimmt den Scriptern des Systems Arbeit ab.
Genau das war der Grundgedanke daran, als ich diese Idee äußerte. Gegenüber einen zentralen Verwaltung hat das eine Menge Vorteile, ein ganz wichtiger Grund ist aber, dass man damit auch Kämpfe zwischen mehreren Leuten sehr einfach verwalten kann, ohne dazu Listen und Tabellen abgleichen zu müssen. LSL ist gar nicht so dumm darin, dezentrale gelagerte Dinge zu tun.

Der Server erhält von Kampfbereiten Spielern die Waffen und Rüstungsdaten sowie deren Körperliche Fitness und evtl. Verletzungen übermittelt. Sind von allen aktiv beteiligten Spielern die Daten eingegangen, wird ein kurzer Countdown in den HUD´s getriggert und die Position der Spieler als letzten Datensatz übermittelt.
Wieder ein klares Nein von meiner Seite. Wir haben es mit LSL zu tun und nicht mit PHP. Listenverarbeitungen sind in LSL eine einzige Katastrophe - ein Grund, warum alle CMs so irre Latenzzeiten haben.
Lösbar wäre das einfacher über nicht resettbare Waffen und CMs. Jeder Teil verwaltet dabei seine eigenen Daten.
Der CM verwaltet die Daten zum AVA.
Die Waffe verwaltet alle Waffendaten.
Ein Region-Server ist dann der "Schiedsrichter".

Wie das Ablaufen könnte, dazu ein Beispiel aus dem Gor-RP:
2 Talunas stoßen auf einen Slaver, es kommt zum Kampf. Einer Eröffnet den Kampf mit dem Ziehen der Waffe, woraufhin der Region-Server aktiv wird und das Startsignal gibt.
Slaver wählt defensiv, Taluna 1 offensiv (Speer/Körper), Taluna 2 defensiv.
Diese Aktionen werden an den Server gemeldet (Von den Waffen und bei Defensiv auch vom CM). AUf ein Startsignal hin rechnet der Server nun aus, wie die Aktionen ablaufen. Kommt es zu einer Schadenswirkung, wird dies dem CM mitgeteilt.
 

Users who are viewing this thread

Zurück
Oben Unten