Archive for Februar, 2010

PhaseRO Skripte

Freitag, Februar 19th, 2010

Als ich Admin auf PhaseRO wurde gab es vor allem einen großen Wunsch der Community: Mehr Events!
Es drohte bereits der Serverwechsel einiger großer Gilden, daher hatten, vor allem in den ersten paar Wochen, Events mit die höchste Priorität.

In der Zeit zwischen Valentinstag und Ostern 2009 entstanden daher einige interessante Skripte. PhaseRO ist mittlerweile leider offline. Ich bin aber der Meinung, dass es Verschwendung wäre, die Skripte einfach in meinen Backups vergammeln zu lassen.

Invasions

Jede Woche gab es eine neue Town Invasion. Mit einer Ausnahme fanden diese Invasions immer in Prontera statt. Anfangs wurden Wellen von Monstern zufällig auf der Map verteilt, dadurch verteilten sich die Spieler jedoch zu stark. In den späteren Invasions spielte ein GM (ich…) im Disguise-Modus den MVP und spawnte per Whisper Command die Monsterwellen. Letztendlich wurde der GM per Command versteckt und der MVP gespawnt. Auf der Script Roadmap stand kurz vor Schließung des Servers noch eine Automatisierung der Skripterstellung, damit auch normale Event GMs diese durchführen können – dies wurde leider nie realisiert.

Einige Invasion Skripte: Prontera 1, Prontera 2, Evil Snake Lord, Endless Tower, Winter (Ankündigung)

Etwas spezieller war die Lighthalzen Invasion. Nach der ersten, erfolgreichen, Invasion in Prontera wollte ich das Ganze etwas kreativer gestalten und habe eine grobe Storyline eingefügt. Die Spieler mussten während des Events mal in den Slums kämpfen, mal in der Stadt. Hintergrund war ein mysteriöser Rohrbruch am BioLab Eingang, durch den Monster in die Stadt kamen. Während des Events versuchte ein Techniker den Rohrbruch (der sich schnell auf die Stadt erweitert hatte) in den Griff zu kriegen. Dabei passieren ihm kleinere Missgeschicke, so wurden beispielsweise kurzzeitig alle Spieler auf der Map verwandelt. Letztendlich erhob sich der Lord of the Pipe aus den Tiefen des Rohes. (ja, ich bekam dafür Schläge vom Story-GM…)
Wahrscheinlich war das Event einfach zu schnell oder die Spieler wollten einfach nicht lesen. Jedenfalls wusste niemand so recht was er jetzt machen muss – bis auf die wenigen Ausnahmen, die die Broadcasts gelesen und verstanden haben. Unsere Schlussfolgerung aus dem Desaster war dann, dass wir uns in Zukunft auf simple Pronterainvasions beschränken würden. Weniger Arbeit für uns und offenbar mehr Spaß für die Spieler.

St. Patricks Day

Ein Feiertag der mir bisher nur vom Namen geläufig war. Nichtsdestotrotz haben wir gut eine Woche das passende Event geplant. Letztendlich gab es eine Brauerei mit irgendwelchen Cooking-Rewards – mit dem Skript hatte ich, abgesehen vom Bugfixing, allerdings nichts zu tun. Dazu wurden am Wochenende auf zufälligen Field Maps Leprechauns (kleine grüne Cookies aus der Toy Factory) gespawnt. Auf jeder Map mit Leprechauns befand sich ein Regenbogen. Wurde einer der Leprechauns getötet verschwanden sie und unter dem Regenbogen erschien eine Schatztruhe. Während das Event lief waren im Schnitt immer auf 5-20 Maps Regenbögen und Leprechauns zu finden.
InvasionLeprechaun Skript

Ostern
Die grundlegende Osterstory: Alle freuen sich auf ein schönes Osterfest, als plötzlich und völlig unerwartet am Sonntag zum Zeitpunkt der Invasion der böse Bruder des Osterhasen die Macht ergreifen will. Er wird zurückgeschlagen und zieht sich erst einmal zurück. Im Laufe der Woche fand der erste Teil des Events statt: 40 Osterhasen haben zufällig Spieler auf der ganzen Welt besucht und haben dort 5 Minuten lang Buffs verteilt. Dahinter stand wohl das komplexeste eAthena Skript was ich je geschrieben habe, aber bis auf ein Locking Problem lief es problemlos. Am Osterwochenende wurde dann der zweite Part aktiviert, eine modifizierte Version des St. Patricks Skriptes: Auf allen Fieldmaps waren Ostereier versteckt (~400 insgesamt). Nach bestimmten zeitlich festgesetzten Belohnungsgrenzen bekamen die Spieler dann entweder Eventpunkte oder Special Payments (Art Donation Währung auf PhaseRO). Zu einer ~15%igen Chance hatte der böse Osterhase diese Eier allerdings verflucht: Beim Berühren explodierten sie und spawnten je nach Level unterschiedliche Monster. Allgemein wurde das Event sehr positiv aufgenommen und hat auch teamintern eine Menge Spaß bereitet.
InvasionEvent Skript

