Microsoft Coding Camp

•April 16, 2012 • Leave a Comment

Ich habe dieses Wochenende an der Fachschule in Köthen verbracht um mit 3 Freunden von Acagamics am Windows Phone 7 Coding Camp teilzunehmen. Neben ein paar sehr netten Kontakten haben wir wirklich gute Erfahrungen mit den Microsoft Tools gemacht. Besonders Expression Blend stellte sich schnell als ziemlich cool heraus, denn nicht nur bei der Windows Phone Entwicklung, sondern auch für WPF kann man sich damit die Arbeit sehr erleichtern.

Alles in allem war es ein sehr gutes Wochenende. Ich kann allen nur empfehlen an solchen Coding Camps teilzunehmen.

Global Games Jam 2012

•January 30, 2012 • Leave a Comment

48 minus 4 Stunden (ganz ohne Schlaf ging nicht) und ein Team aus vier Leuten mit einer ziemlich verrückten Idee resultierte in einem Spiel namens Pony-Space-Color, Color-Space-Pony oder einer beliebigen anderen Permutation dieser drei Wörter. Unser erstes Konzept umfasste zwar noch einige Dinge, die wir aus diversen zeitlichen Gründen und dem doch recht kleinen Team nicht realisieren konnten, Letztendes haben wir aber die Features, auf die wir uns festgelegt haben, erfolgreich umgesetzt.

Unser Spiel ist ein klassischer 2D sidescrolling Platformer. Das Pony muss sich von links nach rechts durch eine Welt voller Gegner kämpfen. Dabei leuchtet das Horn – ja das Pony ist gleichzeitig ein Einhorn – abwechselnd in verschiedenen Farben. Je nach Farbe kann ein Lichtstrahl verschossen werden um die Gegner zu “verändern”. Jede Farbe hat einen einzigartigen Effekt auf die Gegner. So können die Opponenten nicht nur abgeschossen werden, sondern zum Beispiel auch als Heiler umfunktioniert, verdoppelt, vergrößert oder aggressiver gemacht werden. Allerdings kann eine Modifikation nicht wieder rückgängig gemacht oder getauscht werden. Der Spieler muss also sehr bewusst vorgehen oder mit den Konsequenzen leben. Wenn ein Abschnitt zu schwer wird, gibt es aber die Möglichkeit in eine Parallelwelt zu flüchten, indem man sich durch den brüchigen Boden stampft. Wie diese Parallelwelt aussieht, ist Glücksache, mit etwas Pech wird es schwerer als vorher, auch hier muss der Spieler mit den Konsequenzen leben. Im ersten Konzept sollten sich die Regeln in der Welt ebenfalls zufällig ändern (bspw. die Gravitation). Wenn der Spieler weit genug vorgedrungen ist, erwartet ihn ein besonders “weicher” Boss.

Steuerung

Gespielt wird am PC mit einem Xbox 360 Gamepad.

Linker Stick
Rechter Stick
Rechter Trigger
A
B
F
Bewegen
Zielen
Schießen
Springen
Stampfen
Vollbildmodus

Andere Gamepads können eigentlich auch benutzt werden. Die Tastenbelegung muss dann aber sehr wahrscheinlich angepasst werden, was derzeit nur über die xml im Unterordner “GamepadConfigs” geschehen kann.

Download

Das Spiel basiert auf meinem kleinen SlimDX Framework. Es gelten also die gleichen Voraussetzungen. Installiert sein muss nur das Visual Studio 2010 Redist x86 (auch auf x64 Systemen).

Download Executable PonySpaceColors

SlimDX und DirectX 11

•July 15, 2011 • Leave a Comment

Es wurde Zeit weg von OpenGL, XNA und DirectX 9 zu kommen. Die Wahl der API fiel dann natürlich auf DirectX 11. Allerdings mochte ich den Komfort von C# nicht missen und entschied mich deshalb für SlimDX. Anders als bei XNA muss man sich hier um ein paar Low-Level-Features selbst kümmern. Daher war ich erst einmal eine gewisse Zeit damit beschäftigt eine kleine Content-Pipeline aufzubauen, mich mit Multi-Threading zu beschäftigen und Input-Handling zu kapseln (daraus ist gleich noch ein kleines Tool entstanden, XnRemote).

