Einleitung:
Ich will je niemandem den Spaß rauben, aber selbst unter Informatik-Studenten, die zumindest mehr theoretische Erfahrung haben, scheitern solche Projekte sehr sehr schnell, und zwar immer dann, wenn jemand "kein Bock" mehr hat.
Daher ist imo zu allererst wichtig, dass die Entscheidung ein Spiel zu machen eine wahre Lebensentscheidung ist. Quasi, will man Spieleentwickler werden (welcher Bereich auch immer) oder eben nicht. Erst, wenn man 100%ig sagen kann "Ja, ich will 100% nichts Anderes machen als Spiele zu entwickeln sofern man mir auch die Möglichkeiten gibt bzw. ich sie habe und wenn ich meine Meinung ändern sollte, soll mich Gott zur Hölle schicken", dann ist man meiner Meinung nach bereit. Aber nur bereit zu lernen... es ist ein wirklich langer Weg. Und gerade bei Hobbyprojekten und der "Freiheit", die man hat, gibt es wenig Motivation weiterzumachen.
Planung:
Vor allem Projektleiter sollten etwas über Projektplanung lernen. Dazu eine Einstiegsliteratur, was zu Beginn reichen sollte:
http://www.amazon.de/Software-Engin...4910406?ie=UTF8&s=books&qid=1192646054&sr=8-1
Geht am Besten wie folgt voran: Plant, erforscht Technologien (sei es eine Programmierbibliothek oder bereits eine fertige Engine), überprüft eure Planung auf Machbarkeit (geht es überhaupt mit der Engine X ohne was dazuzuprogrammieren etc), dann plant erneut. Dann könnt ihr euch an die Programmierung rangehen. Erste Testsamples schreiben, einen Prototyp erstellen (ganz kurzes Spiel, sei es nur, dass man die Figur in einem Level steuern kann, etwas rumschießen und vllt. noch Türen öffnen kann). Probleme analysieren, nochmal die Planung überarbeiten und weiter. Aber niemals die Planung aus dem Auge verlieren.
Während der Planung, könnt ihr euch auch mit fertigen Engines beschäftigen.
Programmiersprache C:
Ihr könnt euch zu allererst mit Programmierung beschäftigen, C/C++ ist eigentlich Pflicht. Es ist eine Tatsache, dass die meisten Spiele in C/C++ geschrieben werden. Grundlagen wie objektorientierte Programmierung (Kapselung, Vererbung, Automation, etc) sollten nicht fremd sein.
Um auch besser zu verstehen, was eine "Engine" eigentlich ist, empfiehlt sich dieses Buch, wo schrittweise eine Engine fertigprogrammiert wird. Imo sehr empfehlenswert:
http://www.amazon.de/Programming-Mu...ie=UTF8&s=books-intl-de&qid=1192647077&sr=1-1
Wichtig ist zu wissen, dass eine Spieleengine nicht nur aus einer Grafikengine besteht. Weiterhin gehören Dinge wie Ressource Management, Script Engine, Audio Engine, etc. dazu. Die Grafikengine kann man wieder in Scene Management, Rendering etc unterteilen. Aber das oben genannte Buch erklärt alles imo sehr gut.
Wenn ihr auf der im Buch beschriebenen Engine basieren wollt, ist es auch nicht falsch, denn das Buch nimmt euch in die Hand. Solltet ihr es vorhaben, wäre es auch nicht falsch etwas über die STL zu erlernen (nebenbei).
Andere Programmiersprache:
Eine Aussage von oben möcht ich noch konkretisieren: In komplexen Spielen ist die Auswahl der Programmiersprache nicht unwichtig. Meist entscheidet man sich für C u.a. wegen ihrer schnellen Laufzeit (was aber auch sehr vom Programmierstil abhängt).
Aber es ist nicht unmöglich Spiele in anderen Sprachen zu schreiben (auch wenn ich oben geschrieben habe C ist muss; eigentlich nur empfehlenswert bzw. gängig, wie soll ich sagen, einfach üblich. Viele (auch freie) Engines sind in C verfügbar, wodruch es sich wegen dem einfacheren Zugang zu Schnittstellen empfiehlt. Klar geht auch Java + C-Engine, aber sehr heikle Angelegenheit...)
Schnellere Ergebnisse kann man in Flash erzielen, was vor allen auch die Motivation aufrecht hält. Schaut euch mal in Google um.
Außerdem gibt es auch Engines in Flash, hier mal ein Hinweis:
http://www.golem.de/0707/53355.html
Weiterhin gilt aber imo, dass es eine Art Lebensentscheidung sein sollte... Imo nur an der Auswahl der Programmiersprache lässt sich diskutieren... Auch planen solltet ihr nachwievor.
Nur so ein Tipp, ebenfalls von einem Anfänger (mir selbst). Doch habe ich mich bereits hier und da etwas umgehört und kann euch zumindest zu Beginn einen kleinen Rat geben. Viel Glück.