Design Patterns in Spielen



  • Hi.

    Wie der Titel sagt, bin ich auf der Suche nach einem Überblick über Design Patterns in Spielen. Damit meine ich nicht die Art von Patterns, die das Gameplay beschreiben wollen (und für die Google genug Antworten ausspuckt), sondern die Patterns, wie sie generell in der Softwareentwicklung verwendet werden (GoF).

    Welche Patterns werden typischerweise in RTS, Egoshootern, Platform, Sim oder ähnlichem verwendet, weil sie sich bewährt haben? Was sind eure Erfahrungen damit? Nutzt ihr sie, ignoriert ihr sie? Gibt es Antipatterns, die man oft auf den ersten Blick für gut hält, wo sich aber nachher herausstellt, dass diese Patterns doch nicht gewählt werden sollten?

    grüße
    Martin



  • Welche Entwurfsmuster sinnvoll sind hängt davon ob wie du an die Sache dran gehst.
    Es ist ja nicht so, dass es den einen Weg gibt ein RTS zu schreiben.
    Viehl mehr noch haben die einzelnen Elemente des Programms in der Regel für sich alleine betrachtet nicht einmal was mit RTS-Spielen zu tun.

    Soll heißen, du schreibst Code zur Graphikausgabe, Code zur Verwaltung deiner Resourcen und was halt noch dazu gehört.

    Selbst wenn man letztenendes näher an die Oberfläche kommt und es darum geht das ganze so zusammenzuführen, dass sich daraus ein RTS-Spiel ergibt gibt es keinen vorgeschriebenen Weg.

    Also solltest du einfach mal ein paar Patterns ansehen und die wählen die dir während der Entwicklung/ der Planung angemessen erscheinen.

    EDIT:
    Aber du brauchst dich dabei ja auch nicht zu sehr auf Entwurfsmuster zu fokusieren oder dir Sorgen zu machen dass dein Projekt scheitert weil du irgendwo das falsche Entwurfsmuster gewählt hast.
    Diese Dinger mögen eine tolle nützliche Sache sein, doch sind das kein Wunder.
    Ich meine, ein paar von denen verwendet man ja selbst als Anfänger ohne überhaupt zu wissen was denn nun ein Entwurfsmuster sein soll.

    Das sind einfach bewährte Vorgehensweisen für immer wieder auftauchende Probleme.
    Wenn du dir verschiedene Muster anschaust wirst du auch erkennen dass eigentlich keines dieser Muster das Grundgerüst für ein komplettes Programm wiedergibt.

    Demnach ist "Muster für RTS-Spiel" schonmal eine völlig falsche Größenordnung.
    Wenn du tipps für eine Musterwahl haben möchtest, wären die möglichen Antworten viel nützlicher wenn du dir einen Aspekt rausgreifst über den du dir nicht so sicher bist und dazu dann noch die allgemeine Struktur deines Programms beschreibst.
    In solchen Fällen kann man dir auch Mustervorschläge unterbreiten die auch Sinn machen.



  • Gut, ein Entwurfsmuster wird ja nie ausschließlich gebraucht. Ist ja immer ein Zusammenspiel. Vielleicht hast du Recht und ich sollte intuitiver an die Sache rangehen. Ich war nur interessiert, ob es für verschiedene Aspekte eines Spieles auch Muster gibt, die "üblich" sind oder "sich bewährt" haben.

    Bei RTS würde mir zum Beispiel für die Erschaffung der Einheiten direkt ein Factory-Muster vorschweben. Ebenso bei RPGs mit vielen Items. Den Zustandsmanager eines Spieles würde ich über ein Singleton lösen. Ob MVC für die Benutzeroberfläche sinnvoll ist, könnte ich mir vorstellen, müsste man ausprobieren.

    Es geht mir jetzt nicht um ein spezielles Spiel oder Problem, sondern einfach um allgemeine Erfahrungswerte...



  • Design Pattern kann man an vielen Stellen verwenden. Ich habe z.B. auf dem Roboter "Nibo" bezüglich der Bewegung im Raum (typisch wohl auch für Games) das State Pattern Design umgesetzt, und zwar in C++ auf einem µC.
    http://www.henkessoft.de/Roboter/Nibo.htm


Anmelden zum Antworten