Archive for the ‘Technisches’ Category

Es gibt Tage, da hätte ich große Lust den Fricklern mal so richtig die Meinung zu geigen.

Grund:

Fatal error: Call to undefined function mysql_connect()…

Eigentlich nicht tragisch, aber… Die Leute von PHP sagen, es ist ein Fehler in MySQL. Und die von MySQL sagen, es ist ein Fehler in PHP. Und keiner bringt brauchbare Lösungen.

Beim Versuch der Lösung dieses Problems, bin ich dann dahinter gekommen, dass die php.ini welche bei PHP 5.2.5 dabei ist, total Grütze ist und schon beim Start über 20 Fehler bringt. Da werden einfach mal Module eingebunden, welche es nicht gibt.

Nach vielen vielen Tutorials, HowTo und FAQs bin ich dann dahinter gekommen, dass…

Frickler Award

  • …PHP es MySQL in die Schuhe schiebt und umgekehrt.
  • …der MSI-Installer der Versionen 5.2.5 und 5.3.0 Dev nicht nur Bockmist baut, sondern auch noch eine unbrauchbare php.ini mitbringt.
  • …in der Windows Version von PHP C:\Windows als Pfad für die php.ini HARDCODED eingetragen wurde.
  • …in der aktuellen Version von PHP Unmengen von Sachen eincompiliert wurden, welche schon bei einem Aufruf mittels “php -m” mehr Fehlermeldungen ausspucken, als die Hilfe selbst groß ist.
  • …dieser Fehler NUR unter Windows vorhanden ist.

DING DING DING Und da war er der 5. Fricklerpunkt!

Und somit bekommt PHP den Frickler-Award der Woche!

Der LINQ Benchmark hat ein kleines Update erhalten.

Beim Benchmark 2 Run 2 fehlte die Zuweisung zum Objekt. Außerdem werden jetzt noch Zusatzinformationen ausgegeben um eine leichtere Zuordnung zum jeweiligen Abschnitt in der Dokumentation zu ermöglichen.

LINQ_Benchmark.zip (232 KB)

Die Werte haben sich nur geringfügig verändert, was wohl eher an der niedrigeren Grundlast auf der Testmaschine lag. Ansonsten ist die Verteilung gleich geblieben.

Jetzt wo .NET 3.5 mit LINQ raus ist, bin ich neugierig geworden ob LINQ mir Arbeit abnehmen kann.

Da ich z.B. beim Dynamic Data Cache keine Datenbank verwende und den Zugriff auf die gecachten Datenobjekte umständlich programmieren muß, baute ich mir ein Benchmarktool.

Das Tool selbst ist eigenständig zu sehen und war für mich ein Testballon zum Thema LINQ.

Wer mehr darüber lesen will, der kann sich unter dem folgenden Link die Dokumentation, Sourcen und benötigten Dateien herunter laden:

LINQ_Benchmark.zip (224 KB)

Und hier noch kurz das Ergebnis:

LINQ benchmark result

Danke übrigens nochmal an TheUndeadable, der mir mit Tips und Korrekturlesen geholfen hat!

Es ist geschafft! Version 0.1 vom DynamicDataCache ist fertig!

Dynamic Data Cache v0.1

Aber was ist das? Der DynamicDataCache (kurz DDC) ist nichts anderes als ein Ersatz für eine Datenbank.

Man “wirft” ein Objekt rein und holt es später wieder raus. Zusätzlich gibt es einen GarbageCollector, welcher regelmässig oder auf Anforderung diesen Cache scannt und wenig genutzte Objekte rauswirft. Das hört sich einfacher an, als es ist. Dadurch das die Daten alle im Hauptspeicher liegen, kann man extrem schnell drauf zugreifen.

Das ganze Konstrukt wird in den nächsten Wochen noch gewaltig erweitert. Sobald es einen bestimmten Punkt erreicht hat, werde ich es freigeben. Als Lizenz schwebt mir die BSD Lizenz vor. Sie ist nicht ganz so virulent wie z.B. die GPL.

So viel heute, die Tage gibt es mehr ;)

Auch wenn mich Abuzeus jetzt mit einem bestimmten Schuh peinigen wird…

Hier ist er… der eigene Webserver :D

Webserver

Im Moment kann er einfache HTML-Seiten übermitteln, ein Logfile im W3C CLF Format (incl. der ELF Erweiterungen des Apache) zu schreiben und läuft in einer Sandbox.

Theoretisch sollte er gut abgesichert gegen Scriptkiddis sein, aber ich werde hier noch weitere Arbeit reinstecken um ihn noch sicherer zu machen.

Wieso ich einen eigenen Webserver geschrieben habe? Weil ich es einfach mal versuchen wollte, ob ich sowas kann. Microsoft nimmt einem sehr viel Arbeit mit dem HttpListener ab. Außerdem habe ich mir so Möglichkeiten für später geöffnet. Eine davon ist, daß ich nicht mehr an Windows gebunden bin.

Wieso? Das erfahrt ihr, wenn es soweit ist. ;)

Aber zuerst muß ich mich vor Abuzeus jetzt verstecken :D

Tja… wer hat in den letzten Tagen nicht gehört, daß Apple jetzt unbedingt auch auf den Windows PCs einen Browser einbringen will.

