Schlange
Stand 01.01.2014

Computerspiele programmieren

Da ihr hier gelandet seid habt ihr wahrscheinlich vor ein eigenes Computerspiel zu programmieren. Ihr habt sogar schon die Vision eines schicken Egoshooters, MMORPGs oder Ähnlichem vor Augen, seid voller Tatendrang und sucht nur noch nach einer Anleitung wie ihr eure Ideen in die Tat umsetzen könnt?
Damit verfügt ihr schon mal über die richtigsten Voraussetzungen in die spannende Welt der Spiele Programmierung einzutauchen!

Allerdings muss ich euren Tatendrang leider ein wenig dämpfen, denn die Programmierung von Computerspielen lernt man leider nicht über Nacht. Vielmehr ist der Einstieg in die Spieleprogrammierung je nach verwendeter Programmiersprache oft eine große Herausforderung, da für das erstellen von Spielen neben einem guten logischen Verständnis und überdurchschnittlichen Mathematikkenntnissen auch ein großes Maß an Kreativität zum Beispiel für das erstellen von Spielgrafiken und 3D Modellen erforderlich ist. Zudem erfordert das programmieren von "großen" Spielen einiges an Programmiererfahrung damit euer Projekt auch mit mehreren tausend Zeilen Programmcode noch übersichtlich und effizient bleibt.

Es empfiehlt sich daher erst einmal alle Ideen über euer "großes" Projekt genau zu notieren und bei jeder neuen guten Idee die euch kommt zu ergänzen damit ihr später, wenn ihr durch das schreiben einiger kleinerer Spiele genug Erfahrung gesammelt habt euer eigentliches Ziel auch noch in Angriff nehmen könnt. Ja, ich muss euch leider dringend davon abraten von Anfang an an eurem "Traumprojekt" zu Arbeiten. Die Spiele die einem anfangs vorschweben sind in der Regel sehr komplex und werden sonst von mehreren professionellen Spieleentwicklern gemeinsam unter Arbeitsteilung realisiert da es nahezu unmöglich ist gleichzeitig ein erstklassiger Programmierer, Grafiker, 3D Modellierer, Soundkomponist usw. zu sein.

Nichts ist deprimierender als als sich bei seinem ersten Projekt zu übernehmen und dadurch die Lust zu verlieren weil ihr bestimmte Probleme noch nicht lösen könnt, Dinge viel zu umständlich angeht oder euch in eurem eigenen unübersichtlichen Programmcode verirrt. Dass ihr mich nun bitte aber nicht falsch versteht, ich möchte euch keinesfalls davon abbringen in die Spieleprogrammierung einzusteigen, vielmehr möchte ich mit diesen ernsten Worten am Anfang verhindern, dass ihr meine eigenen Fehler wiederholt. ;-)
Wenn man die anfänglichen Hürden überwunden hat macht man relativ schnell Fortschritte. Mittlerweile habe ich sogar mehr Spaß an der Spieleentwicklung an Sich als am fertigen Erzeugnis. (Wobei das positive Feedback der Spieler natürlich immer gut tut und zu Neuem anregt.) ^^
Aber nun genug der einführenden Worte, legen wir einfach los!

Hier könnte Ihre Werbung stehen! - bitads.net

Wie fange ich nun an?

Diese Frage ist gar nicht mal so einfach zu beantworten. Vielmehr hängt es davon ab wie eure bisherigen Kenntnisse sind. Falls ihr bereits in irgendeiner Programiersprache fit seid könnt ihr mehr oder weniger sofort mit der Programmierung beginnen bzw. euch eine geeignete Programmiersprache aussuchen. Wenn ihr bisher noch nie programmiert habt ist das auch kein Hals und Beinbruch, allerdings solltet ihr euch erst einmal mit den grundlegenden Techniken der Programmierung beschäftigen.

Welche Programmiersprache soll ich verwenden?

Diese Frage ist nicht ganz einfach zu beantworten. Prinzipiell kann man mit jeder Programmiersprache Computerspiele programmieren. Es kommt halt nur darauf an was für Spiele man dabei im Sinn hat. Schließlich lässt sich ein simples Textadventure auf Konsolenbasis mit jeder X-Beliebigen Sprache erstellen. Aber auch einfache 2D Spiele sollten mittlerweile mit allen gängigen Sprachen wie Visual Basic (.Net), Java oder anderen ohne Zuhilfenahme von OpenGL oder DirectX - Bibliotheken möglich sein. Stellt ihr die Frage nach einer geeigneten Programmiersprache für die Spieleentwicklung in einem Programmierforum werdet ihr mit großer Wahrscheinlichkeit die Antwort "C++" erhalten da dies eine sehr schnelle und hardwarenahe Programmiersprache ist.
Allerdings ist es auch eine der mit Abstand komplexesten und nicht gerade einfach zu erlernenden Sprachen, weshalb ich euch eher davon abraten würde C++ zu verwenden sofern ihr nicht bereits gute Kenntnisse (wirklich gute Kenntnisse) darin habt.

