Jun29
Wie bereits angekündigt ist für mich wieder einmal die Zeit der Suche angebrochen. Die Suche nach einer geeigneten IDE ist nie einfach. Eine IDE ist weniger abhängig von ihrem Funktionsumfang, als vielmehr von dem Gefühl des Programmierers. Insbesondere für PHP bin ich seit rund 5 Jahren auf der Suche nach einer IDE, die mich wirklich rundum zufrieden stellt. Oder mir zumindest nicht in regelmäßigen Abständen auf die Nerven geht.
Es gibt durchaus einige IDEs für PHP. Jedoch gibt es kaum aktuelle Tests und Vergleiche dieser IDEs von Leuten, die Ihre IDE als No-Nonsense Arbeitstier sehen und nicht als hübsches Gadget. Der letzte große Test von Smashing Magazine ist inzwischen auch über ein Jahr alt. Also machte ich mich wieder auf die Suche. Dieser Post stellt meine persönlichen Erfahrungen mit den aufgelisteten IDEs dar.
Dies ist nicht meine erste Suche. Hier sind Links zu Teil 1 und Teil 2 (beide von 2008) zu finden. Insgesamt ist mir aufgefallen, dass die Qualität der IDEs seitdem stark zugenommen hat, insbesondere im Bereich OOP. Inzwischen haben die meisten IDEs zum Beispiel keine Probleme mehr mit Singletons, abstrakten Klassen oder Interfaces.
Der Test der IDEs entstand über einen längeren Zeitraum: jede IDE wurde mindestens zwei Wochen produktiv auf Live-Projekten getestet. Von kommerziellen IDEs wurde jeweils die Trial-Version getestet. Die Wahl einer IDE ist natürlich sehr subjektiv und eine Frage des persönlichen Stils. Folglich sind die Vorstellungen und gezogenen Schlüsse ebenfalls subjektiv und mit Vorsicht zu genießen.
Weiterlesen »
Apr10
Ich habe lange nichts mehr geschrieben, also dachte ich, es wird Zeit für ein kurzes Status-Update.
Ein anderes Side-Project hat einen großen Teil meiner Zeit in Anspruch genommen. Es ist allerdings kurz vor der Veröffentlichung und ich habe es in 1-2 Wochen aus meinem Kopf
Ich bin von Aptana Studio auf Zend Studio umgestiegen. Aptana selbst entwickelt ihr PHP Plugin für Eclipse nicht weiter, sondern empfiehlt von nun an PDT. In so fern dachte ich mir, kann ich auch gleich Zend verwenden. Aktuell nutze ich die 30 Tage Testversion und ich hoffe, ich kann mich damit anfreunden. Im Moment ist mein Eindruck sehr gemischt und ich befürchte ja schon, dass es wieder auf eine längere Suche hinauslaufen wird.
Für unser erstes Spiel auf Basis von Zeitgeist habe ich einen Hudson aufgesetzt. Ein Deployment auf die Preview-Umgebung kostet also nicht mehr 2 Klicks (auf Batch-Skripte), sondern gar keinen mehr (der Hudson baut die Versionen, sobald sie ins SVN eingecheckt werden und rollt sie auf die Preview-Umgebung aus). Da ich mir das Gefummel mit Hudson und SimpleTest sparen will, bin ich gerade dabei die Unit Tests von Zeitgeist auf PHPUnit3 zu konvertieren. Zumindest dabei hilft Zend Studio ungemein.
Das Spiel-Projekt geht gut voran. Letzte Woche habe ich das Achievement-System und die Grundlagen der Statistik-Elemente hinzugefügt. Tut gut, wenn nach langer Pipeline-Arbeit alles ineinander passt.
Feb16
In meinem Artikel über das Zeitgeist Gamesystem-Modul habe ich etwas mehr über die Klasse zur Datenhaltung (gamedata.class.php) geschrieben. Diese ist in Zeitgeist angelehnt an die Datenhaltung eines Entity-Systems. In den Kommentaren wurde mir von Gameplorer folgende Frage zu dem Prinzip gestellt:
Wie gut eignet sich das tatsächlich für Browsergames? Durch die component_data_N – Tabellen ist es ja nicht mehr möglich, effektiv mit Joins zu arbeiten. Dadurch muss ich aber pro Entity zig Queries absetzen (jede component_data – Tabelle) was auf die Performance schlägt. Für z.B. einen Kampf müssten dann auch noch mehrere Entities geladen werden. Das klingt für mich nach einem absoluten NoGo in einem Browsergame.
Mir kam die Artikelreihe daher eher vor, als wäre ES für Clientbasierte-Spiele ausgelegt.
Das ist eine gute Frage, da sie auf einem vebreiten Mißverständnis beruht wie Entity Systeme funktionieren. Es werden (wenn richtig implementiert) kaum Joins benötigt, da keine Notwendigkeit besteht die kompletten Entites zu laden (geschweige denn mehrere). Das Missverständnis beruht wohl auf dem Versuch sich Entity Systeme wie klassisch objektorientierte Systeme vorzustellen, in denen das System über die Objektklassen immer (mehr oder weniger direkten) Zugriff auf alle Daten des Objekts hat. Mir ging es nicht anders und ich brauchte einige Anläufe, um mich davon zu lösen.
Hier also mein Versuch zu erklären, wie ich Entity Systeme verstehe und wie sie in Zeitgeist implementiert wurden.
Weiterlesen »