Buchempfehlung API's

kbit

Komplett-PC-Aufrüster(in)
Guten Tag,
ich wollte mir ein Buch entweder zu DirectX 11 oder Open GL 4 holen aber finde keins, welches gut ist. Hab ihr Empfehlungen? oder lohnt es sich eher ein Buch zu C++ holen da ich im Moment nur C am lernen bin?
Gruß kbit
 
Also bezüglich OpenGL und DirectX: Wenn du wirklich nur über die API Bescheid wissen willst, sind Online Dokumentationen gut genug. Wenn du allerdings wirklich ein Verständnis for DirectX/OpenGL aufbauen willst, brauchst du tatsächlich was anderes. Ein Buch kann ich dir leider nicht empfehlen, aber ich habe mich in den letzten paar Monaten stark in OpenGL eingelesen. Und dabei kann ich nur diese Seite empfehlen: OpenGL.org. Wenn du des Englischen mächtig bist, hilft das echt super beim verstehen des ganzen Systems.

Und was C++ angeht: C++ unterscheidet sich sehr extrem von C, daher würde ich dir auf jeden Fall nahelegen dich in der Richtung weiter zubilden. Hier sind alle guten Bücher, die ich empfehlen würde auch auf Englisch... Ich weiß nicht, wie gut du mit Englisch klar kommst.
Sonst aber grundlegende Empfehlungen zur Bücherwahl: Suche nach den Schlagwörtern "C++11", "C++14" und "modernes C++". Es gibt viele Bücher die noch eine C++ Version beschreiben, die 15 Jahre alt ist. Außerdem sind Bücher von Scott Meyers, Herb Sutter und Bjarne Stroustrup zu empfehlen.

