Jump! – Development

Updated: 26.10.09

jump

Weitere Seiten

Jump! – Offizielle Webseite (Domain wurde abbestellt)

Jump! – Development Videos

Jump! – Development Bilder

Jump! – Development Dokumente/Dokumentation

Jump! – Das Spiel

Jump! ist eine Mischung aus einem Jump’n'Run und einem Actionspiel an dem wir seit April 2008 arbeiten.

Das Spielprinzip ist schnell erklärt: Man steuert einen Charakter und muss seine Gegner mittels Kopfsprung eliminieren. Das ganze findet im 3D-Raum statt und wird im Netzwerk gespielt(LAN/Internet). Ein Singleplayer-Modus wird es nicht geben.

Aktuell gibt drei verschiedene Modies in denen man gegeneinander antreten kann. Zum einen das oben erwähnte Deathmatch indem lediglich die Frags und Deaths gezählt werden. Weiterhin gibt es noch GetTheItems. Dabei spielt man im Team und muss möglichst viele Items einsammeln die in der ganzen Welt verstreut sind. Das Team was die meisten Items einsammelt gewinnt. Zusätzlich gibt es ChatchTheChicken. Hierbei spielt einer das “Chicken” welches von den Anderen gejagt wird. Chicken wird man indem man am Anfang das Chicken-Item einsammelt oder es einem Anderen, wiederum durch einen gezielten Kopfsprung, abnimmt. Gewinner ist hier derjenige, der am längsten das Chicken war. Die Frags/Deaths in den beiden letzten Modies spielen eine untergeordente Rolle.

Um die ganze Sache etwas aufzupeppen befinden sich über die Map verstreut verschiedene Powerups, die man einsammeln kann und welche sich entweder positiv oder negativ wirken. Zum einen GodMode welches einem nach dem Einsammeln für 15 Sekunden unsterblich macht und zum anderen Freeze, welches einen für drei Sekunden unbeweglich macht.

Am deutlichsten wird der bisherige Fortschritt im Vergleich zu dem Visionsdokument (und Pflichtenheft), welches wir zum Projektbeginn geschrieben hatten. Alle anderen Dokumente, wie Pflichtenheft etc., werden wir sicherlich nach Beendigung des Projektes veröffentlichen bzw sind auch schon eine veröffentlicht. Siehe dazu nun:  Jump! – Development Dokumente/Dokumentation

Visionsdokument (.pdf, 180KB)

Jump! – Development

Wie ihr euch sicher denken könnt, ist so ein Projekt nicht alleine zu stämmen. Deshalb arbeite ich wieder mit Thomas Vogel (3D-Artist, Animationen) und Michael Palmer (Gamecode, Netzwerk) zusammen.

Meine Aufgaben sind und waren: Konzeption und Umsetzung einer Engine inklusive Sachen wie Physik, Effekte, Setup etc.!Auch an Teilen des Gamecodes arbeite ich und war unter anderem für die bisherige Lokalisierung oder auch der Inputenumeration zuständig. Natürlich betrifft das auch primär die Integration der Engine in das Spiel an sich. Weiterhin war ich mit für die Entwicklung des Deticated Servers zuständig.

Das Projekt wurde Anfang April 2008 im Rahmen der Lehrveranstaltung ‘Softwareprojekt I/II’ (ehemals TFH Berlin) gestartet.

Man muss aber dazu sagen, das wir anfangs parallel noch ein anderes Projekt bearbeiten mussten und uns somit nicht gleich komplett auf die Entwicklung von Jump! stürzen konnten. Vom alltäglichen Unialltag, Arbeit etc. mal ganz abgesehen ;-)

Das Projekt endete inoffiziell für die Lehrveranstaltung im Dezember 2008, jedoch werden wir alle drei noch bis zur wirklichen Fertigstellung im nächsten Jahr daran arbeiten (siehe Meilensteine).

In den letzten zwei Monaten haben wir insgesamt drei Testiterationen durchgeführt um uns Feedback zum aktuellen Entwicklungsstand einzuholen und auf deren Basis wir weiterentwickeln werden. Aktuell arbeite ich aber alleine weiter da Thomas und Michael zur Zeit in Australien verweilen.

Nächstes Jahre werden wir uns wohl primär um einige Gameplaysachen kümmern (müssen). Das betrifft z.B. die aktuelle Implementierung des Sprungverhaltens, Erweiterung des Spieles um neue Modies/Powerups, eine teilweiße Überholung des allgemeinen Spielprinzips und viele andere Kleinigkeiten.

Eventuell streben wir auch noch einen XBox Port an, um Jump! als XBox Live Indie Game zu vermarkten. Jedoch steht das absolut in den Sternen und hängt stark von der zukünftigen Motivation (und natürlich freien Zeit) ab, da dies nochmal einen ganzen Brocken Arbeit bedeuten würde.

Ansonsten sind wir trotzdem sehr stolz soweit gekommen zu sein und haben aktuell nicht die Motivation verloren noch ein paar Monate daran zu arbeiten (siehe Meilensteine).

Gut ich denke mehr brauch ich aktuell auch gar nicht mehr schreiben. Wer sich für Details interessiert kann gerne sich das Pflichtenheft und die verschiedenen Spezifikationsdokumente ansehen, um den konkreten Fortschritt zu begutachten. ->Jump! – Development Dokumente/Dokumentation

