Sachbücher über Videospielprogrammierung?

Don Pipo

L12: Crazy
Thread-Ersteller
Seit
2 Dez 2005
Beiträge
2.379
Heyho!

Da ich bereits (sehr leicht) in den Bereich 3D-Modellierung eingestiegen bin und studienbedingt im 6. und 7. Semester Videospiele als Modul habe, wollte ich mich demnächst in diesen Bereich einlesen. Natürlich interessiert mich nicht "Was sind Videospiele?" oder so^^° Ich möchte mich eigentlich in Bereiche einlesen mit den ich bisher wenig Erfahrung hatte. Vorallem der Bereich Programmierung. Bis jetzt hatte ich nur 'n bisschen Java :neutral:

Am allergeilsten wäre es, wenn es ein Buch gäbe, dass einem die Spieleprogrammierung nicht nur theoretisch erklärt, sondern durchgängig an einem kleinem Beispiel, welches man dann umsetzt.

Bis jetzt scheinen mir diese Bücher am ehesten zuzusagen:

Als "Einstieg"
"C++ für Spieleprogrammierer"
21FX7QB3C6L._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA198_SH20_OU03_.jpg


und weiterführend
"3D-Spieleprogrammierung mit C++ und DirectX9"
41BRHDTVM3L._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU03_.jpg


Kennt ihr gute Alternativen? Gerne auch auf Englisch und ausgelegt für 2D-Spiele als Einstieg. Verwendete Programmiersprache ist "mir persönlich" relativ egal, C++ ist aber ja wohl sehr verbreitet.

MfG,
Pipo

EDIT:
Für sehr viel später vielleicht auch interessant:
"Learning XNA 3.0"
51CajaROn6L._SL500_AA240_.jpg
 
Zuletzt bearbeitet:
Das erste Buch kann ich sehr empfehlen, vermittelt die C++ Grundlagen sehr gut und anhand spielerichen Beispielen (aber alles halt nur pseudo beispiele in der konsole). Am Ende wird dann auch noch ein Spiel entwickelt. Bzw. werden die Quelltexte von diesem Zeile für Zeile erklärt.

Das zweite Buch habe ich auch. Und ist ebenfalls sehr empfehlenswert und nichts für Ungeduldige. Man sollte das Wissen aus dem ersten Buch schon zu genüge einverleibt haben bevor man mit Direct X anfängt.

Wenn Du nichts alzuviel Zeit hast, dann empfehle ich Dir generell erstmal mit C# und XNA einzusteigen. Ist zwar ebenfalls nicht ohne aber ich finde C# ist besser organisiert und einfacher zu lernen. Und XNA erleichtert die 3D Programmierung ungemein.

Man sollte halt wissen was man am ende machen möchte. Programmieren lernen ist nicht in 5,6 Monaten getan. 5-6 Monate sind schonmal mindestens erforderlich um grundlegende Sachen wirklich zu kennen, zu verstehen und auch anwenden zu können.

Wenn Du allerdings weniger Programmieren möchtest sondern einfach nur deine Ideen verwirklichen willst, dann empfehle ich dir DX Studio oder ähnliches. Dort wird JavaScript verwendet, ist sehr einfach zu lernen und wenn Du mehr "Artist" als Coder bist dann wird das eher was für dich sein.
 
Uh, danke schön. Dachte, XNA und C# würden eher auf die ersten zwei Bücher aufbauen, da diese grundlegender seien.
Bin auch eher Artist als Coder, aber ich möchte mir halt Grundlege Kenntnisse anlesen. Ein paar Basics verstehe ich durch (u.a. durch mein Studium) ja, bspw. Schleifen, grundleger Aufbau von Algorithmen und ähnliches. Aber so bald es etwas spezialisierter wird (Was ist eine Enginge? etc.) wird's schwierig.
Bis zum entsprechendem Modul dauert's aber noch vier Semester, darum möchte ich mich schon einmal "einlesen".

Könntest du vielleicht noch Bücher aus anderen Bereichen empfehlen? Zum Beispiel "Scripting"? Oder Bücher speziel über die Herstellung von Browserspielen?
 
Das erste Buch sind eigendlich nur C++ Grundlagen und erweitertes Wissen und am Ende gehts halt um SDL und C++. Das zweite ist halt C++ und DirectX. Zwar wird hier die vom Autoren entwickelte TriForce Engine oftmals verwendet aber es werden eigendlich alle wichtigen Sachen zur 3D Programmierung geklärt.