Da das Master-Studium doch etwas mehr Zeit kostet, als das im Bachelor der Fall war, geht es mit diesem Projekt etwas langsamer voran. Im Moment wurden die genannten grundlegenden Features realisiert, ein einfaches Content-Management mit Reference-Counting, Gamestate-Management mit asynchronem Laden neuer States, ein View-Space-Deferred-Renderer und jede Menge Kleinigkeiten.

Inspiriert durch eine unserer Lehrveranstaltung habe ich HBAO (Horizon-Based Ambient Occlusion) implementiert, was schon ganz nett aussieht und dazu relativ wenig kostet.

Update

Der Sprite-Renderer meines Frameworks wurde um ein paar Funktionalitäten erweitert, um gewappnet für den Global Games Jam zu sein. Und Pony-Space-Colors kam dabei raus.

XnRemote

•May 15, 2011 • Leave a Comment

Wer kennt es nicht? Man legt sich gegen 1 Uhr nachts ins Bett, weil man merkt, dass die Zahl der Fehler, die Lines of Code übersteigt, kann aber noch nicht schlafen, da einem noch wahnsinnig viele Dinge durch den Kopf gehen, die unbedingt noch erledigt werden “müssen”. Man entschließt sich also, noch 2-3 Folgen seiner Lieblingsserie zu schauen. Doch nach der ersten Folge merkt man, dass man keine Playlist erstellt hat, weil der VLC-Player in den Fenster-Modus wechselt und schwarz bleibt. Doch die Maus ist so weit weg und im Bett ist so bequem 🙂

Mit diesem kleinen Tool, das nebenher abfiel, kann man seinen PC mit einem Gamepad steuern. Ich weiß es gibt viele solche Programme, doch meines ist das Beste! Punkt!

Über das Icon in der Taskbar kann man die Optionen erreichen und dort die Geschwindigkeiten anpassen sowie den Autostart einstellen.

Steuerung

Mit einem Xbox 360 Gamepad sollte das Tool auf jeden Fall funktionieren. Für andere Gamepads wird ein Unterordner mit einer XML für jeden anderen Gamepad erzeugt. Diese XML muss leider von Hand entsprechend angepasst werden.

Linker Stick
Rechter Stick
A
B
Y
Rechte Schultertasten
Start
Back
Linker Trigger
Linker Button
D-Pad
Schnelles Bewegen der Maus
Langsameres Bewegen der Maus
Linksklick
Rechsklick
Mittelklick
Scrollen
Enter
Escape
Leertaste
Backspace
Pfeiltasten

Start und Back gemeinsam über 2 Sekunden gedrückt halten, aktiviert bzw. deaktiviert das Tool, um bspw. beim Spielen nicht zu stören.

Download

Zum Ausführen wird das Visual Studio 2010 Redist x86 benötigt (auch auf x64 Systemen). Die entsprechende SlimDX.dll befinden sich schon in den Binaries.

Download Executable XnRemote – Version vom 02. April 2011

Parktikelsysteme auf verschiedenen Plattformen

•March 26, 2011 • Leave a Comment

Während des Praktikums bei Brightside Games bestand meine Hauptaufgabe darin, ein plattformunabhängiges Framework zur Modellierung, Simulation und Visualisierung von Partikelsystemen zu konzipieren und zu realisieren. Mein Konzept wurde nach einer entsprechenden Recherche- und Konzeptphase mithilfe von XNA 4 für PC, Xbox und Window Phone Seven umgesetzt. Das folgende Video zeigt einige Partikelsysteme, die mithilfe des Framework erstellt wurden.

Video aus der Verteidung

Praktikum bei Brightside Games

•March 20, 2011 • Leave a Comment

Zur Erstellung meiner Bachelor-Arbeit haben mich die Jungs des kleinen Indie-Studios Brightside Games in ihr Team aufgenommen. Neben der Thesis hatte ich viele Gelegenheiten mich auch an anderen Aufgaben zu messen. So war ich beispielsweise für die Anbindung des Debüt-Titels Zeit² an Steam zuständig und habe mir so meinen ersten Eintrag in den Credits eines richtig veröffentlichten Spiels verdient. YEAH!

Nach dem Release von Zeit² habe ich vor allem an Prototypen gearbeitet. Um was es da genau ging, kann ich hier natürlich nicht verraten. Es war auf jeden Fall sehr spannend die Vision der Game-Designer umzusetzen, zu diskutieren, anzupassen, zu diskutieren, zu verwerfen, anders zu versuchen, zu diskutieren, … alles in allem ein sehr lehrreicher Prozess, gerade unter dem Anspruch ein hohes Maß an Innovation einfließen zu lassen.

