Schlachtfeld

Der Stafflerblog von Warzone2100.de

15.02.2009

Kommentarthreads und -links

Filed under: Deutsch,Homepage von Kreuvf um 17:43:32

Ab heute verfügen alle Artikel auf Warzone2100.de über eigene Kommentarthreads im Kommentarboard. Diese sind dazu gedacht bei Fehlern im Artikel oder neuen/fehlenden Informationen dies melden zu können. Auch verbesserungswürdige Dinge wie zum Beispiel überbreite Tabellen, defekte Links und dergleichen sollen dort gemeldet werden können.

Zusätzlich haben sämtliche Artikel im Fuß einen Link zum entsprechenden Thread im Kommentarboard.

Kommentare zu diesem Artikel abgeben (benötigt Boardaccount)

06.12.2008

Spezialinterview #2: Neues Widget-System (betawidget)

Filed under: Deutsch,Entwicklung von Kreuvf um 14:12:23

Vor einiger Zeit hatte ich mit DevUrandom ein Spezialinterview zu 2.1 geführt. 2.1 ist so gut wie fertig, es ist also an der Zeit für ein weiteres Spezialinterview. Dieses Mal habe ich mit EvilGuru und Elio über das neue Widget-System gesprochen.

Kreuvf: Zuallererst: Was ist ein Widget und was macht ein Widget-System?
EvilGuru: Ein Widget ist etwas, mit dem der Spieler interagiert. Es könnte sich um einen Knopf, einen Schieber, Farbwähler oder eine Textbox handeln. Ein Widget-System ist für die Darstellung und Verwaltung von Widgets auf dem Bildschirm zuständig.

Kreuvf: Was sind die Hauptvorteile des neuen Widget-Systems, betawidget?
EvilGuru: Betawidget hat viele Vorteile gegenüber dem derzeitigen Widget-System, für Entwickler als auch für Benutzer.

Vorteile für Benutzer:

  • ein ansehnlicheres und helleres Interface;
  • die Fähigkeit sich an die Bildschirmauflösung anzupassen, was es einfacher macht Warzone mit höheren Auflösungen (auch Breitbild) zu spielen;
  • deutlich einfacher anpassbar als das jetzige System.

Die Hauptmotivation hinter der Entwicklung von betawidget war es jedoch es für uns (die Entwickler) einfacher zu machen dem Benutzerinterface etwas hinzuzufügen und es zu verändern. Dies ist besonders schwierig mit dem jetzigen Widget-System zu erreichen, wo selbst etwas so Einfaches wie das Hinzufügen eines Knopfes Unmengen an Code braucht.

Vorteile für Entwickler und Modder:

  • deutlich vereinfachter Umgang damit;
  • Möglichkeit das Benutzerinterface zum einen aus Skripten aufzubauen und zum anderen mit Skripten zu verändern;
  • weniger Code für die selbe Aufgabe benötigt als mit dem jetzigen Widget-System, was auch weniger Fehler bedeutet

Kreuvf: Wird das neue Widget-System auf Warzone 2100 beschränkt sein oder plant ihr es auch für andere Anwendungen anzubieten?
Elio: Betawidget hat absichtlich einen Qt-Unterbau, der die Verwendung in Qt-Anwendungen wie Warzone Studio erlaubt. Warzone Studio ist eine eierlegende Wollmilchsau, die jeden Aspekt des Moddings abdeckt:

  • Scripting
  • Bearbeitung des Technologiebaumes
  • Kartenerstellung
  • Bearbeitung des Interface

EvilGuru: Tatsächlich findet der Großteil der Entwicklung in einem externen Simulator statt. Andere Warzone-verwandte Anwendungen wie Karteneditoren und Modeditoren können Teile davon für ihre Interfaces benutzen. Selbstverständlich sind viele dieser Anwendungen noch am Reißbrett, aber es ist schön sich alle Möglichkeiten offen zu halten.

Da betawidget — wie Warzone — Open Source ist, gibt es nichts, das andere davon abhalten könnte es zu nehmen und in ihre eigenen Anwendungen einzubauen. Es ist jedoch wichtig zu verdeutlichen, dass, so flexibel betawidget auch sein möge, es als Ersatz für Warzones derzeitiges Widget-System konzipiert wurde und nicht als Mehrzweck-Werkzeugkasten.

