Was ist ein gutes Buch, um ein 2D-C ++ - Spiel zu programmieren? [geschlossen]

8

Ich habe einen Abschluss in Informatik und während meines Studiums habe ich in Game Maker ein einfaches 2D-Spiel erstellt. Ich möchte dieses Spiel in C ++ neu erstellen, um zu lernen, wie man Spiele in C ++ erstellt. Was wäre ein gutes Buch, um mit dem Programmieren von Spielen in C ++ für jemanden zu beginnen, der ein wenig Erfahrung mit C ++ hat (meine CS-Hauptklassen wurden mit Java unterrichtet und ich hatte eine Klasse in C ++, um die Syntax zu lernen) und die Konzepte hinter Objekten zu kennen? Methoden, Vererbung usw.?

Dies wäre ein Hobby von mir, während ich Erfahrungen sammle, bis ich eines Tages in der Videospielbranche arbeiten kann.

sange
quelle
Wenn Sie Motivation brauchen (und Zeit haben), können Sie an einer Pyweek oder einem der Pygame-Wettbewerbe teilnehmen
Bobobobo

Antworten:

8

Da Sie Game Maker verwendet haben, gehe ich davon aus, dass Sie unter Windows arbeiten. Steigen Sie also mit dem direct-x SDK in die Tiefe. Die Beispiele enthalten Quellcode und geben Ihnen einen Vorgeschmack auf die Leistung, die Ihnen zur Verfügung steht. Nur weil Sie ein 2D-Spiel machen möchten, heißt das nicht, dass Sie sich an eine 2D-Bibliothek halten sollten. Irgendwann möchten Sie wahrscheinlich etwas tun, das die Bibliothek nicht in sich selbst implementiert (Shader oder Rotationen oder etwas Zufälliges, das Sie gerade haben NOTWENDIG für Ihr Projekt).

SDL -und wahrscheinlich SFML und Cinder- bietet ein hohes Niveau „bekam die Grundlagen aus dem Weg“ Annäherung an ein Motor sein, so dass Sie alle die Kraft , es zu tun von Grund haben würde (so Sie Pixel - Shadern in SDL haben könnte), aber du würdest nicht lernen, wie die Dinge gemacht wurden. Sie würden dann echtes C ++ in einem Helfer-Framework ausführen, das Ihnen dabei hilft, Dinge zu erledigen, aber keine große Hilfe ist, wenn Sie lernen, wie man Spiele entwickelt, wenn Sie jemals in einer Spieleentwicklungsfirma arbeiten.

SDL, SFML und sogar Cinder sind clevere Methoden, um das Erlernen der schwierigen Dinge in C ++ zu vermeiden. Normalerweise wird OpenGL umbrochen. Dies ist hilfreich, wenn Sie Grafiken für Nicht-Windows-Computer codieren möchten. Es gibt jedoch auch unzählige Ressourcen, um die Arbeit in Direct-X zu erledigen (wahrscheinlich mehr, da sich der Windows-Virus in jeder Ecke des Computers verbreitet hat Welt).

Wenn Sie das Wesentliche nicht lernen möchten, ist das in Ordnung, aber ansonsten haben Sie keine Angst davor, von einer rohen Win32-App aus zu starten.

Ich würde vorschlagen, dass Sie aus Komfortgründen mit all den verschiedenen Hilfspaketen beginnen, die Sie finden können, aber Ihre eigene Rendering-Engine schreiben. Das Schreiben einer Engine macht viel Spaß und bietet Ihnen eine Ressource, auf die Sie in Ihren zukünftigen Projekten zurückblicken können. Nichts schafft guten Code so gut wie die Weisheit, es in der Vergangenheit falsch zu machen.

Richard Fabian
quelle
Vielen Dank für die Antwort, ich habe Erfahrung in C ++ und würde gerne in die schwierigen Dinge einsteigen, damit ich Erfahrung darin habe. Ich würde es lieben, wenn dieses Hobby irgendwann zu einer Karriere in der Videospielbranche führen würde, sobald ich Berufserfahrung gesammelt habe.
Sange
7

