rohXel reloaded – Überblick

8 05 2012

Lange gab es nichts Neues. Das hat ein paar Gründe:

  • wir (tehforsch und ich) sind beide Studenten und haben neben dem Studium nich immer Zeit für rohXel was auch nur jeweils eines unserer Hobbys ist
  • Ende letzten Jahres haben wir uns entschieden rohXel von Grund auf neu zu gestalten da wir beide der Meinung waren das die “alte” Version nicht Netzwerkfähig zu kriegen war und wir außerdem ein immer größeres Struktur-Chaos im Spiele-Grafik-Physik Code hatten

Nun also ein kleiner Bericht (zunächst von mir [yonarw])

Das Problem an der alten Version war wie oben schon erwähnt das immer größer werdende Struktur-Chaos. Daher sind wir diesmal anders an die Sache herangegangen:

  1. Planung der groben Struktur
  2. Implementierung der Physik und Gafik Engine unabhängig voneinander.
  3. Erstellen der Spielelogik und aufbauen der Verbindungen zu den beiden Engines
  4. Entwicklung einer erweiterbaren Netzwerklogik mit mehrschichtigem Modell ( Logische Ebene -> Daten Ebene -> Socket Ebene)

Bis jetzt ist der Plan auch aufgegangen. Wir haben eine erste sehr (sehr) grobe Version des Spieles lauffähig und können dies auch über das Netzwerk transportieren.

Außerdem haben wir inzwischen einen halbwegs brauchbaren Editor der direkt an die Game-Engine angeschlossen ist und man somit per Knopfdruck die Physiksimulation starten kann bzw. gleich sieht wie das Geschaffene von der Grafikengine umgesetzt wird.





Autos, Zombies und anderes

21 12 2010

Hier nur ein kleines Video in dem der aktuelle Stand der Entwicklungen zu sehen ist:

Eine kleine Zombie-”KI” (läuft auf den Gegner zu, mehr nicht) sorgt für die “Herausforderung”, gut zu sehen sind die mittlerweile um einiges aufpolierte Grafik, die neuen Autos (andere Fahrzeuge sind auch schon programmiert, hier aber nicht zu sehen) und ein paar Waffen.





Update

14 12 2010

Das wir so selten was auf diesem Blog posten hat weniger damit zu tun, dass wir nicht an rohXel arbeiten sondern eher, dass wir ihn immer vergessen :)

rohXel hat jetzt Twitter. Sinn: Wir schauen häufiger in Twitter als in WordPress -> Vielleicht denken wir häufiger dran Neuigkeiten zu posten :)

Zum Spiel:

Wir schreiben zur Zeit hauptsächlich am Netzwerkcode.

Bisher war unser Ziel immer, das komplette Spiel, samt Logik dem Client zu übermitteln, so dass ohne Steuerung durch Spieler auf beiden exakt das gleiche passiert. Da dadurch für fast jedes neue Spielobjekt eine eigene Methode zur Synchronisation geschrieben und getestet werden muss ist es 1. relativ aufwändig zu programmieren und 2. schwierig instand zu halten, gerade bei Erweiterungen des Spielcodes.

Nachdem wir einige Versuche dieser Art gestartet und ziemlich schnell wieder aufgegeben hatten, beschlossen wir dem Client nur die physikalischen Objekte (Körper und Verbindungen zwischen Körpern), deren Aussehen (Farbe, …) und grafische Effekte wie Explosionen, Lichter, … mitzuteilen. In den relativ seltenen Fällen in denen von außerhalb Kräfte auf Objekte ausgewirkt werden (durch Explosionen, gescriptete Objekte wie Aufzüge o.Ä.) bekommt der Client Information über die neuen Geschwindigkeiten und Positionen der Körper mitgeteilt ohne dass er weiss, warum das jetzt passiert ist.

Der Client teilt dem Server nur seine Mausklicks und Tastenanschläge mit, die dieser entsprechend behandelt.

Der Code für diese Art der Synchronisation ist fast komplett fertig und funktioniert wunderbar, allerdings wird bisher kein Netzwerk an sich verwendet, sondern nur ein Testprogramm das einen Server und mehrere Clients verwaltet, die dann untereinander direkt Nachrichten austauschen.

Der eigentliche Netzwerkcode (Das sichere und schnelle Übermitteln von byte-arrays :)) funktioniert noch nicht hundertprozentig, wird aber wahrscheinlich nicht mehr lange dauern.

Wir arbeiten außerdem an Verschönerungen und Erweiterungen des Spielcodes. Es ist mittlerweile relativ angenehm den Spieler zu steuern, es gibt außerdem relativ umfangreiche Möglichkeiten Levels zu designen (Einfügen von Aufzügen, Setzen von Spawnpoints für Fahrzeuge oder Spieler, Gestaltung der Beleuchtung, Objekte im Vordergrund und Hintergrund, etc. )

Levels werden immernoch in .svg Dateien durch Vektorgrafiken erstellt, da sich diese Methode für uns gut bewährt hat.

Wie schon beim Punkt “Spawnpoints für Fahrzeuge” verraten, arbeiten wir auch noch an Fahrzeugen in die die Spielerfigur sich setzen kann, bisher ist das zwar nur ein Auto, es ist aber kein Problem auch Hubschrauber oder Raumschiffe zu schreiben, da das grundlegende Konzept das gleiche bleibt.