von links nach rechts: Christoph Reinbothe, Markus Bedenk, Thomas Bedenk,
Johannes Giering, Kai Rohmer (ich)

Download Zeit²

Zeit² auf Xbox Live
Zeit² auf Steam

Deferred Renderer

•September 25, 2010 • Leave a Comment

Die vorlesungsfreie Zeit ist vorüber, neben ein paar Tagen Freunden und Familie habe ich an meinem ersten Deferred Renderer gearbeitet. Viele Teile des alten Framework wurden überarbeitet und in ein neues Zweites eingearbeitet. Basis ist nun XNA 4.0 mit einem Deferred Renderer für das HiDef Profile und einem Fallback Forward-Renderer für Geräte, die nur das Reach Profile unterstützen. Ich habe hier neben dem eigentlichen Renderer auch mit der Integration in Windows Forms und den neuen Touch Features des Windows Phones experimentiert. Doch bevor es damit weitergehen kann, geht es erst einmal nach Berlin zu Brightside Games.


Deferred Rendered


Fallback WP7

Update

Brightside Games ist toll !!

Für Prototypen, an denen ich derzeit arbeite, nutze ich mein Framework. Da ich nun Zugang zu einer Xbox 360 habe, konnte ich meine Demos auch auf der Konsole zum Laufen bringen.

TankDogs

•May 28, 2010 • 4 Comments

TankDogs ist das erste, von hoffentlich vielen Spielen, das ich mithilfe meines Frameworks umgesetzt habe. Es handelt sich um einen absurden Top-Down-Shooter mit dem Ziel als gepanzerter Hund andere Hunde seiner “Art” abzuschießen. Die Idee zum Spiel stammt aus einem früheren Acagamics-Projekt, an dem ich mitwirkte. Damals wurde schon einmal  ein spielbarer Prototyp entwickelt, von dem allerdings nichts, außer der Idee, in diese Version übernommen wurde.  Die aktuelle Version des Spiels ist ebenfalls ein Prototyp. Zu einem fertigen Spiel fehlt es vor allem an Inhalt. Es gibt vorerst nur ein Level, eine Waffe, einen Hund in drei Farben und zwei Fahrgestelle in einem Spielmodus zur Auswahl. Angedacht sind von alldem natürlich mehr. Zusätzlich sollen Powerups und einige Items eingeführt werden. Bei Acagamics waren das beispielsweise eine Knochenangel, mit der man den Hund dazu bringen  kann, etwas schneller zu fahren. Ein anderes Bespiel wäre ein Ball, der geworfen wird, um gegnerische Hunde abzulenken.

Ziel des Spiels ist es im Deathmatch Punkte zu sammeln, diese gibt es für jeden Treffer und jeden überwältigten Gegner.  Falls man gerade keinen Gegner findet zeigt der “Schnüffelmodus” den nächsten feindlichen Hund.

Gespielt wird im Spit-Screen. Wahlweise 2 bis 4 Spieler, wobei das Spielen mit vier Personen natürlich am meisten Spaß macht. Dazu sind dementsprechend viele Xbox360 Controller notwendig.

Steuerung

Die Steuerung ist für geübte Xbox Spieler recht intuitiv:

Digital-Pad
A
Back
Linker Stick
Rechter Stick
Rechter Trigger
Linker Trigger
Navigieren im Menü
Bestätigen
Zurück / Beenden / Ingame-Menü anzeigen
Bewegen des Hundes
Zielen mit dem Fadenkreuz
Schießen
Schnüffelmodus aktivieren

Wer sich, wie ich, eher für die Technik interessiert, kann sich mit folgenden Tastenkürzeln einen kleinen Eindruck verschaffen:

F
C
P
Vollbildmodus aktivieren
Betrachter Modus ein/aus
Postprocessing ein/aus
F1
F2
F3
F4
Debug-Modus ein/aus
Bounding Boxes ein/ aus (nur im Debug-Modus)
Strahlen ein/ aus (nur im Debug-Modus)
Dreiecke Boxes ein/ aus (nur im Debug-Modus)

Depth of Field im Schnüffelmodus

In diesem Spiel sind die Modelle von mir selbst erstellt. Einige Texturen allerdings stammen von FilterForge.

Download

Da TankDogs auf dem XNA Framework basiert, müsst ihr zum Spielen entweder die Entwicklungsumgebung, bestehend aus Visual Studio und dem XNA Game Studio 3.1, installiert haben oder das Redistribution Paket installieren.

