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.
architecture
open-source
source-code
jumpnett
quelle
quelle
Antworten:
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:
--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.
quelle
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.
quelle
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.
quelle
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
quelle
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.
quelle
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.
quelle
Das herausragende Open-Source-Android-2D-Plattformspiel ist Replica Island .
Die Quelle ist auf Google Code und die Entwicklung wurde im Entwicklerblog des Autors aufgezeichnet .
Hier ist eine Liste von 15 Open-Source-Spielen für Android, die sich auch als nützlich erweisen könnten.
quelle
Schauen Sie sich Penumbra an . Es sieht nach einem großartigen Ort aus, von dem man lernen kann.
quelle
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.
quelle