Wednesday, July 2, 2008

ViruZ

Im letzten Post habe ich schon ViruZ angeküngigt.
Ich will jetzt mal ein bischen über das Flashgame erzählen:
Es geht um eine Krankheit, die man mit einem Gegenmittel vernichten muss.

Das Spiel findet quasi in einem infizierten Körper statt (keine Angst an die Sanftmütigen: zur Darstellung ist jediglich der Hintergrund hellrot gefärbt).
Die Bakterien werden durch gelb-grünliche Kreise dargestellt, welche sich zufallsmäßig über den Schirm bewegen.
Das Gegenmittel wird per Mausklick an die Zeiger-Position injiziert. Da erscheinen dann ein paar blaue Kreise, die etwas größer werden und langsam auseinander drifen um nach kurzer Zeit wieder zu verschwinden.
Wenn nun ein Bakterium einen dieser blauen Kreise berührt wird es quasi Krank. Das Bakterium bewegt sich langsamer und innerhalb eines bestimmten Radiusses kann die "Gegenkrankheit" an weitere Bakterien übertragen werden. Nach relativ kurzer Zeit sterben diese, außer sie sind Resistent - dann werden sie durch etwas andere Farbe kenntlich gemacht und können sich weiter bewegen.
Man kann auch Punkte in sein Antiserum investieren, welches dann z.B. bewirkt, dass die Kreise schneller auseinander driften; dass doe Kreise größer werden; dass die Bakterien länger 'Krank' sind; dass weniger Bakterien Resistent sind; dass der Ansteckungsradius größer ist; und all sowas.

Soweit ist das Konzept. Die Idee bekam ich von diesem Spiel. Es gab ein paar Dinge bei denen ich dachte, dass ich es gern anders hätte. Und so setzte ich mich dran und bekam relativ schnell Ergebnisse. Während den drei Tagen kamen mit während dem Programmieren immer noch ein paar Ideen, was dazu führte das der Code hier und da unsauber wurde. Dazu kommt noch, dass es einige Zeit her ist, dass ich was mit ActionScript programmiert habe, und zuvor eigendlich nie richtig mit ActionScript 3.
Erst dachte ich, egal, wenn ich es release kann ich das ja einfach sagen und fertig - is ja kein Problem!
Aber der gute Programmierer ist eben perfektionistisch, und deswegen werde ich jetzt erstmal das Konzept ausarbeiten, mir ein grobes Code-Konstrukt ausdenken, anschließend von Vorne anfangen und schön sauberen Code schreiben.

Der Vorteil von sauberem Code ist, dass
a) das Programm schneller läuft,
b) das Programm kleiner ist,
c) man einfacher Dinge hinzufügen kann,
d) man schneller und einfacher Bugs(=Fehler) fixen(=reparieren) kann,
e) andere Leute den Code besser verstehen.
Zu Punkt e): Ich überlege mir den Code ebenfalls zu releasen - mal sehen. Hierbei erwähneswert ist wohl, dass alle Grafiken per Code gezeichnet werden.

Tuesday, July 1, 2008

20 Cheeseburger; D's 'n Scherz, oda?

Ich war letzte Woche mit ein paar Freunden in der Nähe von Achaffenburg campen. Die Zeit verging teils nur mit Mühe, weil das Tagesprogramm einige Lücken hatte.
Am Mittwoch hat es durch unsere Zelte geregnet. Kurzzeitig gab es gar Hagel. Wir wollten an diesem Tag grillen, was wir dann unter einem Dach taten.
Während die Einweg-Grille angemacht wurden, spielten wir ein selbstgemachtes Tabu (genannt "Tabu 2.0+" von Ionenbombe und mir). Es hat erstaunlich viel Spaß gemacht - uns als auch den Spielern.
Als ich am Donnerstag nur ein Frühstück und eine Frikadelle als Mittag- und Abendessen bekam - Ionenbombe erging es ähnlich - gingen wir zwei gegen 11Uhr abends zum McDonalds um 10 Cheeseburger für jeden von uns zu Bestellen. Dazu bekamen wir noch eine kleine Bestellung.
Wir planten unser Vorgehen im Vorraus, und so ist es dann abgelaufen:
Wir gehen rein, direkt zur Preisliste um sie ein paar Sekunden zu studieren. Dann treten wir einen Schritt zurück und tuscheln kurz. Wir bewegen uns Richtung Theke, ich stütze mich ab um mich etwas nach vorn zu lehnen, nehme Blickkontakt mit der Kassiererin auf und sage: "20 Cheeseburger!"; Sie fragt: "20?"; Ich antworte: "20". Ionenbombe nimmt seine Kappe ab, nimmt einen kleinen Zettel raus und fügt hinzu: "Und, ähh, dazu noch ein... ähh... McFlurry mit.. hmmh, Smarties und - ähh - noch... noch einen Cheeseburger." Wir bezahlen, die Kassiererin läuft zur Küche und ruft: "20 Cheeseburger!". Daraufhin kommt einer und fragt: "Des'n Scherz, oda??" Ich unterdrücke mir ein lächeln und sehe wie sich etwa 5 Personen langsam aus einer Art Pauseraum in die Küche bewegen. Die Kassiererin sagt: "20 Cheeseburger. Los, macht.", kommt wieder vor und sagt uns, dass wir uns setzen können bis die Burger fertig sind.
Da ich zu schnell aß schaffte ich nur 7, Ionenbombe aß 5. Den Rest wollten wir uns für das Frühstück aufheben, aber jemand hat Wind davon bekommen und so gaben wir die übringen Cheeseburger an die ganze Gruppe (welche sie natürlich schnell weg-fraß ;) ).

Fortschritte bei TGFT gibt es leider wenige (codingwise), da meine Grafikkarte einen Abgang gemacht hat. Mit meiner jetzigen kann ich Half-Life 1 flüssig, Unreal Tournament 1 auf minimum gerade so spielen. Half-Life 2 stürtzt da gerne mal ab.
Ich habe daher ein zwei Biblietheken gearbeitet, eine Input-/Output-Bibliethek, welche für Logs, Scripts und Netzwerk verantwortlich sein soll (UNICODE-Support! :) ), und eine Mathematik-Bibliethek, welche eben nützlichen Mathematik-krams wie z.B. Matrizen(rechnung) bereitstellen soll.
Zudem habe ich mich an ein Tic-Tac-Toe (ohne GegnerKI) gemacht. Ich habe möglichst guten Programmierstil verwendet, überall wo ich konnte optimiert und im Grenzfall kleinerer Code schnellerem bevorzugt.
Das Spiel (mit sourcecode) gibt's nun hier.
Sorry, dass ich keine Kommentare in den Code geschrieben habe :X
Und ich bin wieder an meine alten Wurzeln zurückgekehrt: Flash. Damals noch Mecromedia, heute Adobe Flash. Ich habe mir zu ActionScript 2.0-Zeiten alles selbst hergeleitet und beigebracht, und so einige Spiele programmiert. Als dann AS 3.0 kam und viel besser war, scheiterte ich am Umlernen. Heute verstehe ich es viel besser.
Wer will kann soweit mein aktuelles Projekt betrachten: ViruZ(Windows-Executable). Oder als Shockwavefile: ViruZ.
Und noch als letztes: KGB Archiver ist verdammt gut, wenn auch sehr langsam. Tortzdem vorbeischauen, wer ein tolles OpenSoruce-Komprimierungsprogramm haben will!