Event Warp
Beim ersten Invasion Event waren viele Spieler gar nicht erst aufgetaucht, weil sie gerade in irgendeinem Dungeon waren. Daher wurde relativ früh ein System eingeführt, mit dem man per NPC festlegen konnte, wo das Event statt finden sollte. Spieler konnten dann Event anwhispern, wurden zum Ort des Geschehens gewarpt und konnten nach Beendigung wieder zu ihren alten Levelorten zurückkehren. Weiterhin war während der Events ein Auto-Resurrection Timer aktiv, um die vielen Leichen effizienter zu reanimieren.
Skript

Google und die Literatur …

Mittwoch, Februar 17th, 2010

… das klappt nicht immer.

Ragnarok Hosting Service

Dienstag, Februar 16th, 2010

Mal ein ganz eigennütziger Beitrag: Mit T-Bash betreibe ich nun seit geraumer Zeit einen Hosting Service für RO. Unser Hauptinteresse ist es, dass die Serverkosten getragen werden – großartig Gewinn schieben wir dadurch also nicht.

Jeder Kunde bekommt bei uns einen dedizierten V-Server. Bevor das nun als gameserveruntauglich abgestempelt wird – wir setzen auf Qualitätsserver. Heißt: Unsere Server sind nicht überfüllt, für jeden Kunden mehr als ausreichend Performance vorhanden, auch um unvorhersehbare Lastschwankungen abzufangen. Aber genug der Worte, einige Fakten:

Was bekommt man?

  • 1024 / 2048 Mb RAM (zugesichert / Burst)
  • 2 CPU Cores (Fair-Use)
  • 100 Gb Plattenspeicher
  • Unlimitierten Traffic (Fair-Use)
  • Webspace für Homepage
  • Patchspace (HTTP / Anonymous FTP)
  • Zugriff auf Datenbankserver
  • Automatisierte Backups
  • Support (eingeschränkt, siehe unten)
  • Auf Wunsch: Grundeinrichtung

29,95 EUR pro Monat (keine Einrichtungsgebühr)


Gameserver
Die Gameserver liegen auf einem Intel Core i7 920 mit 8 GB DDR3-1333 RAM. Unsere derzeitige Serverauslastung liegt bei etwa ~5% CPU Leistung und ~60% RAM Nutzung. Engpässe sollten also vorerst nicht auftreten.

Datenbankserver
Ihr bekommt Zugriff auf einen zentralen High-Performance Datenbankserver. Das bedeutet, dass der Gameserver maximale Performance bekommt und von keinen Datenbankzugriffen ausgebremst wird.

Support
Aufgrund unserer jahrelangen Erfahrung, sowohl im Bereich des RO Hostings, als auch mit allgemeiner Serveradministration, können wir euch bei vielen Problemen kurzfristig weiterhelfen. Wir haben den lieben langen Tag natürlich noch viel anderes zu tun und wir können nicht jedem 24 Stunden am Tag unsere Aufmerksamkeit widmen – es gilt hier also auch eine Art Fair-Use. ^_^

Backups
Datenverlust ist scheiße. Daher werden alle Datenbanken mehrfach täglich (Standard: alle drei Stunden) gesichert und auf vier physikalisch getrennte Servern verteilt. Eure Daten sind also sicher.

Fair-Use
Wir geben euch einen gewissen Vertrauensvorschuss und setzen keine genauen Traffic- oder CPU-Limits fest. Solltet ihr beispielsweise einen plötzlichen Spieleransturm haben und die Webseite benötigt kurzzeitig mehr Traffic – kein Problem. Torrentseeds sind dahingegen logischerweise weniger erwünscht. Grundsätzlich gilt: Was für einen Server eurer Größe realistisch vertretbar ist, bewegt sich im Rahmen. Im Zweifelsfall einfach kurz nachfragen.

