Lunte – eine Hacksession
Tags: linux
Kategorie Rest | 5 Kommentare »
Ich habe heute mal ein wenig auf meiner Festplatte gestöbert und bin auf das Ergebnis einer Hacksession gestoßen. Warnung: Das ist jetzt wieder so ein echter Freak-Eintrag…
Am 1. Juli 2002 schickte ich zusammen mit Matin eine Email an zwei Freunde, die beide über eine künstlerische Ader verfügen (im Gegensatz zu uns). In der Stand auszugsweise:
Matin und ich haben uns ueberlegt, dass wir dem Informatiker in unseren gemeinsamen Studienrichtungen mal irgendwie alle Ehre machen muessen. Deshalb wollen wir mal eine kleine Hacksession veranstalten und damit alle Vorurteile bestaetigen.
…
Gewohnt wird nur bei uns, zum Essen wird es nur Cola und Pizza geben.
…Matin und ich haben schon seit langer Zeit die Idee ein Bomberman Clown zu programmieren. Dies soll in Java geschehen, damit das Teil systemunabhaengig ist. Wir wollen gute Grafik und es soll ein reines Multiplayer Game werden. Sound darf natuerlich auch nicht fehlen, genauso wie eine Homepage usw. Ihr seht reichlich Aufgaben, die wir nicht alleine loesen koennen.
…
Leider konnte der eine der Beiden nicht und so unterstützte uns lediglich der Hermes. Der Tat dies aber sehr gut und renderte uns ein schönes Bild nach dem Anderen. Hier sieht man zum Beispiel das angedachte Hauptmenü des Spiels. Man achte auf die Figur im Hintergrund, die gekonnt vor einer explodierenden Bombe davon rennt!
Die Herausforderung war, einen Bomberman-Clown in 3 oder 4 Tagen zu programmieren. Es sollte ein reines Netzwerkspiel werden, Computergegner waren nicht angedacht. Die Herausforderung waren enorm. Das Spiel sollte portabel sein und mindestens auf Linux und Windows laufen. Deshalb viel unsere erste Wahl damals auf Java. Doch schon schnell merkten wir, dass Java zumindest zum damaligen Zeitpunkt nicht für solche Vorhaben geeignet war. Matin hat sich dann später in seiner Diplomarbeit mit mehr Erfolg am Thema 3D Grafik mit Java probiert. Deshalb griffen wir auf C zurück und nutzten die SDL Grafikbibliothek. Das klappte auch ganz gut, nur gab es damals auch keine einheitliche Bibliothek für die Netzwerkkommunikation. Somit verbrachte Matin einen nicht ganz unerheblichen Teil der Zeit damit selbst eine kleine Bibliothek zu programmieren, damit die Netzwerkkommunikation sowohl unter Linux als auch Windows klappte. Als Übertragungsprotokoll kam UDP zum Einsatz, weil es wenig Overhead hat und damit schnell bei geringer Bandbreite ist.
Für die Animation nutzten wir eine klassische Trickfilmtechnik. Man betrachte die folgende Grafik, die uns zur Darstellung der explodierenden Bomben diente:
Im Spiel wurde diese Grafik eingelesen und dann die einzelnen Bilder mit kurzer Verzögerung nacheinander angezeigt. Dies klappte auch sehr gut und Dank von sehr schöner C Pointerakrobatik konnte man auch herrlich in den Dateien zwischen den einzelnen Bildern rumspringen…
Am Ende funktionierte ein erster Prototyp des Spiels. Man konnte sowohl den Server als auch den Client starten (allerdings ohne das hübsche Menü) und auch die Figuren bewegen. Auch das Legen einer Bombe mit cooler Explosion und entsprechendem Sound funktionierte. Leider war die Zeit dann aber doch etwas kurz. Wir haben in den 3 bis 4 Tagen immerhin knapp 8.000 Zeilen C gehackt, es gab einen auf Textdateien basierenden Leveleditor und jede Menge Spaß. Beeindruckend für mich war, was man selbst mit so einem kleinen unerfahrenen Team in so kurzer Zeit alles erreichen kann. Hätten wir vielleicht noch einen weiteren Mitstreiter oder mehr Cola gehabt, hätten wir die Sache zu Ende gebracht. Aber wer weiß, was nicht ist kann ja noch werden ;-)
Ich wollte es zwar noch nicht verraten, um mich nicht unter Druck zu setzen, aber dieser Text provoziert ja dazu:
Ich habe mich Lunte wieder angenommen und implementiere es zur Zeit in C#. Das ist bereits mein 3. Versuch. Die jeweils unterschiedlichen Herangehensweisen könnte ich eigentlich ebenfalls in einem kleinen Text dokumentieren.
Naja, ich klimpere hin und wieder nach der Arbeit daran herum, also allzu bald wird kein fertiges Ergebnis vorliegen.
Na das sind ja ganz tolle Nachrichten!!! Ich glaub, wir müssen mal telefonieren :-)
Ohoh, Erinnerungen.
Hier gibts noch ein „coming soon“ Bildchen. Es sah an dem letzten Tag dort wirklich nicht so aus, als hätte noch arg viel gefehlt. Was war eigentlich der Grund für den Abbruch. Ich glaube, irgendwer mußte wegen Familiengeschehnissen weg.
Matin, du Freak, du schreibst wieder was? Der admin will telefonieren. Oh, man darf gespannt sein.
Wer wäre eigentlich der vierte gewesen?
Erinnert euch an die großen weißen Blätter an den Türen mit Struktogrammen und Notizen…
Hehe, ja, selbst eine Homepage gab es schon :-) Ich glaub es gab diverse Gründe für den Abbruch. So fehlte irgendwann der Schlaf und man hatte eigentlich keine Lust mehr. Dann war auch die Zeit rum und es gab auch technische Probleme. Wir hätten die Architektur auf Threads umstellen müssen, aber das war wieder so ein Problem, wenn man das hätte plattformunabhängig machen wollen. Der Vierte wäre übrigens der Phox gewesen…
[…] Ich habe mal wieder etwas in den Untiefen meiner Festplatte gestöbert und bin dabei auf einen Animationsfilm gestoßen, den ich vor knapp 10 Jahren mit einigen Freunden gedreht habe. Da dachte ich mir, dass das nichts auf meiner Festplatte zu suchen hat, sondern nach Youtube gehört… […]