Du bist nicht angemeldet.

Werbeanzeige

1

11.04.2015, 17:03

Ein gutes Buch zur 2D Spieleprogrammierung mit DirectX & C++

Hallo Community,

aktuell beschäftige ich mich mit SDL2, aber da ich auf lange Sicht sowieso früher oder später eher DirectX verwenden möchte überlege ich mir ein Buch zur 2D Programmierung zu kaufen, welches DirectX erklärt. Das Buch sollte hauptsächlich auf die Grundlagen eingehen (bei den meisten Büchern habe ich den Eindruck, dass sie so schnell wie möglich zur 3D Programmierung kommen wollen und somit die Grundlagen nur halbherzig anschneiden). Später würde ich mir wünschen, wenn das Buch noch Partikel Systeme mit DirectX vorstellt sowie Shader. Meine Ansprüche an das Buch sind nicht sonderlich groß, nur das es sich selbst nicht übernimmt und das, was es erklärt ausführlich und gut erklärt. Input sowie Sound wäre natürlich ebenfalls ganz nett (allerdings habe ich gehört, dass DirectX dafür sowieso eher weniger geeignet ist und man sich hierfür lieber alternativen suchen sollte - eure Meinungen dazu wären für mich natürlich ebenfalls sehr interessant). Schlussendlich würde ich gerne noch mal fragen, wie groß die Unterschiede zwischen den Versionen sind ? Sollte ich unbedingt ein Buch kaufen, welches DirectX 11 erklärt, weil die anderen Versionen bereits hoffnungslos veraltet sind, oder ist der Umschwung weniger enorm, als ich es mir momentan vorstelle ? Wird DirectX 12 wieder alles verändern, oder bleibt der Großteil des Grundgerüstes erhalten, sodass die Verwendung der neuen Version innerhalb recht kurzer Zeit erlernt werden kann ? Noch eine kleine Anmerkung: ein deutsches Buch wäre mir natürlich lieber, aber wenn jemand ein unglaublich gutes Buch auf englisch hat wäre das für mich auch in Ordnung.

Ich danke schon mal im Voraus,

Lg
:)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Dareptor« (11.04.2015, 17:09)


2

12.04.2015, 01:48

Hallo,
warum möchtest du denn unbedingt directX lernen? Möchtest du ein Spiel entwickeln oder lieber verstehen was hinter den Kulissen so statt findet?
Ist natürlich sicherlich nicht verkehrt, ein wenig Background zu haben, aber wenn es dir um das Spiele entwickeln an sich geht, dann entferne dich besser ganz schnell davon.
mit SDL hast du ja schon ein beliebtes Framework.
Aber um deine Frage zu beantworten, das Buch von Heiko Kalista (siehe Forum) ist ganz brauchbar. Es ist zwar schon gut in die Jahre gekommen, aber an DirectX 9 hat sich seitdem ja nichts mehr verändert. Für die C++ Grundlagen solltest du dir aber unbedingt ein neues Buch mit besorgen (also C++11 oder schon C++14).

Aber wie gesagt. Wenn du Spiele entwickeln möchtest, entferne dich besser von solch low Level Zeug.

mfg

3

12.04.2015, 02:01

Das Buch von Heiko Kalista (C++ für Spieleprogrammierer) habe ich bereits durch - ich hätte vielleicht erwähnen sollen, dass ich eher weniger über C++ lernen möchte als DirectX im Speziellen, da ich die Grundlagen mehr oder weniger kann. Ich würde später gerne in der Lage sein eigene Engines zu erstellen (ein Langzeitziel - mir ist bewusst, dass es noch mehrere Jahre an Erfahrung benötigt, bis ich diesem Wunsch nachgehen kann) und dafür würde sich DirectX natürlich anbieten. Zudem ist SDL technisch schon recht limitiert, sodass man für komplexere Dinge (Partikel Effekte z.B.) gezwungen ist auf OpenGL auszuweichen. Da ich sowieso nur auf Windows programmieren möchte und in näherer Zukunft mal die Unreal Engine ausprobieren will (natürlich muss ich dafür nicht zwingen wissen, wie man DirectX verwendet, aber vorteilhaft ist es) fiel meine Entscheidung eher auf DirectX statt OpenGL.

Edit: Seit wann hat Heiko Kalista ein Buch für DirectX ? :huh: - Meinst du eventuell das von David Scherfgen, welches sich hauptsächlich mit der 3D Programmierung auseinander setzt ? Ich würde wie gesagt eher bei 2D bleiben, da die Grundlagen von DirectX wahrscheinlich genug stoff für mich sein werden fürs erste und auf 3D Programmierung würde ich umsteigen, sobald ich mich dafür bereit fühle. (2D reicht für meine ersten Ziele locker aus ... da werden bestimmt ein paar Jahre verstreichen, bis ich an 3D Programmierung denken mag)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Dareptor« (12.04.2015, 02:09)


Schorsch

Supermoderator

Beiträge: 5 205

Wohnort: Wickede

Beruf: Student

  • Private Nachricht senden

4

12.04.2015, 15:42

Wenn du bis jetzt nur das Buch von Heiko gelesen hast dann solltest du dich besser noch weiter mit C++ auseinander setzen. Danach würde ich mich erst mit DirectX beschäftigen. Ansonsten wird dich das ganze vermutlich eher überfordern.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

5

12.04.2015, 19:41

