Buchempfehlungen und Entscheidungshilfen für Spieleentwicklung-Neuling
-
Hi!
Ich interessiere mich schon länger für Game Development und habe mich entschlossen es nun lernen zu wollen. Gleich zu Beginn stellen sich mir allerdings einige Fragen und ich hoffe, dass mir hier jemand helfen kann. Dabei ist mir vor allem auch wichtig, was der Standard (falls vorhanden) im professionellem Bereich ist (ich will zwar die Branche nicht wechseln^^ aber wenn ich etwas mache, soll es auch ordentlich gemacht sein. Packeges wie Dark GDK sind also keine Option).
-
OpenGL - DirectX:
Da ich mit keinem der beiden bisher gearbeitet habe, kenne ich leider auch die Vor- und Nachteile nicht persönlich. Mir wäre es nur sehr recht, wenn ich nicht allzu viele externe Libraries verwenden müsste. Eine Hand voll sind ok, mehr aber unangenehm. Relative Plattformunabhängigkeit wäre ein nettes Zuckerl, ist mir aber nicht so wichtig. -
Bücher
Ich habe etwas auf Amazon gestöbert weil ich mir das ein oder andere Buch zu dem Thema besorgen wollte. Allerdings sind die Kritiken (wenn vorhanden) meist sehr unterschiedliche oder einfach dei negativen Aspekte etwas abschreckend. Im Grunde sollte natürlich alles drin stehen^^ Von den Basics bis hin zu sehr detaillierten Beschreibungen zu 3D Animation.
Wenn es irgendwann soweit ist, möchte ich Models in Blender erstellen und dort auch die Animation machen. Bisher habe ich gelesen, dass ich mir wahrscheinlich selbst einen Importer für die Daten schreiben muss (ist auch ok) ... nur möchte ich die Daten zur Animation (die dann ja bereits in dem .dae, .obj, etc, stehen) verarbeiten können (steht das in jedem Buch?).
Folgende Bücher würden grundsätzlich einen brauchbaren Eindruck machen (zurecht oder doch nicht gut?):
Game Engine Architecture
Game Coding Complete
Beginning DirectX 11 Game Programming (falls die Wahl auf DirectX fallen sollte. Der Bereich über 3D Models scheint im Inhaltsverzeichnis aber extrem kurz ausgefallen zu sein und über 3D Animation sehe ich da gar nichts)Außerdem hätte ich an die OpenGL SuperBible 4th Edition gedacht (falls die Entscheidung auf OpenGL fällt). Allerdings haben mich die Kommentare nachdenklich gemacht. Die 5th Edition wäre auf Grund der Kommentare bisher weggefallen, da dort angeblich hauptsächlich die Library des Autors besprochen wird. In der Arbeit steht noch eine alte Version (2nd Edition) rum. Die hab ich mal angefangen zu lesen, weil ich dachte, das Basiswissen über Vertices, 3 dimensionale Koordinatensysteme, etc wird sich nicht verändert haben.
Würde mich freuen wenn mir jemand Tipps geben könnte. Diese 2 Punkte wären für mich einfach der erste Schritt, entscheiden ob OpenGL oder DirectX und dann dazu gute Bücher kaufen und durchackern.
lg
Edit: Wichtig ist mir auch, dass die Informationen aus dem/den Buch/Büchern möglichst aktuell sind.
-
-
Jedit schrieb:
- OpenGL - DirectX:
Da ich mit keinem der beiden bisher gearbeitet habe, kenne ich leider auch die Vor- und Nachteile nicht persönlich. Mir wäre es nur sehr recht, wenn ich nicht allzu viele externe Libraries verwenden müsste. Eine Hand voll sind ok, mehr aber unangenehm. Relative Plattformunabhängigkeit wäre ein nettes Zuckerl, ist mir aber nicht so wichtig.
Prinzipiell ist es egal, da beide APIs praktisch gleichwertig sind. Ist also mehr eine Geschmacksfrage. Wenn deine Zielplattform Windows und Portabilität auf andere Systeme eher nebensächlich ist, dann würd ich dir zu Direct3D raten. Nicht nur, weil es die imo bei weitem bessere API ist, sondern auch, weil man dazu sehr viel eher aktuelles Material bekommt. Mit OpenGL ist das Problem, dass ca. 90% aller Informationen, die man im Internet so auf den ersten Blick findet, absolut veraltet und mehr oder weniger unbrauchbar sind. Früher oder später lernt man sowieso beides. Wenn man eine API mal beherrscht, dann beherrscht man praktisch auch die andere.
Aktuelle Buchempfehlungen hab ich leider keine.
- OpenGL - DirectX:
-
dot schrieb:
da beide APIs praktisch gleichwertig sind. Ist also mehr eine Geschmacksfrage.
Widerspricht sich mit
weil es die imo bei weitem bessere API ist
Desweiteren verwechseln die meisten Spieleprogrammierung mit 3D-Computergrafik. Am einfachsten beginnt man mit einfachen Sachen wie Tetris, Pong, Asteroid oder Breakout. Dann vielleicht Bomberman oder Pac-Man. Diese kann man gern weiter ausbauen, beispielsweise Mehrspielermodus ueber Netzwerk oder am gleichen Rechner. Dafuer braucht man absolut kein DirectX oder OpenGL.
Wenn du bei "Multiplayer Bomberman im Netzwerk" angekommen bist und immernoch Spiele programmieren moechtest, dann komme wieder und wir reden ueber 3D.
-
knivil schrieb:
dot schrieb:
da beide APIs praktisch gleichwertig sind. Ist also mehr eine Geschmacksfrage.
Widerspricht sich mit
weil es die imo bei weitem bessere API ist
Tut es das? Ich denke mal, du hast das "imo" in dem Satz übersehen
-
Und wie bildet sich deine Meinung "bei weitem bessere API" wenn sie doch praktisch gleichwertig sind? Das passt einfach nicht zusammen.
-
Ich versteh nicht ganz, was da nicht zusammenpassen soll, ist eben meine Meinung!? Burger King und McDonald's sind auch praktisch gleichwertig, trotzdem haben manche lieber einen Big Mac statt einem Whopper... Egal, lass uns diesen Thread nicht jetzt schon in eine Direct3D vs. OpenGL Diskussion verwandeln
-
Hi!
Danke für eure Antworten.
Der Punkt, dass man für OpenGL kaum aktuelle Informationen erhält (zumindest auf den ersten Blick), hat mich auch dazu tendieren lassen mit DirectX zu beginnen. Das werde ich wohl jetzt einfach mal für mich festlegen.
@knivil:
Das mit den minigames ist zum Lernen sicher hilfreich, wird aber denke ich in fast jedem Buch (zumindest laut Inhaltsverzeichnis) an einem oder mehr Beispielen durchgemacht. Wenn nicht und ich gewisse Infos brauche, gibts zumindest dafür einige Tutorials im Internet. Aber das Ziel ist ganz klar 3D und da ich dafür im Internet kaum brauchbare Infos gefunden habe, ist das auch der Inhalt der in einem Buch für mich beschrieben sein muss.lg
-
Wie sieht es denn überhaupt so mit deinen Programmmierkenntnissen aus? Bist du im Moment noch totaler Anfänger? Falls dem so ist, solltest du wohl erst mal ein wenig Grundlagen lernen, bevor du an 3D-Spiele denkst. Grundlagen lernen dauert vielleicht ein Jahr oder so. Währenddessen (vielleicht nach wenigen Monaten) kannst du dann auch schon mit den erwähnten Mini-Games beginnen. Die solltest du übrigens nicht unterschätzen. Ein komplettes Multiplayer-Bomberman mit Netzwerkunterstützung ist schon eine Herausforderung. Und von der Implementierung einer KI reden wir hier ja noch gar nicht...
-
Hi!
Also so richtig mit Programmieren hab ich vor etwa 2 Jahren begonnen. Damals mit Java. Jetzt Vala und Perl. C++ bisher weniger, ist aber zum Glück Java recht ähnlich.
Dass Minigames sehr umfangreich werden können ist mir durchaus bewusst. Aber sie sind definitiv nicht mein Ziel. Wenn ich sehe, dass mir die Beschreibung der zB KI Programmierung in nem 3D Buch zu kompliziert ist, suche ich mir sicher ein 2D Beispiel dafür. Andererseits bin ich derzeit jedoch der Meinung, dass die Grundkonzepte die gleichen sind, nur bei der jeweiligen Reaktion des PCs wird es im 3D Bereich einfach mehr Daten geben (wenn sich ein Model "bewegen" soll zB ... was für mich allerdings in den Bereich Grafikprogrammierung fällt).
Ich lasse mich jedoch sehr gerne von etwas anderem überzeugen bzw vielelicht werde ich es beim Lesen eines Buches dann ja selbst sehen.
lg
-
Direct3D vs. OpenGL Diskussion
Da kommt er schon der Glaubenskrieg ^^
Wenn 3D wirklich dein Primaerziel und du ne Menge Aufwand in optisch ansprechende Effekte investieren willst, wirst um DirectX nicht drumherum kommen.
OpenGL / GLSL hinkt im Consumer Bereich dem DirectX / HLSL immer bissi hinterher. OpenGL spielt seine Stärken IMHO im Business Bereich aus in verbindung mit GL optimierten Karten(CAD/CAM etc). Consumer Karten hingegen bruesten sich immer mit Max. DirectX support.
wenn Plattformunabhangig / Linux programmieren willst, kommst wiederum um OpenGL ned drumherum.
Ob nun OpenGL oder DirectX schoener zu programmieren ist ... kommt drauf an, ob man COM mag ^^
Alternativ kann man ne schon fertige Grafik engine zwischenschalten, fuer "einfachere" Dinge sicher "legal".
Wenns eine auf bestimmte Effekte / Art Optimierte Engine ist, und man genau das haben will, isses eh auch der beste weg.WIll man aber selber das maximalste rausholen, wirst um natives DirectX und HLSL und wahrscheinlich auch CUDA / OpenCL ned drumherumkommen.
Das ist aber schon die Krone der Programmierung ... bis dahinkommst, wirst noch ne ganze weile lernen muessen
Und vielleicht gibts bis dahin scho wieder was ganz anderes ???
Wahrscheinlich gibts dann gar keine PC Spiele mehr, sondern nur noch Android / IOS zeugs und spezielle Android-IOs Spiele - KonsolenCiao ...
-
RHBaum schrieb:
Direct3D vs. OpenGL Diskussion
Da kommt er schon der Glaubenskrieg ^^
ich weiss nicht wozu du das noch anfeuern willst, wenn doch alles gesagt wurde
dot schrieb:
Ich versteh nicht ganz, was da nicht zusammenpassen soll, ist eben meine Meinung!? Burger King und McDonald's sind auch praktisch gleichwertig, trotzdem haben manche lieber einen Big Mac statt einem Whopper... Egal, lass uns diesen Thread nicht jetzt schon in eine Direct3D vs. OpenGL Diskussion verwandeln
Wenn 3D wirklich dein Primaerziel und du ne Menge Aufwand in optisch ansprechende Effekte investieren willst, wirst um DirectX nicht drumherum kommen.
du wirst nicht einen effekt aufzaehlen koennen denn man mit anderen APIs nicht hinbekommt, ergo ist das ein void argument.
OpenGL / GLSL hinkt im Consumer Bereich dem DirectX / HLSL immer bissi hinterher. OpenGL spielt seine Stärken IMHO im Business Bereich aus in verbindung mit GL optimierten Karten(CAD/CAM etc). Consumer Karten hingegen bruesten sich immer mit Max. DirectX support.
opengl kannst du auf PS3, Wii, Wiiu, psp, psvita, ipad, iphone, android, bada, macosx und linux benutzen, d3d auf win, xbox, win phone.
im gegenzug arbeiten im 'business bereich' viele programme mit d3d, z.B. 3dsmax.
wieder void.Alternativ kann man ne schon fertige Grafik engine zwischenschalten, fuer "einfachere" Dinge sicher "legal".
Wenns eine auf bestimmte Effekte / Art Optimierte Engine ist, und man genau das haben will, isses eh auch der beste weg.lasst uns einfach dots weisen worten folgen. d3d vs ogl hat noch nie fruechte getragen.
-
Wenn's mal was für (größtenteils) richtige Spieleprogrammierung (anstatt nur Grafikprogrammierung) sein soll, kann ich sämtliche Bänder der Game Programming Gems empfehlen (hier z.B. das neueste: http://www.amazon.de/Game-Programming-Gems-Adam-Lake/dp/1584507020/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1315498299&sr=1-1 ).
Überspannt alle Bereiche der Spieleprogrammierung: "Generelles Zeug" (Softwarearchitektur, sonstiges Programmier Tippgedöns), Grafik (ja auch das kommt hier vor :P), AI, Scripting, Physik, Animation, Netzwerkzeug.
-
Hi!
Danke sehr! Das Buch macht mal einen sehr positiven Eindruck.
Der Grund warum ich bisher eher nach den Grafikaspekten gefragt habe ist einfach: Auch wenn ich alles mögliche über Multiplayer, AI, Sounds, etc lese und lerne ist das sicher gut und schön ... nützt mir aber hald leider gar nichts, solange ich nicht in der Lage bin ein 3D Model zu laden und per Tastendruck eine "walk"-Animation durchzuführen
Wobei ich mir sicher nicht nur 1 Buch kaufe. Gerechnet hab ich eher mit 2-5 (ist ja auch ein umfangreiches Thema).
lg
-
Ausser man macht ein Spiel ohne 3D-Modelle. Gerade Grafik veraltet sehr schnell.
Gerechnet hab ich eher mit 2-5
Wenn sie im Schnitt 50 Euro kosten, dann solltest du mit deinem Koennen schon bei Bomberman angekommen sein. Aber so wie ich deine Beitraege interpretiere, bist du da eher beratungsresistent.
Wahrscheinlich jemand, der einen Marathon rennen will, aber noch nicht mal laufen kann.
-
Hmm vielleicht habe ich mich falsch ausgedrückt, oder du interpretierst meine Texte falsch. Ich werde definitiv im Rahmen der Übungen das ein oder andere 2D game schreiben. Aber hald nur 1-3 Level und nicht gleich 100 und auch kein multiplayer und keine extrem ausgereifte AI. Ich weiß ja nichtmal was für ein Spiel ich irgendwann schreiben will ... ist ja auch noch viel zu früh dafür. Erstmal will ich lernen. kA vielleicht wirds nur ein Singleplayer 3D Geschicklichkeitsspiel (wo man zB ne Zielscheibe mit Pfeilen abschießt) dann brauch ich gar kein Multiplayer und keine AI (was ich allerdings in jedem 3D Spiel (zumindest die, die für mich in Frage kommen) brauche, sind 3D modelle die man steuern kann).
Zu 2D game development stehen in jedem Buch das ich bisher gesehen habe etwa 200-300 Seiten, das sollte wohl ausreichend sein. Mir geht es darum, dass ich alle Informationen von den absoluten Basics bis hin zu realistischen 3D Animationen, Multiplayer und ausgereifter AI mal gesammelt und griffbereit habe. Und da der 2D Bereich in den Büchern gut abgedeckt ist, der 3D Bereich aber kaum (laut Inhaltsverzeichnissen) angesprochen wird, darum sind mir die 3D Informationen wichtiger (2D ist ja schon abgedeckt).
Wie weit ich das ganze dann wirklich mache, kann ich derzeit nicht sagen. Und dass es wahrscheinlich irgendwo Neuerungen gibt (zB Direct3D 12) ist mir auch klar. Darum will ich jetzt erstmal so aktuelle Informationen wie möglich um auf diesem Stand an zu fangen und auch alles weitere auf diesem Stand weiter zu verfolgen. Und irgendwann in weiter Zukunft, dann wenn ich die Bücher durch habe, auf die neuere Version wechseln und die Neuerungen lernen.
-
Mal eine Frage, welche API wird in den Game Programming Gems für Grafik besprochen, OpenGL oder D3D? Würde schon gern plattformunabhängig für Android, WiiWare usw programmieren bzw. direkt in die Plattformunabhängigkeit einsteigen, damit der Kram auch unter Linux läuft...
-
Ich kenn zwar keine aktuelle Ausgabe der Game Programming Gems, aber mal ganz allgemein:
* Gems Bücher sind normal einfach nur eine Sammlung von unabhängigen Artikeln zu verschiedensten für das jeweilige Gebiet interessanten Themen.
Stell dich also drauf ein dass du im selben Buch sowohl D3D als auch OpenGL Code finden wirst.
Das macht aber auch gar nix, denn in diesen Büchern geht es nicht darum, eine API zu lernen, sondern um bestimmte Techniken. Ob du die dann in Direct3D oder OpenGL implementierst ist dabei irrelevant.
Wenn du OpenGL lernen willst, dann hol dir ein OpenGL Buch
-
Hört sich schonmal nicht verkehrt an....
Ein gutes OpenGL Buch das 3.3 und höher behandelt wäre schon nett, bis jetzt habe ich da aber nur mäßig brauchbare Sachen im Netz gefunden und bei den Büchern konnte ich noch keine Empfehlung ausmachen. Mein C/C++ Stand ist auf fortgeschrittenem Level und habe schon ein erstes Pong mit OpenGL2 erstellt.
Kann mir da jemand eine Empfehlung fürn Buch geben?