Schlagwort-Archive: Browsergameentwicklung

Testserver einrichten mit Vagrant – Provisioning

Testserver einrichten mit Vagrant – Provisioning

Im letzten Beitrag zum Einrichten eines lokalen Testservers war ich am Ende so weit, dass die nur mit Ubuntu als Betriebssystem ausgestattete, virtuelle Maschine erfolgreich gestartet werden konnte.

In diesem Beitrag dreht sich nun alles um die Konfiguration und das einrichten der virtuellen Maschine, dem sogenannten Provisioning.

Testserver einrichten mit Vagrant – Provisioning weiterlesen

Testserver einrichten mit Vagrant

Testserver einrichten mit Vagrant

Um ein Webprojekt sinnvoll entwickeln und testen zu können, muss man einen lokalen Testserver einrichten. Idealerweise bildet man dabei die Konfiguration der Live-Umgebung (Webserver, auf dem man seine Seiten veröffentlicht) möglichst 1:1 ab.

Welche Möglichkeiten man dabei hat, zeigt dieser Artikel.

Testserver einrichten mit Vagrant weiterlesen

Dev-Blog Donnerstag 16/16

Dev-Blog Donnerstag 16/16

Von Entwicklern für Entwickler

[Horst (Slayer)]

Der neue PC hat mich auch letzte Woche viele Stunden beschäftigt. Neben der Installation weiterer Programme habe ich nach und nach alle Daten auf den neuen PC geschoben. Das hat neben dem Ausmisten von alten Dokumenten auch eine Re-Organisation meiner Verzeichnisstruktur für Projekte beinhaltet.

Und da ich, wie angekündigt, ab sofort Vagrant einsetze, um meine Entwicklungsumgebung aufzusetzen, habe ich mich mit Vagrant und Provisioning näher auseinandergesetzt. Einiges an Zeit hat mich dabei das parallele Schreiben zweier Blog-Artikel (folgen demnächst) gekostet, die das Aufsetzen einer virtuellen Maschine anhand von Vagrant detailliert dokumentieren. Etwas einfach nur für sich aufzusetzen, geht relativ schnell. Alle Fallstricke für die „Nachwelt“ (und sich selbst für später) möglichst verständlich zu beschreiben, dauert einfach.

Und dann saugen mir seit einiger Zeit mehrere Dinge im rL nahezu die gesamte Energie ab. Was darin resultiert, dass eXperinox im Moment eher etwas zu kurz kommt. Aber wie heißt es so schön? „Alles wird gut!“

[Iwan (shlainn)]

In einer nahezu historischen Aktion haben wir mit Horst diese Woche ein uraltes Stück Code entrümpelt, das seit ewigen Zeiten an zentraler Stelle in experinox saß, aber schon lange nicht mehr verwendet wurde. Langjährige Spieler erinnern sich vielleicht noch daran, dass man früher explizit umschalten musste um Gebäude und Raumschiffe im Orbit zu bauen, anstatt wie jetzt im Baubildschirm einfach in den Orbit zu klicken. Das führte zu Verwirrung und einigen interessanten Bugs und wurde schließlich dank des Umbaus des Baubildschirms fast komplett obsolet. Und jetzt ist es an einer weiteren Stelle beseitigt. Yay 🙂

Die zweite Baustelle war diese Woche der Chat. Als ich damals die erste Version unseres beliebten Chats geschrieben habe, war das Ziel möglichst schnell einen funktionierenden Prototyp zu bekommen den man dann auf die User loslassen konnte. Und in diesem glorreichen Zustand war der Code bis gestern auch noch. Jetzt, ein dreiviertel Jahr später war es höchste Zeit, den Code aufzuräumen und umzustrukturieren. Wenn ich alles richtig gemacht habe, sollte sich für die User nichts ändern. Dafür sollte die neue Version sehr viel einfacher zu warten und zu erweitern sein.

Dev-Blog Donnerstag 33/15

Dev-Blog Donnerstag 33/15

Von Entwicklern für Entwickler

[Horst (Slayer)]
Nach wie vor steht der Geburtstags-Event im Mittelpunkt meiner Tätigkeiten. Während die Spieler fleißig ihre Ressourcen ins nächste Solarsystem kippen, heißt es für uns, bereits damit zu beginnen, an den versprochenen Belohnungen zu arbeiten. Und ein Raumschiff mit Sonderlackierung hat mich wieder einmal Blender aufrufen lassen. Echt übel, wie schwer ich mich da immer tue, wenn ich das Teil länger nicht mehr bedient habe.

Der Party-Raumer, ein Frachter mit Sonderlackierung
Der Party-Raumer, ein Frachter mit Sonderlackierung

Auch die Community Betreuung kostet aktuell etwas mehr Zeit als üblich, denn natürlich liegt uns etwas daran, dass möglichst viele auf das 3-jährige Bestehen von eXperinox aufmerksam gemacht werden.

Dazu poste ich auch im ein oder anderen Browserspiel-Forum einen entsprechenden Beitrag, wie z.B. bei Webgamers oder Pewn.