Der Browser nennt sich Safari und genau wie der Name es ja schon andeutet, ist es ein absolutes Abenteuer Seiten mit diesem Browser anzuzeigen.

Ich habe Testweise die mir bekannten und täglich angesurften Blogs mit der neuen Version (3.0.2) aufgerufen. Einige Seiten wurden recht zügig angezeigt, dafür gab es später dann beim Aufruf von JavaScript Features Probleme.

Da ich gerade bei JavaScript auf die Kompatibilität achten mußte, habe ich testweise mal die Seekarte aufgerufen von KK2. Es war ein Desaster!

Zwar wurde alles angezeigt, aber sobald man die Karte verschieben wollte war alles verdammt langsam. Und der Gag am Rande… beide CPU-Kerne haben sich bei mir gelangweilt. Was zur Hölle macht Safari da?

Als Gegenprobe habe ich maps.google.de aufgerufen. Auch hier das gleiche Ergebnis.

Unter uns… Ich werde bis auf weiteres Safari nicht supporten. Sorry ihr Mac-User, aber beschwert euch bei eurem Hersteller, der so ein unausgereiftes Stück Software auf den Markt wirft. Und hier zählt auch nicht das Argument, daß es ja noch eine Betaversion ist. Ich persönlich würde dem Ganzen noch nicht mal das Kürzel Alpha zugestehen.

Nachdem ich mich in den letzten Wochen in andere Themen verlaufen habe, konnte ich meinen inneren Schweinehund mal einfangen und die restlichen Arbeiten an der Kampfsystem TestGUI erledigen.

Was soll ich viel dazu sagen… da ist sie:

Download Kampfsystem TestGUI v0.7 (271 KB)

Bugs, Fragen etc. bitte im Bugforum stellen bzw. posten.

Mir ist klar das euch noch Infos fehlen, wie z.B. der Kampf genau abläuft. Ok, genau da ist mir der innere Schweinehund wieder entlaufen ;)

Im PDF werden die Grundwerte erklärt und es wird auch schon auf zukünftige Features eingegangen. Keine Sorge… es werden nicht alle integriert. KK2 soll ein Spiel bleiben, welches relativ einfach zu spielen sein wird.

Ihr könnt übrigens die Armeen und Kampfberichte aus dem Tool auf der Festplatte speichern und mir zusenden wenn ihr dazu Fragen habt: webmaster (ä t) kolonialkampf.de

Denkt dran, daß ich den MailTo Link ein wenig verfremdet habe. Das (ä t) müßt ihr logischerweise durch ein @ ersetzen.

Die Kampfsystem TestGUI wird übrigens später der Kampfsimulator werden. Alle Ideen/Vorschläge etc. die jetzt reinkommen, werden später in diesem Hilfstool landen.

Btw… denkt dran das ihr Feature Coins durch eure Mitarbeit erlangen könnt. Der Kampfsimulator wird z.B. so ein Tool sein, was man gegen Feature Coins erhalten kann.

Update

Nachdem die Frage gekommen ist, hier könnt ihr das PDF einzeln erhalten.

Aufgrund eines Vorfalls in einem anderen Spiel ist mir aufgefallen, daß wir weder in KK1 noch in KK2 einen bestimmten Typ von Spieler vorgesehen haben.

Und zwar Spieler, welche ungerne Kämpfen, aber gerne ihr Reich friedlich ausbauen wollen. Nach einigen Überlegungen bin ich zu dem Einfall gekommen die Charaktertypen Händler zu modifizieren. Ein Händler wird deshalb keinerlei Angriffe durchführen können. Die Truppen welche er anheuert dienen lediglich der Verteidigung gegen NPC (Nicht-Spieler-Charakter) wie z.B. Piraten.

Er genießt den Status einer neutralen Partei und kann selbst nicht von anderen Spielern angegriffen werden. Um das Ganze nicht in einen Mißbrauch enden zu lassen, wird er Waffen auch in merkbar geringeren Mengen herstellen können.

Diese Änderung spiegelt das Wesen eines Händlers um einiges besser, als im ersten Entwurf eingeplant war.

Mit den Charaktertypen Krieger und Entdecker haben wir dann die Bereiche Krieg und Forschung sauber abgedeckt und eine sehr gute Trennung.

Es dürfte somit für jeden Spielertyp mindestens ein Charaktertyp vorhanden sein, den er spielen will und sich auch damit identifizieren kann.

Außerdem nehmen wir dem Spiel damit einen großen Teil des Frustfaktors den man in vielen anderen Spielen erfährt, wenn man von Anfang an als Farm von viel stärkeren Spielern verwendet wird.

Anstatt wie andere Väter am Vatertag sich die Birne zuzusaufen, habe ich heute die Zeit genutzt um die Basistabellen in der Datenbank und ein Tool zum befüllen mit Testdaten zu erstellen.

Testdaten Generator

Heute will ich euch mal einen kurzen Einblick in die verschiedenen Softwarelayer in KK2 geben.

Die verschiedenen Farben sollen darstellen, in welchem Zusammenhang die einzelnen Blöcke stehen.

Softwarelayer

Wie man sehen kann, stellt das Frontend im Endeffekt den kleineren Aufgabenblock da. Da ich hier wirklich erst effektiv anfangen kann, wenn im Hintergrund die wichtigsten Dinge stehen, wird es hier nur sehr selten in naher Zukunft neues zu sehen geben.