Aktuelles an dem ich gerade arbeite

In der letzten Zeit habe ich mich verstärkt um das Kamerasystem und um das Partikelsystem gekümmert.

Bei den Kameras sind neben der intelligenten auch noch eine Spectator, eine Free und eine weitere FirstPerson mit Maussteuerung hinzugekommen. Die intelligente Kamera bereitete mir einiges an Kopfzerbrechen und das nicht nur aus Perfomancegründen. Wir haben uns darauf geeinigt, gerade weil es ein schnelles Spiel ist, nicht die Kamera in ihrer Position zu ändern, sondern die Objekte die im Weg sind bei Alphablending transparent zu rendern. Das verwirrt letztendlich den Spieler nicht so sehr und sorgt für einen guten Spielfluss.

Für die Implementierung der Partikel setze ich mittlerweile auf das Dynamic Particle System Framework. Dieses machte gleich zu Anfang einen guten Eindruck und überzeugt durch den großen Umfang an verschiedenen Partikelsystemen, eine saubere und gut zu erweiterende Schnittstelle und nicht zuletzt durch viele Samples.

Aktuell strukturiere ich die ganze Engine um so das es wohl bis nächstes Jahr, wenn es direkt am Spiel weitergeht, nix neues zu sehen gibt.

Meilensteine

  • April ’08 Projektbeginn
  • August ’08 Prototyp
  • Oktober ’08 Alpha-Version
  • November ’08 Beta-Version
  • Dezember ’08 Release-Version
  • August ’09 unsere offizielle Alpha-Version

Geplante Meilesteine:

  • 2. Quartal ’10 unser offizieller Release

Beta-Version 2. Quartal ’09

Was ist bis dato noch zu tun?

  • eine weitere Map
  • Materialsystem
  • Cell/Toon-Shader
  • (XBox Portierung)
  • Änderungen an der Spielmechanik/Gameplay
  • Snapshotsystem (Debugging)
  • Dokumentation
  • DeviceEnumeration fertigstellen
  • viele Engine-interne Änderungen

Technische Details

Die Engine und das Spiel selbst wird mit dem XNA Framework 3.0 unter C# entwickelt. Es werden weitere Hilfsbibliotheken benutzt und die im folgenden Abschnitt mit gelistet werden.

Engine(zPhere)

Die Engine(Entwicklungsname: zPhere) basiert prinzipiell auf der Roe2-Engine wurde aber in vielen Teilen überarbeitet und vorallem erweitert. Unter anderem wurde zum großen Teil der Szenegraph und das Modelhandling geändert bzw. neudesignet, eine Soundschnittstelle hinzugefügt oder aber die Physikbibliothek BEPU physics implementiert. Es wurden aber Teile wie Terrain, Winformsupport gar nicht erst übernommen, da sie für uns keine Relevanz haben und für spätere Projekte, falls notwendig,  selber implementiert werden.

Ein paar Eckdaten:

  • Szenegraph/Scenemanagement (u.A. OccluderCulling, eine Implementierung des GGRS)
  • effizientes Modelhandling (static, input, animation, inputanimation, physic)
  • Physikimplementierung mit BEPU physics
  • Skeletal Animationen mit der XNAnimation Library
  • Postprocessing  mit Hilva Graphics Engine
  • Partikel mit Dynamic Particle System Framework
  • Soundschnittstelle
  • Inputsystem
  • GameScreen-Handling
  • Cameras (Chase, FirstPerson, Spectator etc.)
  • Contentmanager

geplante Features (teilweise unabhänig von der Jump!- Entwicklung):

  • Light/Shadow-System
  • Materialsystem (zur Zeit nur Quick’n'Dirty)
  • Terrain (Geomipmapping, Geometry Clipmaps etc.)
  • Octree
  • intelligente Camera

Anderes

Jump! wird vorrangig von Michael entwickelt und benutzt logischerweise die zPhere als Game- und Renderengine. Mittlerweile ist die Netzwerkimplementierung zum Teil mit in die Engine integriert um so theoretisch sofort andere Projekt netzwerkfähig implementieren zu können. Weiterhin gibt es einen Deticated-Server welcher komplett ohne GraphicsDevice auskommt und somit auf jedem Server im Internet lauffähig ist.

Die Netzwerkimplementierung basiert auf der Lidgren Library.

Hier findet ihr einen kleinen Artikel von Michael zu der Netzwerkimplementierung!

Jump!-Bilder

Für die Bilder wurde der Übersicht halber eine extra Seite eingerichtet: Bilder

Jump!-Videos

Für die Videos wurde der Übersicht halber eine extra Seite eingerichtet: Videos

  1. 4 Responses to “Jump! – Development”

  2. Alter da hat sich ja richtig was entwickelt. Ich bin stolz auf dich! Funktioniert super!

    By Steffen on Okt 27, 2009

  1. 3 Trackback(s)

  2. Nov 4, 2008: Spielentwicklung als SWP » Michael Palmer
  3. Mai 11, 2009: Dev-Blog von Florian Oeser » Blog Archive » Jump! Development Video
  4. Okt 26, 2009: Development-Blog von Florian Oeser » Blog Archive » Jump! – Update

Post a Comment