Wincachegrind (zur Performance-Auswertung von Profiles) zickt herum. „cannot find call target“. Kurz gegoogeld und auf einen Windows Port des Originals KCachegrind gestoßen. Funzt einwandfrei und kann mehr. So mag ich das!

Last but not least: diese Woche geht’s für mich auf das SummerBreeze – mit dem guten Gefühl, jemanden wie Iwan Zuhause zu wissen, der sich um eXperinox kümmert.

[Iwan (shlainn)]

Letzte Woche fiel ich mehr oder weniger aus dem Flugzeug vor den Rechner um die Stretch-Goals für die Geburtstags-Spendenaktion einzubauen – so schnell hatten die eXperinox-Spieler die drei ursprünglichen Ziele geknackt. Danach ging es etwas gemütlicher zu und es dauerte fast eine Woche bis das vierte Spendenziel erreicht war – aber das aktuelle Ziel (Nr. 5) ist nach kaum 2 Tagen auch schon zu über 50% erfüllt – haben wir einen Nerv getroffen?

In unserem anfänglichen Übermut haben wir dem noXiversum erhöhte Produktion der gespendeten Ressourcen versprochen – ohne dass bisher ein Mechanismus im Spiel existiert hätte um das umzusetzen. Meine Aufgabe war es daher, ein solches System zu designen und zu implementieren. Dabei wollte ich die Gelegenheit nutzen und für zukünftige Ideen vorbauen, sodass wir flexibel und effizient alle denkbaren Arten von Boni mit diesem System abbilden können. Derzeit laufen letzte Tests, aber ich bin mit dem Ergebnis durchaus zufrieden.

Bevor das Geburtstags-Event am kommenden Samstag zum Abschluss kommt sind noch einige Dinge zu erledigen und vorzubereiten – ich hoffe unseren Spielern macht das Event genauso viel Spaß wie uns, und man darf gespannt sein, wie weit es mit den Spenden noch geht…

Dev-Blog Donnerstag 27/15

Dev-Blog Donnerstag 27/15

Von Entwicklern für Entwickler

[Horst (Slayer)]
Wir haben uns stets hohe Ziele in Bezug auf Qualität gesetzt .
(„Bullshit-Bingo Volltreffer!“. 😉 . )

Dass sich so mancher Bug mehr wehrt, als andere,  davon weiß jeder Entwickler ein Lied zu singen. Und so passiert es dann im Laufe der Jahre, dass sich mehr Käfer ansammeln, als man es jemals wahrhaben wollte bzw. als es das hochgesteckte Ziel erlauben würde.

eXperinox zählt zu den komplexeren Science Fiction Browserspielen, wodurch auch jeder Spieler innerhalb des Spieles völlig andere Schwerpunkte setzt. Während einer seine Energie in das Sammeln und erforschen von Alien DNA setzt, bringt ein anderer am liebsten seinen Nachbarn Kaffee und Kuchen vorbei.

Das führt dazu, dass im Laufe der Zeit immer andere Pfade in der Software mehr oder weniger intensiv durchlaufen werden. Und damit auch dazu, dass sporadische Fehler zeitweise etwas öfter, dann aber monatelang wieder gar nicht auftauchen. Wodurch sich dann genau diese sporadisch auftauchenden Fehler im Backlog unseres Ticket-Systems zu sammeln beginnen. Und genau diesen wollen wir nun wieder etwas intensiver auf die Pelle rücken.

[Iwan (shlainn)]

Software-Entwicklung ist wie Tanzen: Man macht einen großen Schritt vorwärts, und dann zwei kleine zurück.

Während der Entwicklung eines großen Features kommt es immer wieder vor, dass man einzelne Aspekte als weniger wichtig einstuft und zurückstellt, um mehr Entwicklungsressourcen auf den Kern des Features fokussieren zu können. So entschieden wir beispielsweise bei der Entwicklung des Baubildschirms, dass die Kampfstärke der Verteidigungskomplexe nicht essentiell ist. Doch jetzt war es wieder einmal an der Zeit zurückzublicken und solche kleineren, auf viele verschiedene Systeme verteilten Features (und Bugfixes) anzugehen. Bug bash!

Ergebnis der Woche ist, dass in unserem Bug- und Feature-Tracker über 10 Tickets geschlossen werden konnten.

 

Dev-Blog Donnerstag 23/15

Dev-Blog Donnerstag 23/15

Von Entwicklern für Entwickler

[Horst (Slayer)]
Letztes Wochenende haben wir es dann geschafft: mit dem Singularitätsemitter haben wir eines der losen Enden in eXperinox geschlossen.

Bei der Umsetzung desselben hat sich wieder einmal erwiesen: „Planung ist sehr wichtig, der Plan ist aber nichts!“. Will heißen: Planung ist schon sehr hilfreich, aber man sollte am Ende doch flexibel genug sein, um den Plan jederzeit wieder über den Haufen zu werfen. Und das ziehen wir gnadenlos durch, auch wenn wir beide (me & Iwan) sehr zielstrebig sind, und nur ungern einmal gesetzte Termine aufschieben.