Welches mir besonders gefiel war "Spieleprgrammierung mit DirectX 11 und C++" von Susanne Wigard.

Alleine die durchweg schlechten Rezensionen auf Amazon würden mich persönlich vom Kauf hindern...

Gute Bücher über 2D-Grafik mit Direct3D kenne ich nicht. Mag aber daran liegen, dass das meiste, was mit Direct3D gemacht wird, eben 3D ist. Für 2D muss eigentlich kaum was gemacht werden. Ein Device und Swapchain erstellen und man kann auch schon mit dem DirectXTK die ersten Bilder auf den Bildschirm zaubern. Kannst da ja mal reinschauen. Unter Documentation gibt es auch ein paar Tutorials. Wenn dir das noch zu hardcore ist, kannst du auch erst mal ein wenig Erfahrung mit C++ sammeln, indem du mit SFML oder SDL2 eben ein paar kleine Sachen machst. Fang mal mit Pong an, ist immer wieder cool :)

GlowDragon

Frischling

Beiträge: 65

Wohnort: Bayern

Beruf: Informatikstudent

  • Private Nachricht senden

6

12.04.2015, 20:07

Da ich sowieso nur auf Windows programmieren möchte und in näherer Zukunft mal die Unreal Engine ausprobieren will (natürlich muss ich dafür nicht zwingen wissen, wie man DirectX verwendet, aber vorteilhaft ist es) fiel meine Entscheidung eher auf DirectX statt OpenGL.
Was hat die Unreal Engine damit zu tun?
Und abgesehen davon: Selbst wenn du nur für Windows entwickeln möchtest: Entwickler, die unbedingt deine Game Engine nutzen wollen, wären gezwungen, Windows zu kaufen und während der Entwicklung zu nutzen (andere Wege wären nicht wirklich perfomant). Windows oder generell PCs sind nicht jedermanns Sache und viele Engines sind deshalb so beliebt, weil sie Exportmöglichkeiten für mehrere Platformen anbieten.
Und wer weiß, wie lange Windows noch von der Masse genutzt wird? An deiner Stelle würde ich den Erfolg meiner Game Engine nicht von einem Unternehmen abhängig machen.
Nichts gegen DirectX, aber OpenGL bzw. Vulkan sollte man nicht ignorieren.

7

12.04.2015, 20:35

Immer wieder schön, wie ihr es schafft eine simple Frage in eine Diskussion umzuformen. Finde ich ziemlich lächerlich hier wieder die alte Direct3D vs OpenGL Schiene zu fahren ...
Wenn ihr Offtopc gehen wollt, dann tut das im Offtopic-Bereich ;)
An den Threadersteller: Lern einfach was du willst, man kann nie zu viele APIs kennen. Die Theorie bleibt sowieso gleich. Wenn du also DirectX interessant findest, dann schau es dir doch mal an. Lass dich nicht von diesen Religionskämpfen beeinflussen :)

8

12.04.2015, 22:04

Ich würde mich aktuell für "Programming 2D Games by Charles Kelly" entscheiden, allerdings würde ich noch gerne mal eure Meinung dazu hören, denn es behandelt nur DirectX 9. Es ist von einem Informatik Professor geschrieben und scheint relativ leicht verständlich zu sein, da es versucht bei der 2D Programmierung zu bleiben. Meint ihr, dass das ein guter Einstieg ist, oder würdet ihr eher davon abraten ? Es behandelt das erstellen einer sehr simplen eigenen Engine, sowie die absoluten Grundlagen, welche man für ein Spiel benötigt (Auch Kollision etc.). Als Bonsumaterial werden noch Partikeleffekte, Controler Input etc. behandelt.

Fireball

Alter Hase

Beiträge: 421

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

9

13.04.2015, 14:38

Also DirectX12 Bücher kann man derzeit nur vorbestellen.

http://www.amazon.com/Introduction-Progr…e/dp/1942270062

Julién

Alter Hase

Beiträge: 723

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

10

14.04.2015, 17:44

Wie die Geier stürzen sich die Verlage schon darauf der Erste zu sein, der ein Buch zu neuen Technologie veröffentlicht. Hoffentlich kommen da nicht zu viele Bugs mit rein :P

Allgemein würde ich dir für den Anfang DirectX 11 empfehlen.
Für den Anfang gilt es einige prinzipielle Dinge zu lernen. Dann muss man sich später nicht um den "verringerten Driver overhead" kümmern.
Wichtig ist zu verstehen was zum Beispiel eine "programmable pipeline" im Zusammenhang mit DirctX und OpenGL ist,
wie man verschiedene Buffer verwendet, spezielle sog. "Constant Buffers" (in OGL Uniform Buffers).

Da sind auch die üblichen verdächtigen dabei, wie Vertex- und Indexbuffer dabei.

Ich kann mir nicht vorstellen, dass es einfacher wird mit DirectX 12 3D Grafikprogrammierungskonzepte (wow, das längste Wort, dass ich jemals hier im Forum geschrieben habe) zu lernen. Vor allem nicht, wenn du dich um die Organisation der Zugriffe auf die Buffer kümmern musst.

Abgesehen von all dem ist DirectX 12 bisweilen nur in der Windows 10 Technical Preview verfügbar. Diese würde ich auch nur in eine VM installieren, der Produktivrechner ist mir noch zu schade.
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

Werbeanzeige