Doch es gibt mittlerweile sehr gute Alternativen zur Programmierung von Spielen. Ich persönlich bin mit der Programmiersprache Blitzbasic bzw. Blitz3d in die Spieleprogrammierung eingestiegen. Sie besitzt eine einfache Syntax (Grammatik) und ist von Grund auf für die Entwicklung von Computerspielen ausgelegt worden. Der interne Grafikkern basiert allerdings noch auf dem mittlerweile stark veralteten DirectX 7 und es lassen sich leider nur Spiele für Windows erstellen.
Wenn ihr euch damit zufrieden gebt ausschließlich für Windows oder die XBox zu programmieren ist die Programmiersprache "C#" in Verbindung mit dem Microsoft XNA-Game Studio eine gute (und kostenlose) Alternative da man dort ein fertig geschnürtes Paket mit allen für die Spieleentwicklung nötigen Werkzeugen erhält. Zudem existiert eine recht große Community die euch bei Fragen unter die Arme greifen kann. Leider ist der Einstieg in C# und XNA für Anfänger nicht ganz einfach da es sehr viele Möglichkeiten für Feintuning gibt die gerade Einsteiger leicht die Übersicht verlieren lassen können.

Game Engines

Den schnellsten Einstieg in die Spieleentwicklung bieten euch als Alternative sogenannte "Game Engines". Dies sind fertig geschnürte Pakete welche sämtliche für die Spieleprogrammierung nötigen Funktionen mitliefern und dem Programmierer sehr viel Konfigurationsarbeit abnehmen. Man kann sie in eine beliebige (natürlich von der jeweiligen Game Engine unterstützten) Programmiersprache einbinden. Aufwändige Algorithmen z.B. für die Konfiguration der Hardware, Kollisionsprüfungen usw. werden euch abgenommen und ihr könnt sofort loslegen und eure (3D) Charaktere auf den Bildschirm zeichnen lassen.
Ganz ohne Programmierung kommt man hier allerdings auch nicht aus, da die Spiellogik, sprich die Art und Weise wie eure Charaktere mit der Umgebung interagieren natürlich immer noch von euch gecodet werden muss.

Die Sprache Python (nach Monty Python benannt) eignet sich dafür sehr gut da sie gerade für komplette Programmiereinsteiger sehr leicht zu erlernen, gut wartbar ist und kostenlos (Open Source) verwendet werden kann. Python ist eine plattformunabhängige Programmiersprache mit der sich Programme für alle gängigen Betriebssysteme wie Linux, Windows oder MacOS programmieren lassen. Die Programmiersprache kommt von der Geschwindigkeit zwar nicht an "C++" heran, bietet allerdings die Möglichkeit Funktionsbibliotheken welche in schnelleren Programmiersprachen wie z.B. "C/C++" (Beispiel Panda3D) geschrieben wurden relativ einfach zu integrieren, weshalb sich Python hier auch für die Spieleentwicklung anbietet und aufgrund seiner Einfachheit wirklich wärmstens zu empfehlen ist!
In Verbindung mit Python sind vor allem die Game Engines "PyGame" und "Panda3D" sowie die in die 3D Moddeling Software "Blender" integrierte Gameenginge zu nennen, wobei Panda3D wie der Name schon sagt auf für die Erstellung von 3D Games ausgelegt ist und sowohl OpenGL als auch aktuelle Direct3D unterstützung bietet.
PyGame eignet sich hingegen hervorragend zur erstellung von 2D Spielen und umfasst zudem einfach zu bedienende und freie Sound sowie Video bibliotheken. PyGame basiert auf der in "C" geschriebenen SDL Bibliothek und ist auch dementsprechend schnell. Die kostenlose (Open Source) Game Engine Panda3D wird unter anderem von Disney eingesetzt und daher auch aktiv weiterentwickelt. Sie eignet sich sogar für MMOGs wie " Disney's Pirates of the Carribean" (© Disney) zeigt. Panda3D ist für die Programmierung mit der Programmiersprache "Python" ausgelegt, alternativ kann allerdings auch "C++" verwendet werden.
Die Blender-Gameengine (BGE) ist ingegrierter Bestandteil der Modellingsoftware Blender und ermöglicht deshalb sehr fließendes Arbeiten da man das Spiel mit nur einen Knopfdruck während der Entwicklung testen kann. Außerdem entfällt der lästige Import / Export von Game Assets. Die BGE ist unter der GPL lizenziert und kann Binaries fü Windows, Linux und OSX erstellen.
Gerade für Anfänger kann ich die BGE wärmstens empfehlen da man sich für die Erstellung von 3D Modellen eh mit Blender beschäftigen sollte wenn man kein Geld fü proprietäre Software wie Maya, 3DS Max oder Cinema4D ausgeben möchte.

Natürlich gibt es neben den hier vorgestellten auch noch weitere nicht weniger geeignete Programmiersprachen und ebenso eine Fülle von Game Engines die sich alle zur programmierung von Computerspielen eignen. Um den Rahmen dieser kurzen Einführung nicht zu sprengen möchte ich mich hier nur auf die bereits vorgestellten Werkzeuge beschränken.

LaymaXx hat sich für eine Spezialisierung auf Blender, Panda3D und PyGame entschieden da Anfänger hier in Verbindung mit Python wirklich sehr schnell Fortschritte machen und die Game Engines technisch einiges drauf haben.

Weiter zur Community

Zur Community

Besucherz√§hler Für Homepage
Autor:
Matthias Meike
Tannenbergstr. 6
47443 - Moers
(Deutschland)
email:

Weitere Infos finden Sie im
Blog -Disclaimer