GPN12:Gamejam:QSwoosh

aus dem Wiki des Entropia e.V., CCC Karlsruhe
Wechseln zu: Navigation, Suche

Ein GPN12:Gamejam Beitrag von Scummos und Synapse. Programmiersprachen: JavaScript, Qt Declarative, und 5 Zeilen C++ (optional)

Das Web wird dominiert von einer Sprache, von jedem gehasst gehasst und von niemandem geliebt (naja, fast) -- und doch sind wir von ihr abhängig. JavaScript: Broken by Design und trotzdem das Rückgrat des Web 2.0, jenseits von allen guten (Python) und bösen (PHP) Sprachen. Mit QML (Qt Modeling Language) gibt es nun in der Qt-Bibliothek die Möglichkeit, Benutzeroberflächen mit einer deklarativen JavaScript-Variante zu erstellen -- die Welteroberung von JavaScript geht weiter! Im Gegensatz zu den Mainstream-Projekten, welche den *Inhalt* ihrer Spiele auf das Thema beziehen, beginnt bei uns der Bezug zum Thema bereits bei der verwendeten *Technologie*: Desktop-Anwendungen in JavaScript zu schreiben ist ohne Zweifel "beyond good and evil".

GPN12-Gamejam-QSwoosh.png

Die zwei Spieler blau (good) und rot (evil) steuern je die Bewegung eines hochmodernen Raumschiffs in einer Arena. Das Ziel ist es den Gegner durch Rammen mit dem eigenen Raumschiff schnell gegen die Wand schlagen zu lassen, oder ihn durch geschickte Flugmanöver auszutricksen, sodass er selbst in sein Verderben fliegt.

How to play

  • Tasten für Spieler 1 (rot): Pfeil-Tasten und Alt Gr (für Bash)
  • Tasten für Spieler 2 (blau): WASD und lshift (für Bash)

Die Spieler versuchen durch Rammen und Flugmanöver den Gegner mit möglichst hoher Geschwindigkeit gegen das Hindernis und die Arena-Wände knallen zu lassen. Ab einer gewissen Aufprallgeschwindigkeit nimmt das Schiff Schaden. Nach einer Kollision mit einem Spieler ist die Steuerung für kurze Zeit weniger präzise und der Kollisionsschaden verdoppelt sich.

Zusätzlich gibt es einen "Bash", mit welchem man den Gegner ein Stück vom eigenen Schiff wegstoßen kann. Die Stärke des Stoßes (d.h. Impulsänderung) ist umgekehrt proportional zum Quadrat des Abstands. Der Bash hat einen Cooldown von 8 Sekunden, also nur einsetzen, wenn ihr nahe am Gegner seid!

Gameplay-Video

Hier ist ein kleines (1.7MiB) Video vom Spiel: http://files.feorar.org/qswoosh.webm (Mirror)

How to run

Vorraussetzung ist die Qt-Bibliothek, gestestet wurden Version 4.7 und 4.8.

Mit dem Qt-Programm qmlviewer lässt sich das Spiel ohne zu compilieren starten, einfach in den QSwoosh Ordner wechseln und qmlviewer main.qml in einer Shell ausführen. Wer lieber ein Binary haben möchte, kann das auch mit "qmake; make" erstellen; die QML-Dateien müssen aber immer noch im aktuellen Verzeichnis vorhanden sein (der C++-Code ist nur ein 5-Zeilen-Wrapper).

Download

  • Source: Git-Repository (wundert euch nicht über den Namen) oder Tarball von http://files.feorar.org/qswoosh.tar.gz
  • Binaries: Das Spiel ist in einer Skriptsprache geschrieben. In dem Tarball ist aber der kompilierte C++-Wrapper (ist gegen Qt 4.8.1 gelinkt, für linux-x86-64)

Das Ganze müsste auch unter Windows laufen, haben wir aber nicht probiert.

Bugs

Unsere Software hat keine Bugs. Software, die wir schreiben, hat nie Bugs. Manchmal bleibt allerdings die Steuerung hängen, weil von der Bibliothek kein KeyUp-Event generiert wird (aus unbekannten Gründen). Kurzes Drücken aller Richtungstasten behebt das Problem.


Auf nem Macbook funktioniert der Bash mit Alt Gr nicht.