Um für das spätere Spiel eine faire Aufteilung der Punkte zu garantieren gibt es ein “InfluenceSystem”, das für jeden Körper in der Welt den aktuellen Besitzer bestimmt. Stösst ein Spieler einen großen, schweren Block von einem Hausdach auf einen anderen Spieler und kriegt Schaden davon, so sollte dieser Schaden dem Spieler der den Block gestossen hat angerechnet werden.

Das funktioniert soweit auch ganz gut, wann immer ein Körper eine Weile umher steht wird sein Besitzer gelöscht, erst wenn ein Körper, dessen Besitzer ein bestimmter Spieler ist einen Impuls auf den Körper überträgt (dessen Betrag über einer bestimmten Grenze liegt), wird ein neuer Besitzer zugewiesen.

Das Modell zur Berechnung von Schaden ist ebenfalls angepasst worden, so dass es realistischer ist, und es vorallem leichter wird, einen Spieler auch durch andere Methoden als nur Schüsse oder Explosionen zu töten.

Falls jemand daran interessiert ist, den Code von rohXel anzuschauen, findet er ihn hier. Auch Beiträge, seien es Ideen oder sogar Code sind natürlich dringend erwünscht.





Here we go!

19 06 2010

Endlich haben wirs geschafft! Die erste “Test”-Version von RohXel kann der Öffentlichkeit gezeigt werden.

Features sind:

  • Im Level rumrennen und sich von einem psychopathischen,schießwütigen Bot verfolgen lassen
  • Selbst Level mit Inkscape basteln
  • Videos aufnehmen (bisher nur Bildsequenzen)
  • Spaß haben ;)

Kurze Erklärung zu den Waffen:
Die erste Waffe die man nach dem Spawnen hat schießt im normalen Modus “schwarze Löcher” die alles anziehen was sie umgibt und dann irgendwann explodieren und dabei alles von sich wegstoßen. Im zweiten Modus macht sie das Gegenteil.
Die zweite Waffe schießt einfach nur Kugeln.
Die dritte dient als eine Art Schwert, mit ihr den Gegner zu “verprügeln” macht ihm mehr Schaden als mit einer normalen Waffe, zudem hat man mit ihr mehr Kraft und kann sie schneller bewegen und sich Wege freischaufeln oder sich wo hochziehen etc.
Die Vierte ist einfach nur eine Taschenlampe.

Download:
HIER
Viel Spaß beim spielen+testen!





still alive

25 03 2010

Rohxel ist längst nicht ausgestorben! Auch wenn dies zu vermuten war da hier schon lange nichts mehr passierte.

Viel Neues gibt es seit dem letzten Post zu berichten:

- Die gesamte Grafikausgabe geschieht nun über JOGL (OpenGL für Java). Damit hat man etwas mehr freiheit im Aufbau der Graphik-Engine und im Gegensatz zu lwjgl welches wir vorher verwendeten eine wesentlich aktuellere OpenGL implementierung.

-GLSL shader werden nun genutzt um Nachbearbeitungseffekte wie weiche Schatten oder Unschärfen zu realisieren.

-Die gesamte Spielelogik von Rohxel wurde neugeschrieben da sich der erste Entwurf als wenig dynamisch erwies

-Level können nun in einem Vektorgrafikprogramm ( Inkscape ) welches svg – Dateien exportieren kann, erstellt werden.

[Eine genaue Anleitung folgt sobald die Alphaversion fertig ist]

- Viele Bestandteile der Physik-engine wurden optimiert bzw. korrigiert.

- Erste Tests übers Netzwerk laufen (allerdings bedarf die Netzwerksynchronisierung noch einiger Arbeit)

- Ein erster Prototyp einer KI die sich durch die Levels bewegen kann (ohne davor ein festes Wegpunkt-Netz angegeben zu bekommen)

Die Planung im Moment ist: Eine spielbare Alphaversion fertig zu stellen mit der es zumindest möglich ist relativ fehlerfrei Level zu kreieren und in diesen viel Spaß mit einem/mehreren Computergegnern zu haben.

Hier ein paar Videos: Das erste Video dient nur zu Demonstrationszwecken welche interessanten Effekte mit unserer Engine in sehr kurzer Zeit erzeugt werden können und wie ausbaufähig das Spiel dadurch wird.





rohXel v0.7

1 11 2009

Nach langer Pause wieder ein Wort von uns:

Features in den letzten zwei Versionen:
- wesentlich schnellere und platzsparendere (Faktor 1 : 200) Engine (das war auch Version 0.6 deswegen kein Post nur zu 0.6)
- Ki die auf den Spieler zuläuft und schießt wenn sie ihn treffen kann (im Video schießt sie nicht, sonst wäre ich zu oft gestorben -.-)
- realistische Luftreibung, eine große Fläche erfährt mehr Reibung als eine kleine z.B. ( im Video nicht zu sehen)

klingt nach wenig Änderungen aber besonders die erste nahm sehr viel Zeit in Anspruch.





rohXel v 0.5

5 04 2009

Leider recht wenig sichtbare Änderungen ( da Yona fürs Abi gelernt hat, und deswegen nicht allzuviel Zeit hatte (das ist jetzt vorbei :))). Trotzdem ein grosser Schritt nach Vorne da sich das Spielsystem sehr stark geändert hat, so dass es jetzt wesentlich einfacher ist, das Spiel zu erweitern. Zudem lässt sich das Spiel im Prinzip übers Netzwerk spielen, Spielfiguren können sterben (im Video zu sehen) es gibt jetzt eine GUI (ebenfalls zu sehen) und der Renderer wird überarbeitet.








Follow

Erhalte jeden neuen Beitrag in deinen Posteingang.