Ich implementiere ein Online-Multiplayer-Spiel, bei dem der Client in AS3 (Flash) geschrieben sein muss, um das Spiel in C ++ in Browser und Server einzubetten (ein abstrakter Teil davon ist bereits geschrieben und wird mit anderen Spielen verwendet).
Netzwerkmodelle können sich voneinander unterscheiden, aber derzeit schaue ich auf die Logik des Spiels, die sowohl auf Client- als auch auf Serverteilen ausgeführt wird, aber sie sind in verschiedenen Sprachen geschrieben, obwohl dies nicht das Hauptproblem ist.
Mein vorheriges Spiel (ziemlich großes - wurde mit den Bemühungen von ~ 5 Programmierern in 1,5 Jahren implementiert) wurde hauptsächlich in elektronischen Tabellen als strukturierte Objekte mit implementierter Vererbung "geschrieben" : Es wurde ein eigenständiges Tool geschrieben, das AS3 und C ++ (Sprachen von Plattformen, für die Plattformen erstellt wurden) generierte Das Spiel wurde veröffentlicht) unter Verwendung einer bestimmten elektronischen Tabellendatei (.xls oder .ods). Diese Datei enthielt ~ 50 Tabellen mit jeweils ~ 50 Zeilen und ~ 50 Spalten und wurde hauptsächlich von Spieledesignern geschrieben, die keine Programmiersprachen kennen. Aber dieses Spiel war Einzelspieler.
Nachdem ich ein Problem mit meinem derzeit implementierten MMO gemeldet habe, schaue ich auf eine riesige Pipeline, in der folgende Probleme gelöst werden können:
Beschreibungen der Spielobjekte (welche Raumschiffe im Spiel vorhanden sind, wie viel HP sie haben, wie schnell sie sich bewegen, welchen Schaden sie verursachen ...)
Aktionsbeschreibungen (was Spieler oder NPCs tun können: sich gegenseitig angreifen, Ressourcen sammeln, Strukturen aufbauen, sich bewegen, teleportieren, Zauber wirken) - Aktionen werden über den Server zwischen Clients übertragen
Einflüsse (was passiert, wenn eine bestimmte Aktion auf ein bestimmtes Objekt angewendet wird, z. B. "Schiff A hat Schiff B angegriffen: Feld" HP "von Schiff B um Feld" Schaden "von Schiff A reduziert"
Einflüsse können viel schwieriger sein, ja, ei "Schaden ist doppelt so groß, wenn das Schiff nachts> = 5 Verbündete in einem Bereich von 200 Einheiten um sich hat" und so weiter. Wenn eine solche Logik in ein "Entwurfsdokument" geschrieben werden kann, ist es leicht möglich:
Lassen Sie Designer ihre Arbeit ohne Eingreifen des Programmierers oder fehleranfällige Programmierung erledigen
Überprüfen Sie die beschriebene Logik
Übertragen (transformieren, konvertieren) in eine beliebige Programmiersprache, in der es ausgeführt wird
Hat jemand an so etwas gearbeitet? Gibt es einige Werkzeuge / Motoren / Pipelines, die sich damit befassen? Wie gehe ich am besten gleichzeitig mit all diesen Problemen um oder stelle ich mir meine Aufgaben und Probleme richtig vor?