|
Es besteht die Möglichkeit für 4 bis 6 Gruppen Spiele mit ausgereiften 3D-Engines zu entwickeln. Für die Laborübung stehen die Open Source-Engine Ogre3D, die eine reine Rendering Engine ist, und die kommerzielle Shark3D-Engine von Spinor zur Verfügung:
Shark3D
Die kommerzielle Shark3D 3D Engine steht seit 2005 für die CG23 LU zur Verfügung. Warum eine kommerzielle 3D Engine?
Der Grund für dieses Angebot ist, daß im Alltag eines Gamedevelopers die Eigenentwicklung einer 3D Game Engine von Grund
auf eine zunehmend untergeordnete Rolle spielt; an deren Stelle tritt die Anpassung von lizensierten 3rd Party Engines.
Diese teilen sich sich in spezialisierte Engines wie z.B. die Unreal2-, Doom3- oder Half-Life-2-Engines oder allgemeiner
einsetzbaren Middlewareengines wie z.B. Renderware, Gamebryo (Netimmerse), Lithtech oder eben Shark3D. Eine wesentliches
Merkmal ist die Unterstützung der kommerziell sehr wichtigen Videospielplattformen, die aus lizenzrechtlichen Gründen auf
Open Sourceengines wie z.B. Ogre oder Fly 3D nicht verfügbar ist.
Shark3D ist eine moderne, extrem modular aufgebaute C++ 3D Multiplattformengine (PS2, XBox, PC Windows & Linux) vom
deutschen Softwarehersteller Spinor, die sowohl im kommerziellen als auch im akademischen Bereich erfolgreich eingesetzt wird.
Spinor hat dem CG Institut Support für die Student Licenses zugesichert, was nach negativen Erfahrungen mit dem Einsatz
unsupporteter Lizenzen von Renderware in der Vergangenheit besonders wichtig ist.
Shark3D für die CG23 Laborübung zu verwenden, bietet Studenten die Möglichkeit, sich mit einer mächtigen Middlewarelösung
vertraut zu machen und richtet sich an Leute,die schon etwas Erfahrung in der Programmierung mit C++ besitzen.
Die Aufgabe besteht hier nicht darin, mittels GLUT und etwas OpenGL Wissen das Grundgerüst einer 3D Engine zu
programmieren, sondern sich in ein mächtiges Framework einzuarbeiten und die darin verborgenen Möglichkeiten bzgl.
Echzeitschatten, komplexe Shader etc für die eigene Spielidee zu nutzen. Ein besonderes Feature dabei ist das
"dynamic resource update", das einen extrem kurzen Turnaroundzyklus erlaubt (näheres dazu auf der Spinor Webpage unter
"Workflow"). Das Hauptaugenmerk liegt dabei, neben dem Spielspaß, natürlich auf der Integration von Grafikfeatures.
Die Shark3D Features kurz zusammengefaßt:
- Renderer: Flexible Shadersupport, Shadowvolumes & -maps, Projected Shadows, Bumpmaps, Mirrors, ...
- Animation Engine: Skeleton, Hierarchical, Mesh, ...
- Physics: Integrated rigid body or 3rd party
- Audio: 3D, WAV & OGG
- Networking: High- & lowlevel network support
- Scripting: Integrated proprietary "Perch" scripting language, Java
- Platforms: PS2, XBox, Windows, Linux
XNA
Dieses Jahr steht euch das XNA Game Studio 3.0 zur Verfügung, mit dem sich mit C# Spiele für Windows und Xbox 360 entwickeln lassen. Als IDE wird dabei Visual Studio verwendet, weiters setzt XNA auf DirectX 9 auf, ist also praktisch der Nachfolger von Managed DirectX. Neben einem kompletten Framework sind einige praktische Tools und eine eigene Content-Pipeline inkludiert, euch werden also Arbeiten wie Model Loading, Window Management, etc. komplett abgenommen. XNA unterstützt KEINE Fixed-Function Pipeline mehr, d.h. alle Effekte werden als Shader implementiert.
Wir erwarten, dass euer Spiel auch auf einer XBox 360 läuft und stellen euch dazu eine Creators Club-Mitgliedschaft zur Verfügung. Das Institut besitzt weiters eine XBox 360, auf der ihr dort testen könnt. Die Kompatibilität zur XBox bedeutet hauptsächlich eine Einschränkung: Es können keine Unmanaged (C++) 3rd Party Tools verwendet werden, da diese nicht auf der XBox laufen. Das betrifft vor allem Physik-Engines wie PhysX. Es gibt aber bereits einige Alternativen, z.B.: JigLibX. Dieses Framework ist zwar noch in einer Beta-Version, funktioniert aber auch unter Xbox 360. Diverse einfachere Physik-Modelle sind auch bereits in einigen Starter-Kits implementiert, vor allem die BoxCollider Library im Ship Game.
Zum Begin ist es empfehlenswert, sich die Tutorials und Starter Kits genauer anzusehen, einige davon werden mit dem Game Studio mitgeliefert, weitere findet man unter creators.xna.com. Eine andere, sehr gute Ressource ist Ziggyware.
Wenn ihr ein Spiel mit einer fertigen Engine entwickeln wollt solltet ihr bereits Erfahrung mit Graphikprogrammierung und
C++ mitbringen, da diese Systeme sehr umfangreich und komplex sind.
Das Entwickeln mit fertigen Engines unterscheidet sich grundsätzlich vom Schreiben eines eigenes kleinen Spiels, da man zwar
eine umfangreiche Codebasis zur Verfügung hat mit der sich sehr schnell aufwendige Effekte und optisch ansprechende Ergebnisse
umsetzen lassen, man den Code allerdings erst überblicken muss. Da sich die Anforderungen nicht mit denen der anderen Gruppen
vergleichen lassen gilt für Engine-Spiele ein eigenes individuell abgestimmtes Benotungsschema.
Wenn ihr ein Engine-Spiel entwickeln wollt bewerbt euch unter cg23-engines#cg.tuwien.ac.at.
|