Spieleprogrammierung

Hi,

Es folgt eine detaillierte Erläuterung. Um direkt zur Frage zu kommen, überspringt einfach die folgenden Absätze.

vorweg erstmal eins: Ich studiere im 5 Semester Informatik und bin seit gut 5 Jahren passionierter Programmierer. Diese Frage ist nicht "Wie kann ich ein Spiel programmieren ?" sondern etwas konkreter. Ein Computerspiel zu programmieren war immer schon mein Traum. Mittlerweile bin ich etwas ernüchtert vom immensen Arbeitsaufwand und habe mich bereits an verschiedenen Engines/APIs versucht. Vor 5 Jahren war der logische Einstieg in Spieleprogrammierung die Kombination C++/DirectX. Ich möchte niemand auf die Füße treten, aber C++ ist alles andere als einsteigerfreundlich. Wenn man "direkt" in DirectX programmieren möchte, kann man allein für eine korrekte Konfiguration einige schlaflose Wochenenden einrechnen.

Danach habe ich mich durch verschiedene Engines geskriptet. Bisher war Unity3d am angenehmsten. Leider muss man in der kostenlosen Variante auf einige essentielle Features verzichten: Schatten, Rendertextures, hochwertiges Wasser, ...

Nach meiner Abwendung von Unity3d fühle ich mich nun endlich gestählt genung, um ein kleines aber vollständiges Spiel zu entwerfen. Da ich sehr viel Zeit in dieses Projekt investieren möchte, will ich sichergehen, den ersten Schritt in die richtige Richtung zu machen: Die Wahl der Engine sollte stimmen.

Hier meine Kontrahenten:
Panda3d -> Python Skripting, Professionelle Entwickler, leider wenig "Tools": kein Szenegraph-Editor, hervorragender Support: Browser-Plugin, ...

Java MonkeyEngine -> Java Support, umfangreiche IDE

Axiom Engine -> C# Support

Bei den 3 Möglichkeiten habe ich die jeweiligen Besonderheiten hervorgehoben. Letzten Endes sind die Unterschiede nicht allzu groß, schließlich sind alles 3d Engines. Trotzdem möchte ich höchstmögliche Produktivität. JME habe ich bereits ausgiebig getestet und die Tutorials durchgearbeitet. Ich empfinde die Engine offen gesagt als etwas unhandlich, auch wenn ich meine Abneigung kaum begründen kann. Panda3d habe ich ebenfalls ausprobiert. Die Engine erscheint mehr als mächtig und profitiert unglaublich vom Python Support. Dennoch verunsichert mich die Abwesenheit von speziellen Tools.

Welche Spieleengine könnt ihr empfehlen ? Hat einer von euch Erfahrung mit Panda3d, JME, oder Axiom ?
 
Ogre3D

Ogre 3D
http://www.ogre3d.org/

Primär wird das SDK für Visual C++ (auch Express) angeboten, allerdings gibt es auch Python-, .NET- und Java-Ports, die auch offiziell supportet, aber nicht immer auf dem neusten Stand sind.

Da die Engine seit Version 1.7 unter der freien MIT-Lizenz vertrieben wird, gibt es viele Addons, wie zum Beispiel NxOgre, einen Nvidia-PhysX Wrapper.

Ich habe kein fertiges Spiel damit programmiert, aber das kommerzielle Spiel Torchlight hat ja gezeigt, dass es geht.

Ich selbst hab nach einiger Zeit der Einarbeitung, was Terrain, Sky, Licht und Schatten, das Laden eigener Models, dem Einrichten einer 3rd-Person Kamera betrifft, letztendlich sogar Raytracing mit dynamic_casts hinbekommen, sodass ich mit dem Fadenkreuz auf eine Schatztruhe geklickt hab und dann ist ein Schwert gedroppt.

Vorher hatte ich auch mal ein Paar C++/DirectX Tutorials durchgemacht und einen Mod auf der Unreal Engine angefangen, aber so richtig Erfahrung hatte ich nicht, und fühlte mich trotzdem von Ogre3D nicht überfordert.
Habe damals auch recherchiert; wäre echt überrascht, wenn jemand, der Ogre3D kennt, eine andere Engine bevorzugen würde.


Gruß,

André
 
Zuletzt bearbeitet:
Ich hatte mir Ogre3d schon einmal angesehen, werde aber nochmal einen Blick darauf werfen. Bisher hatte mich die Programmierung in C++ abgeschreckt. Die Python-Bindings wirken eher aufgesetzt. Meine Gedanken bisher: Wenn ich schon die systemnahe Variante wähle, dann doch lieber mit Python out-of-the-box.

Auf der Ogre3d Seite habe ich eine Referenz zur NeoAxis Engine gefunden. Sie scheint zwar nicht so reif wie Unity zu sein und hat ebenfalls mehrere Lizenzmodelle, die kostenlose Variante ist aber nicht so restriktiv. Ich werde mir mal ein paar Tutorials anschauen.
 
Zuletzt bearbeitet von einem Moderator:
Zurück