Sollte jemand Interesse haben, einfach eine kurze E-Mail an hosting [at] un-a [dot] eu schicken. Details können dann kurzfristig über ICQ / MSN oder per Mail geklärt werden.

Hamburg, Teil 2: InnoGames

Dienstag, Februar 9th, 2010

Manchmal kämpft man jahrelang gegen ein Vorurteil, um am Ende wieder davon eingeholt zu werden.
Ein Großteil meiner Programmier- und allgemeinen IT-Kenntnisse habe ich über Ragnarok erlangt. C hat mit einigen eAthena Commands begonnen, Linux mit “Hey Sirius, du kennst dich doch aus – wie mache ich den Server unter Linux wieder aus?” “.. Öh, gute Frage”.
In der Schule stehe ich seit einigen Jahren quasi unter Generalverdacht, ein Zocker übelster Sorte zu sein. Meine Englischlehrerin wundert sich, warum ich nicht “Computer-Techno-Musik” höre und freie Zeit verbringe ich sowieso ausschließlich mit Zocken. Zugegeben, meine Seminarfacharbeit “Suchtpotenzial von Onlinespielen” war für meinen Kampf gegen dieses Vorurteil nicht gerade hilfreich, aber immerhin konnte ich die Frage, ob ich diese gefährlichen Onlinespiele denn selber konsumieren würde, stets verneinen!
Meine Suche nach einem dualen Studienplatz bin ich daher eigentlich vollkommen unvoreingenommen angegangen. Ironischerweise wirkte ein Unternehmen jedoch am vielversprechendsten – InnoGames, die Entwicklerfirma von Browsergames wie Die Stämme. Also doch Spielebranche? Mitte Januar habe ich nach einem Telefoninterview und einem Bewerbungsgespräch in Hamburg die Zusage bekommen. Einer der Entwickler hatte beim Bewerbungsgespräch einen Punkt angesprochen, den ich bereits befürchtet hatte: Durch meine bisherige Arbeit mit anderen Programmiersprachen könnte ich mich auf Dauer bei InnoGames unterfordert fühlen. Glücklicherweise wurde es mir jedoch sehr kurzfristig ermöglicht, meine Winterferien für ein Praktikum dort zu nutzen, wodurch ich einen ersten Eindruck bekommen konnte.

Das Video, mit dem sich InnoGames als Arbeitgeber vorstellt, beschreibt die Situation in der Firma wirklich recht passend:

Kay Schnittker, der als “Head of Tools” für den Entwicklungsbereiche Payment und Tools verantwortlich ist, betreute mich in der Woche. Daher wurde ich anfangs auch erst einmal in die verschiedenen Backend-Tools von InnoGames eingeführt – neben den klassischen Support-, Payment- und Übersetzungstools waren es doch überraschend viele. Mit den entsprechenden SVN Zugängen ausgestattet bekam ich die Aufgabe, eine Suchfunktion in einem der Tools einzubauen und mich dort ein wenig einzuarbeiten. Ich hatte vorher noch nie mit dem Zend Framework, bzw. dessen MVC Komponenten gearbeitet. Dementsprechend aufgeblasen wirkte das Konstrukt. Nach einer Weile ergab es aber alles irgendwie Sinn und mir erschloss sich auch der praktische Nutzen dieser Bloat-Lösung.
Anschließend wurde mir über eine kleine Frage zum Servercluster ein umfassendes Gespräch mit einem der Admins vermittelt. Ähnlich verlief es auch den Rest der Woche: Kay vermittelte mir in so ziemlich jeder Abteilung ein Gespräch, was mir über die Woche einige hochinteressante Einblicke verschaffte.