Auf jeden Fall auch sehr gut um zu verstehen, wie viele Dinge an sich funktionieren, da auch sehr sehr viel Theroie drin ist.

Also für Browserspiele ist ja PHP in verbindung mit JavaScript sehr beliebt. Da hab ich von Galileo Computing zwei Bücher. Bei dem ersten gehts mal wieder um Grundlagen ;) und heißt "Einstieg in PHP 5 & MySQL 5". Da habe ich allerdings..joar relativ wenig drin gelesen da ich mir das meiste Wissen mit Hilfer der PHP Dokumentation (php.net) angeeignet habe. Für eine MySQL Sachen war es dann aber sehr hilfreich. Was ich dir bei PHP absolut nicht empfehlen kann ist, "irgendwelche" Tutorials durchzulesen. Investiere lieber ein paar Euro in ein gutes Buch. Ich hab den Fehler gemacht und am Anfang mit Tutorials aus dem Netz gearbeitet ... aber naja wie soll ich sagen, PHP ist mit Vorsicht zu behandeln. In Sachen Sicherheit kann man sehr viel falsch machen die einem in lieblosen Tutorials oftmals garnicht erläutert werden.

Und vor allem wenn es dann an ein Browsergame geht sollte man sich zusätzlich noch dieses Buch zu Gemüte führen Sichere Webanwendungen. Man muss kein Profi sein um zu verstehen was dort erläutert wird. Und das ist das tolle. Es wird sher klar und verständlich erläutert, wie Sicherheitslücken funktionieren, wie sie ausgenutzt werden und auch ein paar Praxisbeispiele sind vorhanden. Sollte man immer zur Hand haben wenns an eine ernsthafte Webanwendung geht ;).
 
Hmm... PHP, MySQL (und JavaScript) habe ich gerade in den Vorlseungen. Erst heute wieder anderthalb Stunden :kotz:Da hat mir erstmal wieder der Kopf geraucht.
Aber wie sieht es zum Beispiel mit dem Einfügen von Flash aus? Bspw. dieses Spiel hier: http://www.spele.nl/game/bmx/bmx_master.html . Kann man so ein Spiel nur mit Flash, PHP und JavaScript erstellen?

(PS: Danke für die guten Erfahrungsberichte!)
 
Flash benutzt das so genannte "Action Script" als Sprache. Ich selbst habe aber noch nie wirklich mit Flash gearbeitet. Flash läuft auf den Seiten quasi nur in einem Kontainer und hat mit dem drumherum erstmal nichts zu tun. Es reichen also ein paar HTML Befehle aus, um Flash auf einer Seite einzubetten.

Um allerdings Highscores in einer Datenbank wie MySQL einzutragen reicht Flash allein meines Wissens nach nicht aus. Ein kleinwenig PHP und MySQL muss man da dann schon verwenden. Aber da bin ich mir nicht 100%ig sicher. Für ein kleines Spiel reicht Flash bzw. Action Script allein aber aus :).
 
So grab mal den Thread wieder aus! :v:

Für jemanden, dem das Themengebiet interessiert und sich richtig in das richtig vertiefen, jedoch KEIN C++ gut beherrscht (OOP, Pointer, etc.) ist das hier ein guter Anfang:

http://www.amazon.de/Spieleprogramm...r_1_12?ie=UTF8&s=books&qid=1264500697&sr=8-12

Für mich war es jedoch eher entäuschend, da ich zum Zeitpunkt, als ich es mir kaufte, schon C++ konnte und der Spieleprogrammierungsteil eher im Hintergrund ist (bis auf wenig Konzepte). Achja wenn man C# gut beherrscht, heißt es NICHT, dass man C++ gut beherrscht.

Für mich hat das folgende Buch geholfen, gewisse Konzepte zu verstehen:

http://www.amazon.de/Advanced-Game-...s=books-intl-de&qid=1264502678&sr=8-1-catcorr

Allerdings sollte man das "Advanced" sich wegdenken, da er hier eigentlich nur die Basiskonzepte behandelt und nichts richtig "Advanced" ist (Außer vielleicht die Implementierung der Skriptsprache Lua).

