Was sind einige übliche 3D Spielmuster?

8

Was sind einige der üblicheren Designmuster, die bei der Entwicklung von 3D-Spielen verwendet werden? Gibt es High-Level-Architekturmuster, die häufig verwendet werden? Was ist mit allgemeinen Softwaremustern in der Architektur?

    
Hooray Im Helping 14.05.2009, 22:29
quelle

4 Antworten

5
  • Composite für alles, was mit jedem update Schritt gemacht wird (zB Rendering) (Und tatsächlich unter allen UI Bibliotheken).
  • Fliegengewicht zum Zeichnen vieler gleicher Items auf dem Bildschirm (Bäume / Büsche / Kugeln)
  • Beobachter für viele UI-Bibliotheken (wiederum nicht spielspezifisch)
  • Status für den Übergang zwischen Spiel / Menü / Konsole / Pause / etc. Staaten
  • Abstrakte Fabrik in einem Beat-em-up-Typ von Spielen zum Erstellen von Mobs / NPCs (die Spiele mit lächerlichen Mengen an AI-Charakteren auf einmal - dh. Left 4 Dead).
  • Strategie für die Swapping-Heuristik in Pfadfindungsalgorithmen wie A *
  • bearbeiten & gt; Befehl für Spiele wie MMOs, die eine Aktionsleiste mit austauschbaren Schaltflächen haben, auf die Sie klicken können, um Zaubersprüche und andere Dinge zu wirken.

Das ist alles, woran ich gerade denken kann.

    
Steven Evers 14.05.2009, 22:57
quelle
1

Ich denke nicht, dass es besonders spielspezifische Software-Designmuster gibt. Spiele benutzen die gleichen Sprachen, Bibliotheken, Plattformen wie alle anderen und haben auf Softwareebene ziemlich genau die gleichen Probleme.

Es gibt bestimmte Methoden oder Ansätze, die populär zu sein scheinen, die aber auf Code-Ebene nicht formalisiert sind, wie klassische Design-Muster. Ein Beispiel sind komponentenbasierte Aktoren, die häufig nicht einmal in demselben Objekt aggregiert sind, sondern über eine gemeinsame ID, die über einen Signal / Slots-Mechanismus kommuniziert. Eine andere wäre die Einbettung einer zweiten Sprache für Scripting-Zwecke wie Lua, Python oder Javascript.

    
Kylotan 15.05.2009 10:32
quelle
1

Ich fand dieses PDF , in dem mögliche Spielarchitekturen detailliert beschrieben sind. Obwohl es für Leser, die eher geneigt sind, objektorientiert zu denken, unangenehm sein könnte.

    
Hooray Im Helping 19.05.2009 22:02
quelle
0

Variationen des Zustandsmusters sind nützlich, um den Spielzustand zu modellieren. Die Enginuity-Artikelserie bietet einen guten Überblick über einige der Low-Level-Aspekte des Game-Engine-Designs. Es ist unvollständig, aber gut. Die Designer des Guff-Frameworks umriss die Verwendung von Zustands-Hierarchien zur Handhabung des Spielstatus. Das Hierarchie-Konzept ist gut, obwohl ihre Sicht auf einen Spielzustand begrenzt ist (sie umfasst die gesamte Spielschleife statt nur den Zustand). Sie haben auch ein Papier über Echtzeit-Spielschleifen .

Beim Implementieren von Skripts ist es extrem nützlich und leistungsfähig, eine Skriptsprache zu verwenden, die eine Art kooperatives Multithreading unterstützt. Stackless Python bietet dies an. Seit Mono 2.6 können Sie dies in C # mithilfe von Fortsetzungen tun, aber nur auf der Mono-Plattform ( nicht .NET), da Änderungen an der VM erforderlich waren.

Es gibt gängige Lösungen für 2D- und 3D-Grafiken, Animationen, Eingaben usw. Viele davon werden von DirectX, SDL oder ähnlichen Frameworks verarbeitet.

    
Matthew Olenik 14.05.2009 22:46
quelle

Tags und Links