Um diesen Artikel nicht zu einer weiteren Wall-of-Text zu machen – hier ist ein Bild von einem Rotkehlchen, gefolgt von einer kurzen Erkenntnisliste!
Rotkehlchen!
(c) Andreas Trepte

  • Im The West Büro ist PHP nicht sonderlich beliebt – jüngster Erfolg ist die Durchsetzung eines Java Daemons.
  • Grepolis ist objektorientiert!
  • Die Stämme wären gerne so objektorientiert wie Grepolis, sind dafür aber zu alt. Das erfreut das Programmiererherz Tag für Tag.
  • Game Designer wissen nicht so ganz, wie ihre Arbeit definiert ist – haben davon aber mehr als genug.
  • Man hat immer Zeit zum Kickern. Wenn auch nicht immer für die Rückrunde.
  • CBT steht für “Cock and Ball Torture“. Quelle: Bürointerne Mailingliste – ein koreanischer Geschäftspartner hatte mit der Abkürzung CBT um sich geworfen. Die Bedeutung eröffnete sich spätestens nach einer Google Suche ;-)
  • Und letztendlich der Hinweis, der nach einer Woche Kaffeekonsum wohl am interessantesten ist: “Sei vorsichtig mit der Kaffeemaschine, ich würde vorher dran riechen, bevor ich trinke” … Oh.

Hamburg, Teil 1: Reisegeschichten

Samstag, Februar 6th, 2010

Die letzten Winterferien meines Lebens sind nun schon wieder fast vorbei. Ich habe die Woche genutzt, um ein Praktikum bei InnoGames zu machen. Nicht wirklich ein Praktikum, eher ein “Reinschnuppern”, da ich ab August dort mein duales Studium absolvieren werde. Glücklicherweise konnte ich bei T-Bash unterkommen, musste mir also keine Pension suchen. Einziger Nachteil: Er wohnt am anderen Ende von Hamburg.
Meine letzte Woche bestand also aus Aufstehen, Zug fahren, Inno, Zug fahren, essen und schlafen. Auf die Zeit bei Inno werde ich im zweiten Teil eingehen – ich muss zuerst meine Erfahrungen mit der Deutschen Bahn, beziehungsweise dem Hamburger Verkehrsverbund (HVV) los werden. Um kurz die (geplanten) Routen zu verdeutlichen:

Hinfahrt:

    Eisenach -> Kassel – IC (mit Platzreservierung)
    Kassel -> Hamburg – ICE (mit Platzreservierung)

Rückfahrt:

    Eisenach -> Kassel – ICE (mit Platzreservierung)
    Kassel -> Bebra – CAN
    Bebra -> Eisenach – CAN

T-Bash <-> Inno

    Halstenbeker Stieg -> Elbgaustraße – Bus (185 / 284)
    Elbgaustraße -> Harburg Rathaus – S-Bahn (S3 / S31)
    Harburg Rathaus -> InnoGames – Laufen

Erwartungsgemäß blieb es meistens nur in der Theorie bei diesen Routen.

Sonntag: Stehplatz deluxe
Erste Feststellung am Bahnhof Eisenach: Mein Zug fällt aus!
Ich also bei der Info angestellt, mir den Ausfall bescheinigen lassen und einen Ausweichzug über Fulda vermittelt bekommen. Da nicht nur mein Zug ausfiel und es noch ein paar andere Reisende Richtung Kassel gab, war der Zug dementsprechend brechend voll und ich durfte mir mit meinem Gepäck einen halben Stehplatz in einer penetranten, automatisch schließenden Tür teilen. Angekommen in Fulda wurde erst einmal durchgesagt, dass der ICE Richtung Hamburg 45 Minuten Verspätung haben würde. Glücklicherweise wurde ein außerplanmäßiger Halt eines anderen ICEs arrangiert und ich konnte nach einer halben Stunde Wartezeit einen Stehplatz in besagtem ICE ergattern. Nach einer gefühlten Ewigkeit wurde in Hannover sogar ein Sitzplatz frei! Die restliche Fahrt verlief erfreulicherweise dann relativ unspektakulär – nur noch Verspätungen im einstelligen Minutenbereich.

Montag: Flammen, Rauch, Verspätung!
Morgens verlief die Fahrt (abgesehen von der üblichen Busverspätung) ohne Probleme. Abends lief bis zum Bahnhof Elbgaustraße ebenfalls alles glatt. Ich habe den Bus Richtung Halstenbeker Stieg gerade noch von hinten sehen können, 2 Minuten später gefolgt von einer mittleren Kolonne Polizei- und Feuerwehrwagen. Als dann 10 Minuten später mein Bus kam war die Straße 500m weiter bereits komplett gesperrt und ich durfte den Bus nach angenehm warmen 30 Sekunden wieder verlassen. Es stellte sich heraus, dass ein Haus am Straßenrand gerade munter abbrannte – ironischerweise 200m von der Freiwilligen Feuerwehr entfernt. Auf meinem Fußweg rannten zumindest 5 Nachwuchsfeuerwehrleute an mir vorbei und fluchten lautstark über die Entscheidung, zum Brand laufen zu müssen. Am Ort des Geschehens war bereits alles verraucht und es hatte sich der übliche Pulk Gaffer gebildet. Über 4 Handytelefonate wurde ich zur nächsten Bushaltestation geleitet, um von dort zur nächsten S-Bahn Station zu fahren, um von dort dann den Rest zu laufen. Der restliche Fußweg war zwar nur geschätzte 2-3km lang, hatte es dank spiegelglatter Gehwege aber dennoch in sich.

