Was ist ein gutes Open Source-Spiel, von dem man lernen kann? [geschlossen]


15

Ich möchte den Quellcode eines Open Source-Spiels herunterladen, um mich mit der Spielarchitektur vertraut zu machen. Kennt jemand ein Spiel mit lesbarem und leicht verständlichem Quellcode?

Bearbeiten: Nach einigem Überlegen möchte ich ein Spiel erstellen, das auf dem Desktop oder einem Andriod-Telefon mit 2D-Grafiken gespielt werden kann.


7
Die meisten Open-Source-Spiele sind große, alte Projekte, die nicht immer leicht zu verstehen sind, kommerzielle Projekte, die aus verschiedenen Gründen als Open-Source-Spiele angeboten wurden, oder unfertige Spiele, die nicht wirklich spielbar sind. Außerdem hängt die Architektur ein wenig von der Art des Spiels und der verwendeten Sprache ab. Von welcher Art von Spiel möchtest du lernen und welche Sprachen kennst du? (Tutorials könnten hier ehrlich gesagt eine bessere Option sein)
Thedaian

@ thedaian Ich weiß, Java, C ++, C, Javascript und Python
jumpnett


Ich stimme thedaian zu, zumindest hat das für mich besser funktioniert. Es gibt viele sehr gute Artikel, Bücher und Tutorials. Sie müssen sich Zeit nehmen, um die richtigen auszuwählen, aber Sie sparen später Zeit, da Sie bereits wissen, warum sie so codieren und in der Lage sind, die Qualität der Quellen (die oft riechen) zu erkennen. Wenn Sie Portabilität wünschen, würde ich für C / C ++ gehen, aber für diese Plattformen können Sie gut mit Java.
Pablo Ariel,

1
Community-Wiki?
Jari Komppa

Antworten:


2

Ich bin nicht sicher, nach welcher Art von Spiel Sie fragen, aber es gibt ein Open Source-Spiel namens OpenTTD, das in c ++ geschrieben ist. Ich denke, Sie könnten es als gutes Beispiel verwenden.

Einige Features, die dieses Spiel einzigartig machen:

  • Es ist ein Strategiespiel.
  • Es bietet Multiplayer-Unterstützung über das Internet und ein lokales Netzwerk.
  • Es unterstützt die Übersetzung in andere Sprachen über Konfigurationsdateien (die aus Rohtextdateien generiert werden).
  • Es ist auf fast jeder mir bekannten Plattform kompiliert.
  • Das Projekt ist noch am Leben!
  • Es hat eingebaute KI-Unterstützung.
  • Grafik- und Musikdaten können durch Patches vollständig angepasst werden.
  • Es unterstützt Skriptsprachen, um benutzerdefinierte KI zu entwickeln. Sie können also auch andere KI lesen, die für dieses Spiel geschrieben wurden.
  • Es ist ein relativ großes Projekt, während der Code leicht zu lesen und zu verstehen ist.
  • Es basiert auf SDL und von da an haben sie alles von Grund auf neu entwickelt.

--Bearbeiten--

Erst heute habe ich angefangen, ihren Code von Anfang an zu lesen. Um zu verstehen, was sie geschrieben haben, müssen Sie ein anständiger C- und C ++ - Programmierer sein (obwohl ihr Code gut kommentiert ist)! Ich meine, Sie müssen beide Sprachen beherrschen, da sie Strukturen aus beiden verwenden! Wenn Sie also nicht sicher genug sind, was Ihre Programmierkenntnisse angeht, sollten Sie sich nicht einmal diesem Code nähern! Das ist der schmutzigste Code, den ich je gesehen habe! (und ich selbst bin ein schmutziger Programmierer, aber sie sind etwas anderes!)

Ich denke, jetzt kann ich vorschlagen, dass Sie Supertux- Code überprüfen . Es ist ein Plattformspiel (genau wie Super Mario) und bis jetzt scheint der Code wirklich sauber zu sein (ich habe Meilenstein 1.3 überprüft). Sie haben einige Kommentare in diesem Code, aber nur für Orte, die Sie verwirren könnten.


Obwohl OpenTTD ein großartiges Spiel ist, halte ich es nicht für ein gutes Lernprojekt. Das meiste davon wurde aus der Assemblierung heraus rückentwickelt, und es gibt immer noch Codeabschnitte, die dies widerspiegeln. Außerdem ist es einfach ein riesiges Projekt und wahrscheinlich zu viel für ein anfängliches Projekt zum Erlernen der Spielarchitektur.
thedaian

@thedaian Sie können so sagen, aber hin und wieder, dass ich etwas Neues tun muss, habe ich gerade gelesen, was in ihrem Code geschrieben ist. Bisher denke ich, dass es das lesenswerteste Open Source-Spiel ist, das es zu lesen lohnt!
Ali1S232,

Ich bin mir auch nicht sicher, wann Sie den Code das letzte Mal überprüft haben, aber seit Version 1.0.0
Ali1S232,

2

Ich denke, ein guter Ansatz ist es, ein Spiel auszuwählen, das Ihnen gefällt, und sich solche Open-Source-Spiele anzusehen. Die Open-Source- Liste der Spieleklone könnte möglicherweise beim letzten Schritt sehr hilfreich sein.


1