Download Executable TankDogs (Windows x86) – Version vom 29. Mai 2010

Systemanforderungen

Diese sind leider recht hoch. Ich arbeite mit:

Prozessor:                   AMD Athlon X4 mit 3400 MHz  (ein Kern)
Arbeitsspeicher:          4GB (benötigt werden nicht mehr als 300 MB)
Grafikkarte:                 Geforce 9800 GTX+

XnInSight – Multi Pass Lighting

•May 28, 2010 • Leave a Comment

Dies ist eine kleine Demo in der man das Multi Pass Lighting in Aktion sehen kann. Es sind 30 Punktlichter zusehen, die auf zufälligen Bahnen um das Model kreisen. Außerdem wird mittels Postprocessing ein Bloom Effekt erzeugt (das ist das “Überstrahlen” durch besonders helle Flächen).

Steuerung

Falls ihr einen Xbox360-Controller besitzt und er  vor dem Start der Anwendung angeschlossen ist, wird dieser erkannt und kann zur Navigation in der Szene genutzt werden. Falls nicht, ist das auch kein Problem, denn in diesem Fall kann man sich mit W,A,S,D und der Maus bewegen.

Mit der Y-Taste am Gamepad bzw. ALT auf der Tastatur kann man in den Vollbildmodus wechseln.

Mit der B-Taste am Gamepad bzw. LEFT-SHIFT kann man den Bloom-Posteffekt aktivieren und deaktivieren.

Die Back-Taste bzw. ESC beenden das Programm.

Am Gamepad kann man mit dem linken und rechten Trigger zusätzlich die Reichweite und Abfallfunktion der Punktlichter beeinflussen.

Das Model habe ich aus den Blogs der Dark Codex Studios. Die Tutorials dieser Seite sind übrigens genau so gut wie das Model 🙂

Download

Da XnInSight auf dem XNA Framework basiert, müsst ihr zum Starten entweder die Entwicklungsumgebung, bestehend aus Visual Studio und dem XNA Game Studio 3.1, installiert haben oder das Redistribution Paket installieren.

Download Executable MultiPassLighting (Windows x86) – Version vom 29. Mai 2010

XnInSight – Toon Shader

•May 28, 2010 • Leave a Comment

Hier ein ganz einfaches Beispiel eines Custom Shaders. Anhand des Winkels zwischen Oberflächennormale und Blickrichtung wird ein Grauwert aus einer 1D-Textur zur Materialfarbe multipliziert. Mit der richtigen 1D-Textur erhält man einen Toon-Shader.

Für das Bewegen in der Szene gelten die gleichen Regeln wie in der Multi-Pass-Lighting Szene.

1D-Textur für Smooth Toon Shading

Das Model habe ich aus den Blogs der Dark Codex Studios.

Download

Da XnInSight auf dem XNA Framework basiert, müsst ihr zum Starten entweder die Entwicklungsumgebung, bestehend aus Visual Studio und dem XNA Game Studio 3.1, installiert haben oder das Redistribution Paket installieren.

Download Executable ToonShaderDemo (Windows x86) – Version vom 29. Mai 2010

XnInsight

•May 28, 2010 • Leave a Comment

XnInsight ist ein kleines Framework. Basierend auf Microsofts XNA habe ich seit September 2010 einige Funktionaltäten gekapselt und diese in einer dll verpackt. Das Ganze ist weder für den professionellen Gebrauch gedacht, noch eine 100% fehlerfreie Lösung. Vielmehr ist es das Resultat meines persönlichen Lernprozesses. Begonnen hat dieses Projekt mit einigen einfachen XNA Tutorials und dem Implementieren des phong’schen Beleuchtungsmodells in HLSL. Diese Basis wurde dann weiter und weiter ausgebaut.

Ich versuche damit Features, die man aus vielen Spielen kennt oder in wissenschaftlichen Papers vorgestellt werden, zu verstehen und anschließend selber  zu realisieren. Auf diese Weise wird das Framework stetig um das eine oder andere Feature erweitert.

Im Moment gibt es ein paar grundlegende Elemente wie Entities, Collision Detection, Game State Management oder ein einfaches Menüsystem. Mein Interesse liegt aber mehr auf den graphischen Gebieten. So findet man beispielsweise ein Materialsystem mir Normal-, Height-und Specularmaps, Custom Shader, Post Effects, ein Partikelsystem, Key Morphing und Multipass Lighting.

