Vererbung in Spielen ist tatsächlich eines der schlimmsten Dinge, die Sie tun können - insbesondere in Bezug auf Entitäten. Lesen Sie hier, warum. Komposition über Vererbung bringt Sie mit Spielen weit. Wie für andere Bereiche Ihres Motors, ist es nicht wirklich wichtig. Angenommen, Sie rufen einen externen Netzwerkdienst an und erben dann einen generischen Diensttyp an z. HTTPService und SocketService - ähnlich wie in den gewohnten Unternehmensanwendungen.
Es sei denn , Ihr Spiel ist wirklich einfach, Sie werden wollen eine komponentenbasierte Einheit (CBE) Architektur verwenden. Die allgemeine Idee ist, dass bei Entitäten der Grund dafür, dass sie so häufig zusammengesetzt und nicht geerbt werden, darin besteht, dass Sie erst zur Laufzeit wissen können, über welche Funktionen eine bestimmte Entität verfügt. Nehmen Sie zum Beispiel das Schiff des Spielers in einem Weltraum-Shooter. Bis zu einem bestimmten Zeitpunkt im Spiel wissen Sie nicht, welche Waffen, Rüstungen, Systeme (dh Komponenten) der Spieler aufnehmen, kaufen, verkaufen, verlieren, zerstören usw. wird. Der einzig realistische Weg, dies zu modellieren, ist durch Objektzusammensetzung. Das Plus in diesem Szenario ist, dass Sie auch vollständig anpassbare Feinde haben können, die auf die gleiche Weise aufgebaut sind, anstatt Feinde, die jedes Mal, wenn Sie diesen Feindtyp sehen, exakt gleich sind. Mit CBEs sehen Sie vielleicht einen Marsfrachter und denken: "Ah, es hat nur winzige Laser, ich mache es kaputt." Normalerweise ist das der Fall, aber wenn Sie plötzlich in Reichweite kommen, stellen Sie fest, dass es einen großen Hintern hat Wurmlochgewehr. Überraschung Überraschung!
Die Komponentisierung hebt die implizite Verknüpfung von Logik auf, und das ist GUT.