Es gibt Stützen wie Quake 3 oder wenn Sie etwas Einfacheres (und in 2D) wollen, schauen Sie sich das Indie-Spiel Gish an . Beide verwenden OpenGL und sind auch plattformübergreifend.

Gish ist allerdings etwas chaotisch.


1

Ich empfehle, dass Sie sich zuerst darauf konzentrieren, welche Art von Spielarchitektur Sie kennenlernen möchten - 3D-Pipeline, Physik, KI usw.

Mit einer generischen Anfrage nach einem guten Beispiel für Spielprogrammierung, denke ich, ist Space Invaders gl schwer zu übertreffen, da es sauberen Code und ein offenes Spiel und eine offene Benutzeroberfläche hat, während die Dinge ziemlich einfach gehalten werden.

Prost


Sind Space Invaders nur Glasfenster? Ich habe momentan kein Windows auf meinem PC installiert. Nicht, dass ich keinen Zugang dazu habe, nur, dass es nicht so bequem ist.
jumpnett

1

Auch wenn das Lesen von Code nützlich sein kann, werden Sie als Anfänger in der Domäne nichts lernen. Vor allem, wenn Sie sich den Code großer Projekte wie Q3A oder OpenTTD ansehen. Diese wurden von einem ganzen Team erstellt, wobei jede Person unterschiedliche Codierungspraktiken und unterschiedliche Ideen für die Erstellung von Dingen hatte. Sie erhalten nur das große Bild, nicht die kleinen Details, die alles zusammenhalten.

Entwickle, versage, versuche es erneut, bis du etwas findest, das gut zu sein scheint, versage erneut, spüle und wiederhole es, bis du etwas Gutes hast. Unterschiedliche Entwickler bedeuten unterschiedliche Ideen zur Implementierung von Inhalten. Nur weil es von Carmack programmiert wurde / Jeder berühmte Entwickler, der ein gutes Spiel entwickelt hat, bedeutet das nicht, dass es das Beste ist, seit es in Scheiben geschnitten wurde. Eine andere Implementierung könnte klarer und schneller sein.


1

Ich denke, eines der wichtigsten Dinge, die Sie tun können, ist, ein Spiel zu wählen, das Ihnen Spaß macht. Dies wird Ihnen helfen, sich dafür zu interessieren und Sie mit der Umsetzung des Codes in die Spielerperspektive vertraut zu machen.

Sobald Sie das Spiel ausgewählt haben, müssen Sie nicht mehr herausfinden, wie jede Codezeile funktioniert, unabhängig davon, wie groß sie ist. Nimm ein Stück davon und sieh dir das an. Versuchen Sie beispielsweise herauszufinden, wie Spielerdaten gespeichert werden oder wie ein Menüelement gezeichnet wird usw.

Das nächste, was Sie tun können, was mit meinem vorherigen Teil übereinstimmt, ist zu versuchen, etwas zu ändern. Nicht etwas Großes (zuerst), nur etwas Einfaches und Auffälliges im Spiel. Sogar etwas so Einfaches wie der Text auf einer Schaltfläche in einem Menü oder das Hinzufügen eines Menüelements oder das Ändern von Schadensberechnungen. Vielleicht denkst du, sie hätten etwas anders machen sollen, versuch es selbst zu ändern.

Als ich mich zum ersten Mal für die Entwicklung von Spielen interessierte, beschäftigte ich mich intensiv mit 2D-Online-Rollenspielen. Also fand ich die Quelle für eine online und begann darauf aufzubauen. Eigene Funktionen hinzufügen und Dinge optimieren, Fehler beheben usw. Das war vor ein paar Jahren in VB6 und jetzt benutze ich C # und XNA und schreibe mein eigenes Spiel von Grund auf neu. Weil mir die Spiele gefallen haben, hat es mich motiviert, daran zu arbeiten, es besser zu machen. Zufälligerweise habe ich auf diese Weise auch viele der Programmier-, Debugging- und Problemlösungstechniken kennengelernt, die ich heute in meinem normalen Job verwende.

Es ist auch sehr hilfreich, wenn das Spiel eine Community von Moddern hat, von denen Sie Fragen stellen und Hilfe und Beispiele erhalten können. Aber auch wenn das nicht existiert, sind Sie schon hier und wir sind bereit zu helfen.




0

Mit dem Scrolling Game Development Kit 2 können Sie 2D-Spiele erstellen und mithilfe einer grafischen Benutzeroberfläche spielen, ohne Code schreiben zu müssen. Sie können aber auch den Code anzeigen und bearbeiten, der in das Projekt eingebettet ist, das das Framework / die Engine hinter dem Spiel darstellt. Der größte Teil des Codes wird über die GUI verfügbar gemacht, obwohl ein kleiner Teil davon Code generiert wird, der darauf basiert, wo Sie Sprites platzieren und welche Maps Sie erstellen. Dieser Code ist jedoch auch sichtbar, wenn Sie das Projekt generieren und die resultierenden Dateien in Visual C # Express öffnen. Das gesamte Programm (IDE) selbst ist ebenfalls Open Source. Es basiert auf der OpenTK-Bibliothek (die für die Anbindung von OpenGL aus C # verwendet wird), die ebenfalls Open Source ist.


Ich werde es mir ansehen, aber ich bin ein Programmierer, also ist das Schreiben von Code keine große Sache.
jumpnett
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.