[EDIT: Mir sind gerade noch folgende Sachen eingefallen: Die offizielle Seite des C++ Standards hat eine super "Get Started" Seite, die den Einstieg erleichtert: http://isocpp.org/get-started. Dort sind auch einige Bücher zu finden. Und dann gibt es noch diese Liste mit Büchern: http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list]

Hoffe das hilft schonmal.
Was genau hast du denn vor, wenn man fragen darf?
 
ich möchte halt gerne Spiele entwickeln und ja ich bin mir bewusst das es viel Zeit braucht und viel Aufwand ist
 
ich hab mir mal die opengl superbibel geholt. is so weit ok *find* hab halt keinen vergleich zu anderen büchern ^^ aber achte drauf, das du ne aktuelle auflage erhälst, sonst gurkste mit ogl 1 oder so rum ^^
 
Ich habe gehört das die opengl superbibel nicht zum einstieg geeignet sei im thema

EDIT: C reicht nicht für mein vorhaben oder?
 
Ich will dir nicht den Spass nehmen, aber ich wollte auch mal Spiele am PC programmieren :D

Leider musste ich einsehen dass die Programmiererei am PC eine sich rasch verändernde/weiterentwickelnde sehr umfangreiche heavy-Industrie-Posse ist und man als nicht-Geschulter sogut wie keine Chance hat.
Die richtigen Spiele-Coder gehen aufs Studium, Lehrgänge, Praktikum etc. sonst hätten die auch keinen Durchblick.

Was ich aber als möglich sehe: Java !
Java wird immer beliebter und ist eine sehr übersichtliche Sprache, die ganze Umgebung ist sehr einfach gehalten und verändert sich nur wenig über die Jahre - dazu der optimierfähige Code (siehe Minecraft).
Ich hab grad "Java für Dummies" hier als Buch und es ist super, habe auch ein 3D-Grafik Buch hier das aber erstmal verschoben wurde ^^
 
Ich möchte ja auch Informatik studieren und gehe dem nächst auf ein Fachoberschule mit dem Schwerpunkt Technische Informatik :D ich möchte es halt ausprobieren und ich muss sagen das mir Java nicht wirklich gefällt^^
Wieso wird eigentlich nur Open GL Bücher Empfohlen?:D
 
EDIT: C reicht nicht für mein vorhaben oder?
Es kommt drauf an... Letztendlich kann man solche Fragen immer mit "C ist turing vollständig" beantworten, was in anderen Worten heißt: Mit C kannst du alles machen, auch jedes Spiel. Aber auch Pokemon Gelb ist Turing vollständig...

Letztendlich geht es um die Frage, mit welcher Sprache man gut, bequem, schnell, einfach, ... ein Spiel entwickeln kann.
C ist eine Sprache einem kaum etwas abnimmt, also würde ich schon mal den Punkt "bequem" bei C verneinen. Wenn du natürlich C schon gut beherrscht und erst mal Grafikprogrammierung betreiben willst (also erstmal ein wenig rumspielen), sollte dich nichts davon abhalten C zu nutzen.

Was Hänschen sagt, würde ich jetzt mal in Frage stellen. Vorallem wenn du schon Ahnung von C hast, fang jetzt nicht mit Java an. Ich bin hier im Forum leider schon bekannt, immer Java schlecht zureden, aber so ist das nun mal. Daher nur Tipp: Eventuell erstmal nicht.

EDIT:
Ich möchte ja auch Informatik studieren und gehe dem nächst auf ein Fachoberschule mit dem Schwerpunkt Technische Informatik :D ich möchte es halt ausprobieren und ich muss sagen das mir Java nicht wirklich gefällt^^
Wieso wird eigentlich nur Open GL Bücher Empfohlen?:D
Wenn du mit dem Schwerpunkt Technische Informatik studierst, lass wirklich erstmal die Finger weg von Java. Gut, dass wir das schon mal geklärt hätten.

Wegen OpenGL: Viele Experten (nennenswert wäre John Carmack) sind der Meinung, dass die DirectX API schöner ist als die OpenGL API. DirectX hat nur leider den Nachteil nur unter Windows zu laufen. Ich persönlich arbeite derzeit fast nur unter Linux Systemen und daher war meine Wahl einfach. Probier ruhig OpenGL, es ist jetzt auch nicht fundamental viel schlimmer als DirectX. Und die Bewertung ging nur das Design an, nicht die Geschwindigkeit (dort sind beide APIs ca. gleich stark).
 
Zuletzt bearbeitet:
Wobei du im Studium vermutlich eher mit Java zutun bekommst, zumindest am Anfang. Das ist mittlerweile ein Trend, wobei an einigen Unis sogar mit Skriptsprachen wie Python angefangen wird. Und ich kann es auch nur noch einmal erwähnen: Java ist nicht mehr so lahm wie alle behaupten, in den meisten Fällen ist die Geschwindigkeit vällig ausreichend, wenn man nicht gerade einen 10 Jahre alten Rechner verwendet. Es werden Spiele in Jacascript und HTML5 geschrieben, wie kann Java da schlechter sein :ugly:

Edit: Der Thread ist kaum ne Seite lang und wir diskutieren schon wieder über Java...

C für Spiele kannst du machen, Quake 1-3 wurden beispielsweise in C geschrieben. Allerdings ist es mit C meiner Meinung nach viel schwieriger, ein Projekt dieser Größe "sauber" zu halten. Ich würde dir daher auch eher zu C++ raten, wobei bevor du mit so einem Projekt anfängst, erst mal damit einigermaßen sicher umgehen solltest. Spiele sind mit das komplexeste, was man so zusammenklempnern kann, und wenn man da so ohne Planung drauf los rennt, kommt eigentlich nur ein großer Haufen Kot (Code auch :D) dabei raus.
 
Das hab ich nicht ganz so gesagt, aber es wäre eine gute Möglichkeit ;)