Für alle, die das Refernzbuch (imo) wollen, kann ich das hier nur empfehlen:

http://www.amazon.de/Game-Coding-Co...ie=UTF8&s=books-intl-de&qid=1264502892&sr=1-1

Ich würde nicht sagen, dass er alles behandelt, jedoch wird eigentlich so ziemlich wird ziemlich viel gut abgedeckt. Vorsicht, dieses Buch ist definitv NICHT für den Einsteiger gedacht und man sollte doch schon ein wenig Programmiererfahrung mitbringen. Es hat mir geholfen, zu verstehen, wie ein Spiel aufgebaut sein kann und wie man es am besten angeht. Klar, es eher auf Professionelle gerichtet, jedoch kann man sich schon einiger seiner Tipps mitnehmen.

Außerdem kann man sich auch ein wenig Info von diesen beiden Webseiten holen:

http://www.gamedev.net/ (Einsteigersektion ist interessant, sowie einige Artikel)

http://www.gamasutra.com/

Soweit die Empfehlungen von mir! :-)
 
Interessant, dass du meinen Thread wieder ausgräbst :-)
Habe mittlerweile einen Einstieg für mich in das Thema (Spiele-)Programmierung gefunden. Bei mir lief's über Flash, welches sich meiner Meinung nach extrem für Anfänger anbietet, da man sehr schnell, sehr ansprechende (grafische) Ergebnisse sieht.

Als Tutorials kann ich empfehlen:
http://www.emanueleferonato.com/ - allgemein sehr gute Quelle, dort gibt es ein sehr gutes 12-teiliges Tutorial darüber, wie man kachelbasierte Spiel erstellt (Achtung: Teilweise in AS2.0 geschrieben! Wenn man bei 0 mit Flash anfängt, gleich AS3.0 lernen!)
http://www.tonypa.pri.ee/tbw/start.html - ebenfalls über kachelbasierte Spiele; dient vor allem dem Verständnis, weil die Beispiele komplett in AS2.0 sind
http://asgamer.com/ - mehrere Tutorials, u.a. darüber wie man einen 2D-Shooter bastelt (sehr guter Einstieg für AS3.0)

Wer einen sehr ausführlichen Einstieg möchte und noch überhaupt keine Berührungspunkte mit Programmieren hatte:
http://www.amazon.de/Foundation-Game-Design-Flash-Foundations/dp/1430218215/ref=pd_sim_eb_1
7bdb669friendsofe.jpg


Davon abgesehen befidnet sich jetzt auch "C++ für Spieleprogrammierer" in unserer WG, aber da habe ich noch nicht reingeschaut.

PS:
Flash/ActionScript kann man wirklich shcnell lernen. Habe letzten Sommer damit angefangen ohne jegliche Kenntnisse im Bereich Programmierung und konnte jetzt schon Arbeitgeber für ein 6monatiges Vollzeitpraktikum als Flash-Entwickler von mir überzeugen :-) Freu mich schon auf die Arbeit da, auch wenn's nur selten was mit Spielen zu tun haben wird :lol:

EDIT:
@PsychoJoker: Dein drittes Buch "Game Coding Complete" sieht extremst interessant aus. Wie im ersten Posting schon erwähnt, werde ich in einem Jahr Projekte im Bereich Spieleprogrammierung zu aktuellen Hochsprachen haben. Sehe ich das richtig das "Game Coding Complete" sich auf C# bezieht? Habe mich bis jetzt noch nicht mit C# und C++ auseinandergesetzt, aber ursprünglich geplant mir C++ anzuschauen (alleine auch, weil wir mehr Bücher zu dem Thema eh schon in unserer WG haben). Hast du dich mit beiden Sprachen schon auseinandergesetzt? Welche findest du "besser"? Vor allem auch für den Einstieg in die komplexeren Sprachen. Wo liegen konkrete Unterschiede?
 
Zuletzt bearbeitet:
...
EDIT:
@PsychoJoker: Dein drittes Buch "Game Coding Complete" sieht extremst interessant aus. Wie im ersten Posting schon erwähnt, werde ich in einem Jahr Projekte im Bereich Spieleprogrammierung zu aktuellen Hochsprachen haben. Sehe ich das richtig das "Game Coding Complete" sich auf C# bezieht? Habe mich bis jetzt noch nicht mit C# und C++ auseinandergesetzt, aber ursprünglich geplant mir C++ anzuschauen (alleine auch, weil wir mehr Bücher zu dem Thema eh schon in unserer WG haben). Hast du dich mit beiden Sprachen schon auseinandergesetzt? Welche findest du "besser"? Vor allem auch für den Einstieg in die komplexeren Sprachen. Wo liegen konkrete Unterschiede?