Dienstag: Fußweg
Da in Hamburg während der gesamten Woche mehr oder weniger Wetterausnahmezustand herrschte, versuchte ich gar nicht erst einen fahrenden Bus zu erwischen, sondern wählte für Hin- und Rückweg den erwähnten Fußweg zur S-Bahn, es verlief daher auch alles glatt. Spiegelglatt – da Hamburg kein Streusalz mehr hatte und der Nachschubfrachter sich wohl verspäten sollte, war fast nirgendwo gestreut – auf Gehwegen schon gleich gar nicht.

Mittwoch: Verspätung <3
Morgens durfte ich wieder 20 Minuten auf den Bus warten, abends war aufgrund eines Polizeieinsatzes meine S-Bahn ebenfalls um 25 Minuten verspätet. Yey.

Donnerstag: Mittlerer Arsch der Welt
Der morgendliche Weg zum Bus war dank mangelndem Streusalzes wie immer eine Rutschpartie, die Busfahrt soweit aber kein Problem. Nun gibt es 3 S-Bahn-Linien, die von Elbgaustraße fahren: S3, S31 und S21. Letztere verwechselt man ganz gerne, vor allem wenn man gerade noch in den Zug hechten kann und bis zum Hauptbahnhof auch alles soweit richtig ist. Die Bahnfahrt dauert normalerweise 43 Minuten und es war zu dem Zeitpunkt meistens vor 8 Uhr morgens – ich habe die Zeit also zum Schlafen genutzt. Aus bloß-nicht-verpennen Gründen wache ich ca. alle 4-5 Haltestellen auf und vergewissere mich, dass ich noch weiterschlafen kann. Mein letztes Aufwachen war Dammtor, also noch eine Weile vor Harburg. Das nächste Mal bin ich dann aufgewacht und durfte mit einem Blick aus dem Fenster feststellen, dass ich irgendwo außerhalb des dicht bebauten Stadtgebiets auf einem tief verschneiten Bahnhof war: Mittlerer Landweg. Um das einmal zu verdeutlichen:

Arsch der Welt
A = InnoGames
B = T-Bash
C = Arsch der Welt aka. Mittlerer Landweg

Ich habe zugesehen, dass ich aus dem Zug komme und auf die nächste Bahn Richtung Zivilisation gewartet, welche 15 Minuten später dann auch kam – vollbepackt mit Zivilisation. Genauer gesagt mit geschätzten 50 herumspringenden Kindergartenkindern. Über Hauptbahnhof bin ich dann endlich in die richtige S-Bahn gekommen und kam mit 40 Minuten Verspätung gegen halb 10 bei Inno an.

Freitag: Richtung wechsle dich
Da mein Zug um 17:24 Uhr fuhr und ich deshalb nicht mehr Zeit haben würde, meine Tasche bei T-Bash abzuholen, habe ich sie am Hauptbahnhof in einem Schließfach verstaut. Gegen 16:30 Uhr ging es dann zurück zum Hauptbahnhof – logischerweise mit der S-Bahn Richtung Hauptbahnhof. Bloß blöd, dass dieser Zug entgegen des angezeigten Zielbahnhofs in die andere Richtung fuhr. Nachdem mich der Spaß also wieder 15 Minuten gekostet hat ging es dann mit dem richtigen Zug in die richtige Richtung. Mein Anschlusszug kam sogar pünktlich! Allerdings fehlte Wagen 6, wodurch die Wagenreihenfolge etwas chaotisch war und ich eine Weile nach meinem Sitzplatz suchen durfte. Ich weiß nicht, was die Bahn da angestellt hat, aber in Kassel fehlte in zwei weiteren ICEs ebenfalls Wagen 6. Dennoch – die Rückfahrt verlief ohne nennenswerte Probleme. Home, sweet home!