Kreuvf: Wie kann die GUI mit dem neuen Widget-System verändert werden?
Elio: Die komplette GUI ist aus Lua-Skripten erstellt. Dies erlaubt Moddern eine GUI mitzuliefern ohne den Quelltext anfassen zu müssen. Die klassenmäßige Architektur ist einfach zu verstehen und die API unterstützt auch Animationen. Deswegen wird die neue GUI dynamischer und nutzerfreundlicher sein.
EvilGuru: Es wird möglich sein die UI auf eine von zwei Arten zu ändern. Zuerst durch die Verwendung eines Lua-Skripts zum fliegenden Ändern eines bestehenden Interface. Ein Modentwickler könnte also ein Skript verwenden, um das Bild/Logo im Hauptmenü zu verändern. Dies sähe dann in etwa so aus:
widgetGetById(„warzoneLogo“):setImage(„myOwnLogo.svg“).

Obwohl dies ein triviales Beispiel ist (ein Modder könnte das derzeitige Logo einfach mit einer Datei im Mod, die den gleichen Namen trägt, überschreiben), zeigt es, was möglich ist.

Zweitens, da geplant ist einen großen Anteil der UI in Lua zu implementieren — im Gegensatz zu kompiliertem C-Code — wird es für Modder möglich einfach Skriptdateien zu öffnen und zu bearbeiten (auf die gleiche Art und Weise wie sie es jetzt für Einheiten/Gebäude-Eigenschaften tun würden). Durch das Ausliefern des Mods mit der veränderten Skriptdatei haben sie die Möglichkeit die UI auf eine viel fundamentalere Art zu verändern. Daher wird es nur ein wenig schwerer das Interface zu verändern als Eigenschaften (von Einheiten, Waffen, Forschungsthemen) zu verändern.

Aber nicht nur die Modding-Community wird von einer zum Großteil in Lua geschriebenen UI profitieren — auch Entwickler profitieren. Das liegt daran, dass es sehr viel einfacher ist Lua-Code (high-level) zu schreiben und zu warten als C-Code (low-level).

Kreuvf: Was sind die Vorteile skalierbarer Vektorgrafiken (SVG) und gibt es schon Bilder der neuen GUI?
Elio: Es gibt da einige Bilder der neuen GUI.Neue GUI und Zwillings-Gauss-Festung

Wie du sehen kannst ist die Grundfarbe der neuen GUI mehr bläulich-gräulich, das gibt dem Spiel einen maßvollen und eleganten Look und bringt das Gameplay in den Vordergrund. Es gibt auch weitere Skizzen möglicher neuer GUI-Elemente.Neue GUI und Commander-Interface

Zusätzlich dazu sieht es unter jeder Auflösung scharf und schön aus, weil die GUI sich anpasst. Du kannst also eine wundervolle, sexy GUI erwarten, egal, ob es unter 640×480 (4:3) oder 1280×720 (16:9) ist. Mit den alten Rastergrafiken können wir dies nicht tun, weshalb wir skalierbare Vektorgrafiken brauchen. Um diese zu erhalten, müssen wir die bestehenden Rastergrafiken von Hand in skalierbare Vektorgrafiken „umwandeln“ und die meiste Arbeit habe ich bereits erledigt.Neue GUI und Einheitenentwurf und Vergleich zweier Einheiten
EvilGuru: Derzeit wird die SVG-Unterstützung durch die Cairo-Vektorgrafikbibliothek gestellt, die auch in Firefox 3 verwendet wird. Dank Elio hauptsächlich sind viele der Symbole im Spiel bereits konvertiert. SVG ist ein Vektorgrafikformat, das gute Unterstützung durch Cairo und andere Anwendungen Dritter erfährt. (Inkscape und Adobe Illustrator sind wohl die bekanntesten.) Auch das wird wieder der Anpassbarkeit helfen — da jeder die Symbole öffnen und ändern kann auf eine Art und Weise, die mit Bitmaps einfach nicht möglich ist. Dies könnte es Moddern ermöglichen hochqualitative Symbolpakete zu erstellen ohne von 0 anfangen zu müssen oder bestehende Symbole pixelweise zu verändern.