Sobald neben dem Studieren und der Praktikumssuche wieder etwas  Zeit ist, will ich mich mit Shadow Mapping beschäftigen, was dann ebenfalls für möglichst viele Lichtquellen anschaulich und performant umgesetzt werden soll.

sitzKISTE

•May 27, 2010 • Leave a Comment

Teil 3 meines Nebenfaches wurde im vergangenen Wintersemester abgeschlossen. Im IPE-Projekt, Integrierte Produktentwicklung, haben wir im Team aus 6 Studenten einen Fahrsimulationsstand entwickelt. Ich war dabei für die Visualisierung verantwortlich, arbeitete aber natürlich in allen Phasen der Entwicklung aktiv mit und gewann so viele Eindrücke über den Produktentwicklungsprozess.

Visualisierung – Messestand

Panadome Sicht vom Eingang Gebäudeplanung

3Ds Max Kurs

•May 27, 2010 • Leave a Comment

Im Sommersemester 2009 habe ich an einem fakultativen 3Ds Max Kurs der Uni teilgenommen. Ziel der Veranstaltung war es einen Einblick in 3Ds Max zu bekommen. Es gab wöchentlich Vorlesungen mit Erläuterungen zu verschiedenen Features von 3Ds Max. Zwischen den Lehrveranstaltungen sollten dann kleine Szenen erstellt werden um das Gelernte praktisch anzuwenden.  Ich kann diesen Kurs sehr empfehlen, denn er bietet einen sehr guten Einstieg in die Modellierung.

Hier sind nun zwei Beispiele für solche Wochenaufgaben.

Umweltdesign

•May 27, 2010 • Leave a Comment

Umweltdesign war Teil 2 meines Nebenfaches. Hier ging es darum sich mit Architektur auseinanderzusetzen, ein Gebäude zu konzipieren, modellieren und in der späteren Umgebung zu visualisieren. Mein Gebäude sollte an der Elbe stehen und damit Verbindungen zum Wasser aufweisen. Dies wurde über die Gestalt, die an einen Schiffsbug erinnert, realisiert.

Modelliert wurde hier wieder mit Alias Studio. Das Rendering geschah mithilfe von 3Ds Max und etwas Unterstützung eines Freundes. Hier ist ein Link mit seinem Showreel des letzten Jahres. Vielen Dank noch einmal dafür Alex.

Produktdesign

•May 27, 2010 • Leave a Comment

Produktdesign und Umweltdesign sind Teile meines Nebenfaches. Dieser Kaffeeautomat war mein Einstieg in diesen Bereich. Er entstand im Sommersemester 2008 und wurde mit Alias Studio konstruiert und im Image Studio gerendert.

Wings

•March 19, 2010 • Leave a Comment

Diese kleine Anwendung entstand im letzten Sommersemesters. In diesem hörte ich “Grundlagen der Computergrafik” und sollte am Ende zeigen was so hängen blieb. Ziel war es einige Themen der Vorlesung praktisch umzusetzen.

In diesem kleinen Spiel soll man ein Raumschiff durch ein Asteroiden manövrieren. Dabei  ist die Größe und Form der Asteroiden zufällig generiert.  Sie kollidieren untereinander und verhalten sich entsprechend dem Impulserhaltungsgesetz. Das Feld selbst ist ein sich endlos wiederholendes Band. Asteroiden verschwinden, nachdem sie vom Schiff passiert wurden und tauchen am Horizont wieder auf. Wenn das Schiff unglücklicherweise mit einem Fels kollidiert, gibt es eine “tolle” Billboard-Explosion. Dabei wird das Schiff leicht ausgebremst und der Asteroid zerbricht in kleinere Brocken, die dann weiter durch den Gürtel treiben.

Steuerung

Um das Schiff zu steuern werden die Tasten W,A,S,D genutzt. Man kann es auch mit ‘.’ und ‘,’ auf die Seite drehen. Wer es gern etwas schneller mag drückt ‘r’ und verschafft sich so einen kleinen Schub.

Um das Szenario anzuschauen, kann man mit der Leertaste in einen Betrachter-Modus wechseln. In diesem wird mit W,A,S,D und Q,E,R,F,T,G navigieren. (am besten einfach ausprobieren)

Screenshot

Vielleicht findet sich später etwas Zeit um daraus einen Prototypen zu entwickeln, in dem sich dann auch ein paar Spielelemente befinden.

Download

Download Executable Wings (Windows x86)
Download Source WingsSource (Visual Studio 8 Solution)