Bei den letzten Tests des Singularitätsemitters hat sich der ein oder andere Sonderfall ergeben, sodass wir mit der Umsetzung nicht 100% zufrieden waren.  Sonderfälle sind immer so etwas wie ein Alarmsignal. Denn sie produzieren in der Regel schwerer wartbaren Code und schlagen auch auf die Bedienbarkeit durch. Denn  in der Regel muss auch der Spieler dieser Sonderfälle „behirnen“.

Zu unrund von der Logik ist uns am Ende erschienen, dass man zum Beispiel weder Bauten noch Geburten laufen haben durfte, die Produktion von Ressourcen und Energie während des Transfers aber munter weitergelaufen wären.

Und so ist uns dann die Idee mit der Cryostasis und dem totalen Stillstand der Heimatbasis während des Transfers gekommen. Das hat am Ende 100% logisch für uns geklungen, hat aber in letzter Minute auch unser Zieldatum gekippt, da das einiges an Änderungen im Code ausgelöst hat. Wie auch immer: jetzt sind wir auf jeden Fall sehr zufrieden mit dem Ergebnis und hoffen, dass das auch unsere Spieler sind.

Nach der Fertigstellung des Singularitätsemitters habe ich mich dann dem fixen des ein oder anderen Bugs gewidmet. Ärgerlicherweise machte dann plötzlich der Debug-Mode Probleme (furchtbar langsam, statt 0,5 Sekunden dauert der Seiten aufbau 15 Sekunden) und auf die Schnelle habe ich dann auch keine Lösung gefunden. Und es nervt schon irgendwie, wenn die „Werkzeuge“ nicht so richtig funktionieren und eine Art Eigenleben entwickeln.

[Iwan (shlainn)]

Wenn dieser Text nicht zu lesen ist, war Iwan diesmal pünktlich 😉 .

Zu meiner Verteidigung war gestern Feiertag 😛

Immer wenn ein Feature fertig wird stellt sich danach die Frage: Und was jetzt? In unserem Fall ist das nicht zu lesen als „Hmm, jetzt haben wir nichts mehr zu tun“, sondern eher als „Okay, wir könnten jetzt eines von diesen 10 ähnlich wichtigen und komplexen Projekten angehen – welches wählen wir?“. Mit nur zwei Entwicklern ist Programmierzeit unsere wertvollste Ressource.

Um für zukünftige Projekte gut aufgestellt zu sein, habe ich mich diese Woche mit PHP Techniken und Technologien auseinandergesetzt, die wir in eXperinox noch nicht nutzen. Das Ziel ist es, mit neuen Techniken vertraut zu werden und so den programmiererischen „Werkzeugkasten“ zu erweitern, den man zur Verfügung hat.

Dev-Blog Donnerstag 21/15

Dev-Blog Donnerstag 21/15

Von Entwicklern für Entwickler

[Horst (Slayer)]
War 10 Tage  in Mallorca bin einiges gewandert und dabei fast in einer Schlucht (Mortitx) verdurstet. Aber das ist eine andere Geschichte 😉 .

Mallorca 2015 - Bucht von Alcudia
Mallorca 2015 – Bucht von Alcudia

Es war auf jeden Fall ein super Gefühl, jemanden wie Iwan zu Hause zu wissen, der alle potentiellen Probleme im Griff hat, während man selber einfach nur das Leben genießt!

Die eXperinox Woche startet mit einem Besuch meiner Lieblings-Spieleforen WebGamers und Pewn, danach eine Skype-Session mit Iwan.

Am Mittwoch hat auch wieder einmal ein Salzburger Games Workshop stattgefunden, in dem viele lokale Entwickler aus Österreich ihre Projekte vorgestellt haben. Es war sehr interessant zu sehen, was so alles an Spielprojekten in der nächsten Umgebung läuft. Natürlich habe ich dort den aktuellen Stand und weiteren Ziele von eXperinox präsentiert.

Codiert habe ich diese ersten Tage nach dem Urlaub so gut wie nichts, irgendwie war mein Kopf noch im Urlaubsmodus.

[Iwan (shlainn)]
Die Hauptarbeit am runderneuerten Koloniebildschirm ist abgeschlossen – noch ein paar Kleinigkeiten von Horsts Seite, und das Ding kann  raus. Ansonsten war diese Woche nicht viel zu berichten. :p

Der neue Baubildschirm von eXperinox

Der neue Baubildschirm von eXperinox

Seit November mussten eXperinox-Spieler sich gedulden. Doch nun ist es endlich soweit. Fast 400 Entwicklerstunden von Slayer und mir, 782 geänderte Dateien und  459 commits in unserem Versionskontrollsystem stecken in diesem riesigen Update. Doch bleibt ein Weilchen und hört zu, und ich werde ein wenig von der Entstehung des neuen, grafischen Baubildschirms berichten.

Der neue Baubildschirm von eXperinox weiterlesen