Nö, Game Coding Complete ist komplett C++. Ich würde es keinen Einsteiger empfehlen, selbst wenn er C#-Kentnisse hat (C#-Kentnisse helfen sehr, aber du brauchst definitv C++). Ich kann ein wenig C#, werde also versuchen, deine Fragen zu beantworten.

Also "besser" kann nicht wirklich sagen, beide bieten Vorteile. C++ ist schwerer, da es dem System naher bietet jedoch OOP. In Sachen Syntax, ist C# wohl die bessere (darum auch für den Einstieg), in Sachen Effizienz C++. Allerdings muss man sagen, wenn man C/C++ kann, fällt der Einstieg in einer höheren Sprache leichter. Hinzu kommt, dass du bei C++ mehr beachten, zum Beispiel musst du reservierten Speicher händisch freigeben, bei C# übernimmt es der Grabage Collector.
 
Danke für deine Antwort. Super, dass es auf C++ ausgelegt ist. Die Beschreibung liest sich wirklich super, da es anscheinend sehr praxisnah ist. Das habe ich bisher bei ähnlichen Büchern vermisst. Dann weiß ich ja womit ich mich in einigen Monaten beschäftigen werde^^ (wenn ich mal wieder etwas mehr Zeit habe^^)

C++ ist schwerer, da es dem System naher bietet jedoch OOP

Heißt das, dass C# nicht auf OOP ausgelegt ist? Mir liegt OOP eigentlich ganz gut.
 
...

Heißt das, dass C# nicht auf OOP ausgelegt ist? Mir liegt OOP eigentlich ganz gut.

Sorry für die Verwirrung! C# bietet eigentlich noch mehr OOP als C++. Eigentlich könnte man sogar sagen, dass das OOP eher "draufgesetzt" ist. (Liegt wahrscheinlich daran, dass die Sprache doch ziemlich alt ist). Ich werde dir zeigen, was ich meine:

Hello World in C:
Code:
#include <stdio.h>
 
int main(void)
{
    printf("hello world\n");
    return 0;
}
Die Ausgabe (auf der Konsole/Shell) erfolgt hier über eine Funktion. Kein Objekt nur eine Funktion.

Hello World in C++:
Code:
#include <iostream>

using namespace std;

int main(){

    cout<<"hello world\n"<<endl;
    return 0;
}
Das Objekt cout wurde schon im Header iostream angelegt. Hier ist eine einfache Abstrahierung. Allerdings erfolgt der Einsprungpunkt noch immer über eine Funktion. C++ bietet OOP, man muss sie aber nicht zwangsweise unterstützen.

Hello World in C#:
Code:
using System;
class ExampleClass
{
    static void Main()
    {
        Console.WriteLine("Hello, world!");
    }
}
Anders ist es hier! Man sieht schon, dass man für den Einsprungpunkt eine Klasse anlegen muss. Desweitern müssen alle Funktionalitäten, die du haben willst über Klassen bzw. angelegte Objekte erfolgen!

Hoffe ich konnte alles ein wenig aufklären! :-D

EDIT:
Bitte sag mir, wenn du mit dem Buch anfängst (falls du es dir überhaupt kaufst). Werde dann auch wieder durchlesen, so könnten wir uns gemeinsam durcharbeiten.
 
Zuletzt bearbeitet:
Ja, danke für die Aufklärung :-)

EDIT:
Bitte sag mir, wenn du mit dem Buch anfängst (falls du es dir überhaupt kaufst). Werde dann auch wieder durchlesen, so könnten wir uns gemeinsam durcharbeiten.

Oh, das wird noch eine ganze Weile dauern! Bin den nächsten Monat komplett mit Studium ausgeplant und danach ist ein Intuos4-Kauf geplant, damit ich in den Semesterferien etwas zeichnen kann. Erst im nächsten Semester irgendwann folgt je nachdem wie ich Zeit habe C++ :-)
 
Zurück
Top Bottom