Suche Feedback für Game-Architektur

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Antworten
Glocke
Beiträge: 332
Registriert: Fr Okt 26, 2012 8:39 am

Suche Feedback für Game-Architektur

Beitrag von Glocke » Fr Feb 21, 2014 10:57 am

Hi, für meinen DungeonCrawler plane ich folgende Architektur/Software-Struktur zu implementieren (siehe Anhang).

Dabei möchte ich Remote Procedure Calls implementieren. Anfragen des Clients nenne ich Request, die asynchronen Antworten des Servers Event.
  • IRequestListener enthält alle gültigen Spieleraktionen (Login, Logout, Bewegung, Angriff, Stopp aller Aktionen)
  • IEventListener beeinhaltet verschiedene Events, je nach Submanager in Model/View. Dabei soll der Client über neue Objekte, Veränderung von Objekten, Logouts etc. informiert werden.
  • Das eigentliche GameModel implementiert dann alle nötigen Requests, so dass es auf den Spieler reagieren kann.
  • Analog implementiert die GameView alle Events, um auf Änderungen reagieren zu können.
  • Das ermöglicht unterm Strich erstmal die einfache Implementierung eines Singleplayer Controllers (für den die login-logout-Sache natürlich überflüssig ist). Da ich allerdings ein Multiplayer-Game beabsichtige, gehe ich nun einen Schritt weiter.
  • Auf Basis der Listener-Interfaces will ich dann Stellvertreter-Model und -View implementieren, die sich genauso bedienen lassen (daher auf Basis des Interfaces), die Daten aber zur Gegenseite schicken. D.h. die ProxyView sendet vom Server an den Client, so dass die Events in der ClientView ankommen (ProxyModel analog die andere RIchtung).
  • Darauf aufbauend kann ich dann für den Multiplayer einen Client- und einen Server-Controller implementieren.
Bemerkung: Natürlich benötigen alle Listener-Methoden zur Identifizierung eine PeerID / ClientID. Zur besseren Lesbarkeit habe ich das weggelassen. Entsprechend muss die stop-Methode des Request-Listeners die ClientID des Spielers, dessen Figur gestoppt werden soll, enthalten. (Btw ist in einer Player-Klasse auf dem Server dann hinterlegt, welche Entity ihm gehört etc.). Analog enthält z.B. die createEntity-Methode des Event-Listeners eine ClientID um (beim Senden) zu spezifizieren, an wen das Event geht (entweder an den mit der ID oder ggf. an alle Clients für z.B. ID=-1).

Was haltet ihr von dieser Struktur? Bisher habe ich sie noch nicht implementiert (das Framework für die RPC-like Kommunikation allerdings schon). Erachtet ihr das System als geeignet für einen einfachen DungeonCrawler (mit sagen wir <10 Spielern)?

Für Verbesserungsvorschläge oder Diskussionen über die Machbarkeit / Sinnhaftigkeit würde ich mich freuen :)

LG Glocke
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

PairOfOldShoes
Beiträge: 14
Registriert: Do Jan 23, 2014 11:12 am

Re: Suche Feedback für Game-Architektur

Beitrag von PairOfOldShoes » Mi Mär 26, 2014 5:13 pm

Ist ein bisschen schwer zu verstehen. Vielleicht wäre es übersichtlicher, wenn du separate Diagramme für Client und Server machst?

Antworten