Wo finde ich gute (gut organisierte) Beispiele für Spielcode? [geschlossen]

42

Wo finde ich gute (gut organisierte) Beispiele für Spielcode? Ich hoffe, dass ich einige organisatorische Tipps abholen kann. Die meisten Beispiele in Büchern sind zu kurz und lassen der Kürze halber viele Details weg. Ich bin besonders daran interessiert, wie Sie Ihre Variablen und Methoden gruppieren können, damit ein anderer Programmierer weiß, wo er im Code suchen muss. Zum Beispiel Initialisierer oben, dann Methoden, die Eingaben entgegennehmen, und Methoden, die Ansichten aktualisieren.

Ich interessiere mich nicht für eine bestimmte Sprache, solange sie OOP ist. Ich habe mir die Quake 2 und 3 Quellen angesehen, aber sie sind direkt C und nicht sehr hilfreich, um Tipps zum Organisieren Ihrer Objekte zu erhalten.

Hast du eine gute Quelle gesehen? Alle Verweise auf Code, mit denen Sie sagen, "Wow, das ist gut organisiert", wären großartig.

Smasher
quelle
1
Dies ist keine direkte Antwort, deshalb lasse ich es einfach als Kommentar. Ich empfehle, das Buch Large-Scale C ++ Software Design von John Lakos zu lesen. Es war sehr aufschlussreich für mich.
Verlosung

Antworten:

19

Bei einigen kommerziellen Spielen wurde der Quellcode veröffentlicht. Einige der Spiele sind hier aufgelistet . Es gibt keine Garantie dafür, dass der Code in diesen Spielen gut organisiert ist. Wenn Sie sich jedoch einen Quellcode von kommerziell erfolgreichen Spielen ansehen, erhalten Sie möglicherweise eine gute Vorstellung davon, was in der Praxis funktioniert.

Obwohl OpenSceneGraph kein Spiel ist, enthält es viele Komponenten eines Spiels und ist in C ++ mit verschiedenen Designmustern, Plug-Ins usw. gut aufgebaut. Es ist eine ausreichend große Codebasis und es gibt sie schon lange genug, um sie kennenzulernen viel davon.

kevin42
quelle
1
Danke, die Wikipedia-Liste war nützlich. Spring ist wirklich gut organisiert - alle Methoden sind nach allgemeinen Funktionen gruppiert (Laden / Speichern, Zeichnen usw.). Github.com/spring/spring/blob/master/rts/Game/Game.h Mit Aquaria habe ich mich besser gefühlt Code-Organisation: hg.icculus.org/icculus/aquaria/file/f08b7288f92c/Aquaria/… Ich sollte allerdings nicht kritisieren, echte Künstler werden.
Smasher
Ich würde Ogre als eine gute Referenz mit OpenSceneGraph hinzufügen ...
Klaim
6

Schlacht um Wesnoth ist ein:

Kostenloses, rundenbasiertes taktisches Strategiespiel mit einem fantastischen Thema, das sowohl Einzelspieler- als auch Online- / Hotseat-Multiplayer-Kämpfe bietet

Kostenlos wie im Open-Source-Modus unter der GPL. Ich habe es gerade gefunden / heruntergeladen, kann also noch nicht sagen, wie das Gameplay ist, aber es hat großartige Kritiken erhalten. Ich weiß auch nicht, ob ihr Code "gut organisiert" ist :) Aber hey, es ist Open Source .

Zyklop
quelle
Wirklich lustig :): p
Qchmqs
4

Wenn Sie auf der Suche nach einem guten OOP sind, hat mir das Objektmodell des Doom3 SDK sehr gut gefallen .
Ogre3D ist ein schweres OOP-Design, aber ich betone Heavy, da es meiner Meinung nach mit vielen Beispielen und Plug-Ins überfüllt ist.

Lass mich wissen was du denkst.

Adam Naylor
quelle
2

Ich habe Quellcode für Bibliotheken und vollständige Spiele auf meiner Website. Another Early Morning Sie können auch einige Projekte auf meiner GitHub-Seite finden . Nicht alles ist ein leuchtendes Beispiel für Qualität, aber das passiert meistens, wenn Sie etwas versenden möchten.

Alex Schearer
quelle
0

Ich habe die Quelle für eine einfache, die wir für einen Codekriegswettbewerb bei Windward Wrocks verwenden . Ich denke, es ist gut organisiert und es ist ziemlich einfach. Aber bestimmte Teile wurden schnell erstellt, nicht gut. Trotzdem gibt es auch in den größten Spieleentwicklungsteams Teile, die nicht gut geschrieben sind.

David Thielen
quelle