Dieses Interview ist eine Übersetzung des englischen Originals.

Kommentare zu diesem Artikel abgeben (benötigt Boardaccount)

16.10.2008

Umzugspause

Filed under: Deutsch,Homepage von Kreuvf um 19:55:09

Da ich – wie auch bereits aus dem Impressum ablesbar – in nächster Zeit umziehen werde und auch sonst in diesem Semester gut mit Arbeit eingedeckt bin, wird es mir nicht möglich sein größere Dinge an der Seite vorzunehmen.

Ich werde dennoch versuchen täglich einen Blick auf die Seite zu werfen.

Könnte sich bis Anfang nächsten Jahres hinziehen.

Kommentare zu diesem Artikel abgeben (benötigt Boardaccount)

26.09.2008

Warzone 2100 2.1 Beta 5 im Anmarsch

Filed under: Deutsch,Entwicklung von Kreuvf um 09:22:49

Giel hat ein Ticket für den Release von 2.1 Beta 5 angelegt.

Es gab im Entwicklerforum ein Meinungsbild darüber, ob man eine 2.1 Beta 5 und dann eine 2.1 bringen soll, in der die Wegsuche funktioniert, es keine Videos gibt und mit der die Spielstände aus 2.1 Beta 4 nicht funktionieren, oder ob an 2.2 gearbeitet werden soll, in der die Wegsuche funktioniert, die alten Spielstände funktionieren, es Videos gibt und andere Verbesserungen eingebracht wurden.

Man hat sich daher jetzt entschieden 2.1 voranzutreiben, weshalb wir uns auch schon bald auf 2.1 Beta 5 freuen dürfen. Dann, nach 2.1, wird auch relativ bald 2.2 erscheinen, vor allem wohl auch mit verkürzten Wartezeiten zwischen den Releases. Ob es allerdings dann tatsächlich auch so kommt, steht in den Sternen, da die Entwickler alle ein Privatleben haben, das mitunter keine Zeit für Warzone 2100 lässt.

Kommentare zu diesem Artikel abgeben (benötigt Boardaccount)

09.08.2008

Entwicklerinterview #4 – Buginator

Filed under: Deutsch,Sonstiges von Kreuvf um 09:09:12

Buginator denkt, dass persönliche Informationen irrelevant sind, daher bleiben diese außen vor. Wenn man seinen „Namen“ bei Gna nachschlägt, bekommt man „bugs buggy“, was eine Anspielung auf „bugs bug me“ (Fehler nerven mich) ist.

Kreuvf: Wie hast du zu Warzone 2100 gefunden und seit wann bist du Teil der Warzone 2100 Resurrection Project-Gruppe?
Buginator: Ich bin um Warzone 2100 schon seit einer Weile herumgeschlichen, an das genaue Datum kann ich mich wirklich nicht erinnern. Es war auf jeden Fall eine ganze Weile. Teil des Teams, wenn du damit meinst, wann ich angefangen habe Patches einzuschicken, bin ich auch schon seit Langem. Auch hier habe ich das genaue Datum vergessen. Falls du „offizielles“ Mitglied des Warzone 2100 Resurrection Project meinst, dann ist das heute (1. August 2008).

Kreuvf: Heute? Du bist also wirklich heute offiziell beigetreten? Falls ja, dann ist das ein schöner Zufall. Hast du just heute entschieden offizieller Entwickler zu werden oder gab es andere Dinge, die dich davon abgehalten hatten ein offizielles Mitglied zu werden?
Buginator: Der einzige Grund dafür, dass ich „offizieller“ Entwickler wurde, war, dass ich selbst auf’s SVN zugreifen kann und nicht immer den anderen Leuten damit im Ohr liegen muss.