Aber ich habe noch eine weitere Alternative: Ich entwickel gerade für ein Programmier-Praktikum an meiner Uni eine Library, die den Umgang mit OpenGL viel einfacher und intuitiver macht. Ich werde in 2 Wochen das Praktikum, in dem es Hauptsächlich um "Computergrafik" geht, leiten und dort meine Library intensiv einsetzen. Ich habe auch bereits das letzte Semester die Vorlesung zum Thema Computergrafik begleitet und eine Gast-Vorlesung gehalten.
Wenn du die nächsten Wochen damit verbringst, modernes C++ zu lernen, kann ich danach dir diese Library zu Verfügung stellen. Sie braucht noch ein wenig bis zur Fertigstellung der ersten stabilen Version. Aber was die Library angeht, werde ich sowieso noch mal ein Thema in diesem Forum eröffnen.

Was hällst du erstmal von der Idee? Vorteil: Du programmierst in modernem C++, dir werden die ekeligen OpenGL Aufgaben abgenommen, aber du arbeitest trotzdem noch ziemlich nah an der Hardware.

EDIT:
Wobei du im Studium vermutlich eher mit Java zutun bekommst, zumindest am Anfang. [...] Und ich kann es auch nur noch einmal erwähnen: Java ist nicht mehr so lahm wie alle behaupten, in den meisten Fällen ist die Geschwindigkeit vällig ausreichend, wenn man nicht gerade einen 10 Jahre alten Rechner verwendet. Es werden Spiele in Jacascript und HTML5 geschrieben, wie kann Java da schlechter sein :ugly:
Wenn er an einer Fach-Hochschule im Fach "technische Informatik" studiert, ist die Wahrscheinlichkeit tatsächlich hoch, dass er Java kaum zu Gesicht bekommt. Zumindest weiß ich das von der Fach-Hochschule aus der Stadt, in der ich studiere. Du hast recht, dass wir nicht in jedem Thread über Java diskutieren sollten, nur ein Hinweis: Performance ist keiner meiner Hauptkritikpunkte an Java. Falls Interesse an weiterdiskutieren -> PN oder eigener Thread. Hier ist jetzt mit Java Schluss, weil der Threadersteller schon gesagt hat, dass er es nicht mag. Punkt.

C für Spiele kannst du machen, Quake 1-3 wurden beispielsweise in C geschrieben. Allerdings ist es mit C meiner Meinung nach viel schwieriger, ein Projekt dieser Größe "sauber" zu halten. Ich würde dir daher auch eher zu C++ raten, wobei bevor du mit so einem Projekt anfängst, erst mal damit einigermaßen sicher umgehen solltest. Spiele sind mit das komplexeste, was man so zusammenklempnern kann, und wenn man da so ohne Planung drauf los rennt, kommt eigentlich nur ein großer Haufen Kot (Code auch :D) dabei raus.
Stimme dir absolut zu. Große Projekte in C sind recht schwierig zu verwalten.
 
Zuletzt bearbeitet:
Ok :D ich finde die idee gut :) meinst du Internet tutorials reichen oder sollte ich mir lieber ein Buch zulegen? Außerdem kennst du eine gute IDE ? Dev c ++ stürzt nur noch ab und bei code blocks werden bei mir die Datein zuerst immer als Virus erkannt von Avast
Vielen Dank :)
 
Oh mein Gott, der Thread ist echt schnelllebig, so schnell kann ich garnicht Tippen ;)

Ok :D ich finde die idee gut :) meinst du Internet tutorials reichen oder sollte ich mir lieber ein Buch zulegen? Außerdem kennst du eine gute IDE ? Dev c ++ stürzt nur noch ab und bei code blocks werden bei mir die Datein zuerst immer als Virus erkannt von Avast
Vielen Dank :)
Viele erfahrenen C++ Programmierer sagen, dass man sich auf jeden Fall ein Buch zulegen sollte. Und auch ich kenne kein ordentliches Online Tutorial zu C++. Je länger man sich mit Informatik beschäftigt, desto schwieriger sieht man ein Tutorial (zu irgendeinem Thema), was man tatsächlich gut findet.
Du hast jetzt nichts zum Englisch lesen gesagt, aber ich denke diese Buch wäre ziemlich gut: Amazon.com: C++ Primer (5th Edition) (9780321714114): Stanley B. Lippman, Josée Lajoie, Barbara E. Moo: Books
Wenn du noch ein wenig ausführlicher lernen möchtest, wohl eher dieses: http://www.amazon.com/Programming-P...=8-2-fkmr1&keywords=bjarne+stroustrup+deutsch