Ich würde empfehlen, sich von dieser Cinder-Bibliothek fernzuhalten. Das Durchsuchen der Tutorials ist so demotivierend wie möglich. Wählen Sie etwas aus, das einfach, unterhaltsam und schnell zu codieren ist, z. B. SFML . Stellen Sie sich das als modernen objektorientierten Ersatz für SDL vor. Wenn die Funktionen Ihren Anforderungen entsprechen, installieren Sie sie, lesen Sie die Tutorials durch und beginnen Sie einfach damit zu spielen. In den Foren finden Sie Quellcodes für vorhandene SFML-Projekte , um zu sehen, wie sie Dinge implementieren, wie z. B. die Spieleschleife, wie sie den Code und die Objekte organisieren und wie sie miteinander und mit dem Wiki kommunizierenverfügt über eine Reihe von Tutorials und Quellcodes, die Sie in Ihren Projekten verwenden können. Und die Foren sind aktiv, sodass Sie dort jederzeit um Hilfe bitten können.

Der Zauberer
quelle
Ich hatte noch nie davon gehört - sieht für Spiele viel passender aus als Asche! nett.
Iain
4

Ich kenne kein Buch, das für 2D-Spiele spezifisch ist, aber Sie sollten sich die Antworten hier ansehen . Schließlich haben 2D- und 3D-Spiele viel gemeinsam. Es gibt viele 3D-Spiele mit 2D-Gameplay.

Vielleicht können Sie die Tutorials von Lazy Foo lesen , die viele wichtige Themen Schritt für Schritt behandeln. Sie verwenden SDL und OpenGL.

Carnby
quelle
3

Könnte etwas veraltet sein, aber Advanced 2D Game Development war ein ziemlich gutes Buch. Hör zu.

Miguel Moll
quelle
Ich habe dieses Buch gerade gekauft (ich warte darauf, dass es ankommt!) - inwiefern ist es veraltet?
Zolomon
Nun, seit es 2008 herauskam, hat sich die Technologie sicherlich geändert. Aber die Methoden sind höchstwahrscheinlich die gleichen. Es tut mir leid, seit ich es gelesen habe und mir fällt nichts ein.
Miguel Moll
0

Über ein Buch hinaus ist es wichtig zu entscheiden, welche Art von Spiel Sie machen möchten. Das wird Ihnen helfen, Ihren Weg im Allgemeinen zu informieren. Ich würde vorschlagen, etwas Einfaches auszuwählen, Minesweeper oder Tetris oder vielleicht Lightcycles of Tron, wo die Spiellogik ziemlich einfach ist und die Grafikanforderungen minimal sind, nur um etwas Grundlegendes zu erreichen.

Dash-Tom-Bang
quelle
0

Es gibt zwar viele Bücher, aber ich habe keines gefunden, mit dem ich zufrieden bin. Die meisten scheinen sich an "Spiele" zu halten, die aus spielerischer Sicht nicht besonders interessant sind, und gehen nicht wirklich auf die Implementierungsdetails von Grafiken, Spieleschleifen usw. ein.

Meine Empfehlung wäre, anstatt nach einem Buch zu suchen, sich über die Google-Suche zu unterrichten. Es gibt unzählige Online-Tutorials, mit denen Sie einfache Spiele erstellen können. Wählen Sie einfach ein Spiel wie Tetris (oder was auch immer) aus, erstellen Sie eine Liste mit Programmieraufgaben, und wenn Sie bei etwas hängen bleiben (vielleicht sind Sie sich nicht sicher, wie Sie Eingaben in Echtzeit akzeptieren sollen) oder wie man Grafiken auf den Bildschirm zeichnet) suchen Sie nach der Antwort auf diese eine bestimmte Frage. Wiederholen Sie diesen Vorgang jedes Mal, wenn Sie nicht weiterkommen. Wenn Sie fertig sind, haben Sie eine ziemlich gute Vorstellung davon, wie ein Spiel zusammengesetzt ist.

Ian Schreiber
quelle