Eine Zeit lang war ich inoffiziell. Der Grund dafür war, dass ich neutral gegenüber den beiden Warzone-Gruppen bleiben wollte. Eine Gruppe hat den Code bisher jedoch noch nicht veröffentlicht und so war die Entscheidung mehr oder weniger gefallen. Natürlich gibt es viele weitere Dinge, die „hinter der Bühne“ abgelaufen sind und die ich ausgelassen habe. :) Würde sich aber gut für eine „Seifenoper“ (oder sogar Komödie?) eignen. ;)

Ich denke wirklich, dass es besser ist allen Quellcode und auch sonst alles von Tag 1 an zu haben. So hat Pumpkin es gemacht und ich denke standhaft, dass dies der einzuschlagende Weg ist. Ich mag bei einem Open Source-Projekt die Vorstellung „hinter verschlossenen Türen“ zu arbeiten nicht.

Kreuvf: Was hälst du für einen Hauptnachteil des Arbeitens hinter verschlossenen Türen? Und was hälst du für einen Hauptvorteil – da jene sich sicher nicht aus Spaß dazu entschieden haben hinter verschlossenen Türen zu arbeiten?
Buginator: Wenn du geheimniskrämisch sein willst, dann, gut, kriegst du deinen Willen. Niemand außerhalb der Gruppe wird wissen was du tust und niemand wird (kann) auf den Quellcode schauen, du kannst auf diesem Wege also keine Hilfe erwarten. Dies ist ein GROSSER Nachteil. Bei diesem Projekt, alles ist offen, kannst du von Tag 1 an auf alles einen Blick werfen. Der einzige Vorteil, der mir gerade in den Sinn kommt, ist, dass du nicht willst, dass andere wissen was du gerade tust. Man kann sich das vorstellen wie Duke Nukem Forever. Irgendwann wird dieses Spiel erscheinen, aber bis dahin ist es nichts als heiße Luft. Das ist auch, warum ich in einer Zwickmühle saß, weil ich der anderen Gruppe hätte beitreten können und den Quellcode hätte sehen können, aber hätte auch nur einer meiner Patches nur Ähnlichkeit mit etwas gehabt, was in deren Codebasis vorhanden ist, hätte man mir „Diebstahl“ vorgeworfen. Das wollte ich vermeiden und ist einer der Hauptgründe weshalb ich mich nicht der anderen Gruppe angeschlossen habe.

Kreuvf: Nichtsdestoweniger werden wir an diesem Projekt dran bleiben. Ein anderes Thema: Nun, da du Commit-Zugriff hast, wirst du – sicher doch – Zeug beisteuern. Was sind die Hauptgebiete des Quellcodes, an denen du zu arbeiten planst?
Buginator: Ich denke nicht, dass es ein Gebiet der Codebasis geben wird, das ich zu einem bestimmten Punkt nicht anfassen werden. :)

Kreuvf: Dein Name ist also ein Hinweis auf das, was du hauptsächlich tun wirst?
Buginator: Nicht wirklich. Die vielen Bugpatches, die ich früher geschrieben habe, habe ich geschrieben, weil ich das Spiel spielen wollte und es fehlerhaft war und einige der Features fehlten, die ich in einem RTS haben will. Ich plane nicht nur Fehler zu beheben – das ist ECHT langweilig.

Kreuvf: Auf die Implementierung welchen Features bist du denn am schärfsten?
Buginator: Zur Zeit? Hmm. Es gibt kein spezielles Einzelfeature, ich werde mich einfach danach richten, was mir nicht gefällt und wie ich es verbessern kann. Ein sehr kurzes Beispiel dafür sind die Tabs, die sich im Debugmenü unter dem Gebäude/Einheiten-Knopf verstecken. Ich dachte es wäre unsinnig die Liste auf nur 70 (oder waren es 80?) Gegenstände zu beschränken, daher habe ich das grundsätzlich so geändert, dass ich mich nicht mit diesen Beschränkungen auseinandersetzen muss.