Zur IDE: Du könntest dich daran gewöhnen keine IDE zu benutzen. Ich z.B. nutze Sublime Text, was ein sehr guter Code-Editor ist, aber keine komplette IDE. Andere nutzen Vi oder Emacs, welches auch nur Code-Editoren sind. Dabei lernst du auch gleich einen C++ Compiler von der Kommandozeile zu bedienen. Wenn dir das aber zu viel Arbeit ist, kannst du dir tatsächlich erstmal eine IDE zulegen. Code::Blocks finde ich nich so super, Eclipse mag ich nicht. Zu empfehlen ist tatsächlich Visual Studio von Microsoft. Die Express Version ist kostenlos und als Student bekommst du über DreamSpark Premium auch alle anderen Versionen kostenlos.
 
also die superbible war meine erste bekanntschaft mit opengl - und ich bekomm immerhin schonmal was ausgegeben ^^ (kannst ja nach meinem opengl projekt hier mal suchen). aber dort wird halt c++ verwendet - wenn du da doch eher java oder was anderes wölltest, ist das dann wohl suboptimal ^^
 
ok ich probiere es mal mit Notepad ++ und informiere mich wie ich unter windows 7 per Kommandozeile kompiliere :)
EDIT: Ich möchte kein Java benutzten :D jedesmal wenn ich an Java denke muss ich dran denken wie instabiel Minecraft ist .... :ugly:
 
Online Tutorials reichen in der Regel für einen Einstieg, wobei es gute und schlechte Tutorials gibt - so wie es gute und schlechte Bücher gibt ;-)
 
ok ich probiere es mal mit Notepad ++ und informiere mich wie ich unter windows 7 per Kommandozeile kompiliere :)
Okay das ist schon mal kein schlechter Anfang. Notepad++ ist auch nicht schlecht, aber wenn du nicht gerade Riesen-Fan davon bist, kannst du ja auch mal einen Blick darauf werfen: Sublime Text: The text editor you'll fall in love with
Und unter Windows7 kompilieren: Kannst du gerne machen und spricht auch grundsätzlich nichts dagegen. Nur derzeit kompiliert meine Library nicht mit dem Visual Studio Compiler (VC++). Wenn du allerdings GCC (bzw g++) unter Windows nutzt, ist alles gut.
Eine Alternative wäre noch, dass du dir eine Virtuelle Maschine mit Ubuntu einrichtest. Das ist super schnell aufgesetzt und du kannst direkt anfangen zu programmieren. Aber wenn dir das jetzt zu viel Arbeit ist, kannst du es auch erstmal sein lassen.

EDIT: Ich möchte kein Java benutzten :D jedesmal wenn ich an Java denke muss ich dran denken wie instabiel Minecraft ist .... :ugly:
Und damit nun Schluss mit Java in diesem Thread ;-)
 
Spiele werden auf Engine-Grundlage designed. Ganz andere Programmierer erstellen wiederum diese Engine. Je nach Zielsetzung solltest du dich daher unter Umständen (wenn du denn grundsätzlich programmieren kannst) besser mit der Skriptsprache der gewählten Engine und garnicht mit "klassischen" Programmiersprachen beschäftigen.

@Crysis nerd: Du erfindet GLUT neu?

Zur Editorfrage: Ich mag ja Geany. Ist irgendwo zwischen Editor und IDE.
 
Zuletzt bearbeitet:
Ok Sublime sieht auch nicht schlecht aus :D und wegen ubuntu habe ich auch einen Dualboot schon mal eingerichtet nur seit dem Graka wechsel ist ubuntu nur im Low graphics mode :D und ich habe nicht verstanden wie ich compilieren sollte :D
Ich möchte es zuerst mal mit c++ und open gl probieren ;) :D
 
Zurück