Kreuvf: 2.1 kommt näher und näher: Welches der Features in 2.1 sind deine Lieblingsfeatures?
Buginator: Um ehrlich zu sein, weiß ich nicht wirklich was es ins offizielle 2.1 geschafft hat. Ich spiele Betas wirklich nicht viel und bleibe normalerweise beim Trunk. Ich schätze ich werde überprüfen müssen was es in 2.1 geschafft hat und was nicht. Andererseits habe ich nicht wirklich ein Lieblingsfeature. Obwohl, weniger Fehler wäre ein Feature, das mir gefallen würde. :)

Kreuvf: Deine Philosophie zur Arbeit an Warzone 2100 ist also, dass, was auch immer falsch erscheint oder korrigiert werden sollte, von dir auch erledigt wird?
Buginator: Nicht nur von mir, ich denke der Rest der Mitglieder tut das genauso.

Für gewöhnlich jedoch frage ich in den Foren zu größeren (oder auch kleineren) Änderungen herum, damit ich wenigstens ein wenig Rückmeldung erhalte. Vieles wird zurückgehalten wegen der Hardware, die die Leute benutzen, um das Spiel zu spielen. Ich wünschte jeder könnte seine Hardware aufbessern zu Hardware, die innerhalb der letzten paar Jahre hergestellt wurde, und auch wünschte ich die Treiberschreiber würden vernünftige Treiber für ihre Hardware veröffentlichen. Intels integrierte Grafik ist so schon schlecht genug, aber es scheint die Treiber sind sogar noch beschissener. Von VIA/S3 ganz zu schweigen. Leute, hört auf euch beschissene Laptops mit beschissenen Chipsätzen zu kaufen und zu erwarten, dass das Spiel auf solchen Geräten funktioniert! Argh!

Kreuvf: Wie viel deiner Zeit verbringst du mit dem tatsächlichen Spielen von Warzone 2100? Und, wenn du spielst, suchst du mehr oder weniger aktiv nach Fehlern?
Buginator: Ist unterschiedlich. Wenn mir langweilig ist, dann spiele ich ein wenig. Wenn ich einen Fehler während des Spiels finde, neige ich dazu zu versuchen eine Lösung zu finden. Ich lese Fehlerberichte sehr wohl, aber wie zuvor gesagt, hat die Fehlersuche es an sich schnell langweilig zu werden.

Ich habe auch nicht wirklich Zeit das Spiel ordentlich zu spielen (wie ein komplettes Mehrspielerspiel oder einen vollständigen Durchgang durch die Kampagne OHNE CHEATS!). Das ist der Grund weshalb wir Leute brauchen, die für die Entwickler spielen, damit wir wissen können was funktioniert und was nicht – und ist erstmal ein Fehler gefunden, dann müssen sie auch anfangen diesen in die Fehlerverfolgung einzupflegen. Sie können auch in die Foren posten, um zu sehen, ob andere das gleiche Problem haben, aber es ist besser die „offizielle“ Methode zu benutzen.

Kreuvf: Wie lange denkst du, dass ihr, das WRP, brauchen werdet, um 2.1.0 zu veröffentlichen? Und welche Fehler blockieren derzeitig noch ein Release?
Buginator: Das ist eine gute Frage. Ich halte mich nicht wirklich an die Haupt/Nebenversionen, da ich hauptsächlich mit dem Trunk arbeite, was der aktive Entwicklungszweig ist. Ein Blick auf die Fehlerberichte offenbart, dass wir noch Fehler haben (und wahrscheinlich auch immer haben werden).

Was die Leute nicht zu realisieren scheinen ist, dass der Quellcode, der von Pumpkin veröffentlicht wurde, mehr oder weniger mit Fehlern durchsetzt war. Haufenweise Fehler. Nicht alle sind für jedermann offensichtlich, aber sie sind trotzdem da. Dieses Projekt hat einige Fehler ins Rampenlicht gerückt, indem das Programmdesign geändert wurde (wie die Entfernung von Memory pools) und wegen einiger anderer Änderungen, aber allgemein wurden die Änderungen an Warzone 2100 vorgenommen, um ein besseres Warzone 2100 zu schaffen.

Ich würde lieber mehr veröffentlichte Versionen sehen, als Monate zwischen den Veröffentlichungen zu warten. Wie ich sagte können die Entwickler nur so und so viel testen und Dinge können durchrutschen und sind durchgerutscht. Wenn die Leute ein stabileres Spiel wollen, dann fangt an zu spielen und meldet die Fehler – mit allen Informationen über den Fehler, an die ihr euch erinnern könnt!

Entschuldigung, bin ein wenig vom Thema abgekommen. Auf deine ursprüngliche Frage wann 2.1 veröffentlicht wird, muss ich sagen, dass ich es nicht weiß. Es steht jedem immer offen, der es will, nur nicht mit dem Spitznamen „2.1“. Immer daran denken, dass dies ein offenes Projekt ist und die Leute sich jederzeit das Neueste und Beste, was sie wollen, holen können. Sie müssen es nur kompilieren oder eines der Nightly Builds, die für Windowsnutzer (vielleicht genau so gut auch Mac Builds, wenn sich jemand findet diese zu erstellen – <HINWEIS>wir brauchen Mac-Maintainer!</HINWEIS>) vorhanden sind, nutzen.

Kreuvf: Und was stört dich am meisten bei der Entwicklung für Warzone 2100?
Buginator: Die gleichen Dinge, die in den meisten Open Source-Projekten vorhanden sind. Es gibt nicht wirklich einen Leiter, noch könnte es jemals einen geben, weil die meisten Leute NICHT für ihr Fähigkeiten bezahlt werden und sie sich ausgesucht haben dies in ihrer Freizeit zu erledigen. Was es manchmal schwer macht, die Dinge zu erledigen wie sie normalerweise erledigt würden.

Kreuvf: Könntest du ein Beispiel dafür geben? Muss nichts mit dem WRP zu tun haben.
Buginator: Nun, in einem normalen Projekt hast du Leute, die für dich arbeiten und du hast festgelegte Ziele. Wie wenn du ein Haus bauen willst, du eine Blaupause hast und jeder dieser folgt und eine gesonderte Aufgabe hat. Wenn man dem Plan nicht folgt, dann hast du besser eine gute Entschuldigung parat oder du wirst rausgeschmissen/verklagt oder was auch immer.

In einem Open Source-Projekt, machen die Leute, was ihnen gefällt, und man kann sie nicht wirklich zwingen etwas zu tun, das sie nicht tun wollen. (Nun, das nehme ich zurück. Man kann sie zwingen, aber ich bezweifle stark, dass diese Leute dann noch viel länger da bleiben. Es zahlt sich nicht aus den Leuten das Leben damit schwer zu machen wie und was sie beisteuern dürfen, zumindest nicht ohne verletzte Gefühle. Andererseits ist es auch nicht klug jeden Code, jede grafische Veränderung und was auch immer ins Projekt aufzunehmen ohne wenigstens ein wenig zu testen und zu diskutieren. Es ist eine Gratwanderung zwischen der Zufriedenheit und dem Vergraulen aller.)

Es gibt immer noch eine Art Blaupause (jeder hat das gleiche Ziel das Spiel besser zu machen). Aber dann hast du Leute, die unaufhörlich Dinge, die gerade fertig sind, hinzufügen/entfernen oder sogar ändern. Manchmal funktioniert dies wunderbar, manchmal nicht und meistens haben die Entwickler nicht die Gelegenheit jedes kleine Detail einer Änderung zu testen, was zu einem anderen Fehler führt. Yeah, das ist stark vereinfacht, aber was soll’s.

Kreuvf: Es fehlt also die Antriebskraft „Geld“, ja?
Buginator: Nicht wirklich Geld, es ist mehr eine Einstellung, denke ich. Es hängt hauptsächlich von der betreffenden Person und ihrer Motivation ab und, natürlich, wie viel Zeit sie dem Projekt widmen kann. Es ist schwierig das echte Leben und die bearbeiteten Projekte unter einen Hut zu bringen und hin und wieder neigen Leute dazu „auszubrennen“.

Kreuvf: Okay, das war meine letzte Frage und ich würde dir sehr für das Interview danken, Buginator.
Buginator: meh. :) Ok… ok… gern geschehen.

Kommentare zu diesem Artikel abgeben (benötigt Boardaccount)

« Vorherige SeiteNächste Seite »