[S1.04] Spieleentwicklung mit DeltaEngine Teil 4: Die UI von DeltaEngine

Hallo Leute und herzlich willkommen zu dem vierten Teil meiner Serie.

Dieses Mal kommt der Teil leider etwas später als die anderen, die ja so ziemlich „gleich“ erschienen sind (Ausnahme bildet der zweite Teil, der am 8.4 erschienen ist, die anderen Teile kamen jeweils am 6. des jeweiligen Monats heraus).
Die Gründe sind vielfältig, so habe ich mir halt einfach mal etwas Zeit für Dinge genommen, u.a habe ich halt auch mal ausgiebig gespielt. (meine 137 Steamspiele wollen ja benutzt werden :D. Aber das ist ein anderes Thema.)
Auch ein wenig Programmieren zählte zu den Tätigkeiten der letzten Tage (anders hätte ich ja nicht den Screenshot von letztens posten können).

Jedenfalls, es ist nun Zeit, dass ich mal wieder produktiv werde und euren Wissensdurst stille. Wie man so sagt: „Besser spät als nie“, daher denke ich, dass wir auch so langsam mal anfangen könnten.
Auch dieser Teil wird im selben Stil verfasst wie der letzte Teil, da es doch recht übersichtlich ist und Inhalte klar getrennt sind. Außerdem eignet sich diese Form eher besser zum erneuten Nachlesen. Jedoch ist an diesem Teil auch wieder eine kleine Besonderheit dran. Ihr werdet schon sehen, was ich meine.
Ich wünsche euch jedenfalls viel Spaß mit dem nachfolgenden Artikel.

Zusammenfassung

Wie ich schon sagte, befinden wir uns nun beim mittlerweile 4. Teil der Serie. Dieses Mal geht es um die UI (User Interface) bzw. eigentlich GUI (Graphical User Interface) von Delta.

Im letzten Teil hatten wir das Thema Input. Wir haben kennengelernt, was Commands, Trigger und Modifier sind, haben gelernt, auf welche Arten wir unseren Input verarbeiten können, damit sich z.B unsere Spielfigur bewegt und zum Schluss haben wir sogar gesehen, wie all die Commands aufgebaut sind, mit denen wir standardmäßig arbeiten können und haben unsere eigenen Commands in die InputSettings.xml aufgenommen.
Am Ende hatten wir dann ein kleines Programm mit einem Button, den wir steuern bzw. rotieren konnten.

In diesem Teil geht es wie eben schon erwähnt um die GUI von Delta. Wir werden die einzelnen Elemente kennenlernen, werden erfahren, wie man diese verwaltet und lernen die Begriffe Screen und Scene sowie deren Bedeutung kennen. Danach werden wir unser Wissen sogleich in die Tat umsetzen und unsere erste kleine GUI erstellen. Zwar nichts zu kompliziertes, aber dennoch gut genug zum Üben.

Allerdings war dies noch nicht alles. Es geht noch weiter: Wir werden außerdem noch kennenlernen, wie man die einzelnen Elemente grafisch mit Hilfe von Skins bzw. Themes anpassen kann und auf welche Arten dies möglich ist.

Alles in allem würde ich mal sagen, dass dieser Teil eine Menge Spaß enthalten dürfte, von dem ganzen Wissen mal abgesehen. (Ihr habt sicher gleich an der Seitenzahl schon mal gemerkt, dass dieser Teil eine ordentliche Länge haben dürfte.)
Und jetzt würde ich sagen, fangen wir doch mal richtig an:

 

Vorwort

Dass DeltaEngine anders ist, als z.B. XNA, das solltet ihr sicherlich schon gemerkt haben. Bei Delta handelt es sich allerdings aber auch um eine GameEngine und bei XNA eher um ein Framework. Der Hauptunterschied liegt darin, dass eine GameEngine i.d.R Module für Input, Grafik, Sound, Netzwerk, UI usw. mitbringt.
Auch Delta ist keine Ausnahme. Neben der Unterstützung für verschiedene Grafikmodule wie OpenTK, OpenGL oder XNA bringt Delta ebenso eine ordentliche UI Engine mit. Muss man unter XNA noch seine komplette GUI Engine selbst schreiben (sofern man nicht auf vorgefertigte Lösungen von Drittanbietern zurückgreift), so steht einem mit Delta bereits ein ordentliches Stück bereit, dass nur darauf wartet, benutzt zu werden und das zudem noch zur Engine selbst gehört.

Ich muss aus eigener Erfahrung sagen, als ich noch meine XNA Zeit hatte und mit XNA arbeitete, hatte ich oftmals keine Lust, wirklich an irgendetwas zu arbeiten. Seitdem ich mit Delta arbeite, habe ich zwar trotzdem öfters mal irgendwie nicht wirklich Lust, etwas zu programmieren, aber dennoch ist meine Motivation höher und es macht mir Spaß, mit Delta zu arbeiten.
Den genauen Grund kenne ich nicht wirklich, aber ich vermute mal, dass es u.a daran lag, dass ich den ganzen Kram wie ScreenManagement, UI usw selbst schreiben durfte. Ganz ehrlich, es ist schon gewissermaßen schrecklich, sowas zu tun, daher ist man froh, wenn man sowas wie Delta hat. Ich hatte halt einfach meine Ansprüche an das System und diese waren eben nicht immer leicht umzusetzen. Zwar hätte ich auf ein Sample von Microsoft zurückgreifen können, allerdings war dies eher rudimentär und entsprach einfach nicht dem, was ich wollte (außerdem war es schon gewissermaßen kompliziert anzupassen).
Mit Delta habe ich all das, was ich wollte. Ich kann Buttons, Checkboxen usw nutzen, kann diese arrangieren, wie ich will, kann ihnen ein beliebiges Aussehen geben usw. Und das ist das, was Delta einen Pluspunkt gegenüber XNA einbringt.

Aber genug von mir, Fakt ist, dass uns mit Delta schon eine relativ mächtige (das „mächtig“ ist Auslegungssache) UI Engine zur Verfügung steht und die in der nächsten Zeit um einige hilfreiche Dinge erweitert werden soll.
Für dieses Tutorial steht bisher noch nicht so viel zur Verfügung, es reicht allerdings aus, um dennoch schon soweit ordentliche UIs erstellen zu können.

Von daher würde ich nun sagen, dass wir mal anfangen sollten mit der Vorstellung der einzelnen Elemente.

 

Auf der nächsten Seite: Controlkunde Teil 1: Button, Label und Checkbox

2 Gedanken zu „[S1.04] Spieleentwicklung mit DeltaEngine Teil 4: Die UI von DeltaEngine

  1. Barsack

    Tutorial hat mir gefallen, auch wenn ich aktuell keine UI brauche.
    Wie schon beim letzten Mal hat mir besonders das „Fettdrucken“ (:D) und die Aufteilung gefallen.

    Jedoch hast du auf Seite 2 im Code nach „LocalArea“ immer eine geschlossene Klammer vergessen. Wenn man den Code so verwendet kommt immer „Text ist unbekannt“

    MfG Barsack

    Antworten
    1. internetfreak Beitragsautor

      Freut mich, dass es dir auch dieses Mal gefallen hat. Die neue Aufteilung gefällt mir auch besser, denn gerade bei dem Umfang, den z.B. dieses Tutorial hat, würde es schnell unübersichtlich werden (und vorallem lang). Das Fettdrucken ist natürlich selbstverständlich, um die wichtigen Teile zu kennzeichnen 😀 (frühere Tutorials von mir hatten übrigens noch Farbe erhalten, nur da hab ich dann 4-5 Farben gehabt usw, um die wichtigen Parts zu kennzeichnen, was dann stressig und doof wurde)

      Zu den Fehlern: Danke für den Hinweis, habs entsprechend korrigiert. Bin ja eben erst selbst durch den Artikel gegangen und hab die „Auf der nächsten Seite: …“-Links klickbar gemacht (die füge ich manuell ein und kann die erst richtig funktionsfähig machen, wenn der Artikel published ist wegen dem Permalink). Dabei ist mir selbst auch ein kleiner Fehler noch aufgefallen (Seite 7, die Überschriften waren falsch formatiert, sollten eigentlich Unterüberschriften sein), den ich entsprechend korrigiert habe.
      All die Sachen sind mir halt durch die Lappen gegangen bzw. mir nicht aufgefallen (ich arbeite meist eher abends/nachts am Tutorial und nachdem ein Teil fertig ist, bring ich meist nicht mehr die Kraft auf, alles nochmals zu lesen, da ich es schon alles kenne, deswegen prüfe ich meist nur den Stil an sich und was so direkt auffällt, solche kleineren Fehler können daher durchrutschen.)
      Aber gut, Fehler machen ist menschlich und bei so großen Tutorials kann man ein paar Fehler ja schonmal verzeihen (besonders, wenn sie per Copy&Paste verschleppt werden)

      Alles in allem, nochmals danke für den Kommentar und den Hinweis, der Fehler wär mir nie im Leben aufgefallen 😀 (vorallem, weil das Tutorial automatisiert veröffentlicht wurde, es ist schon seit ner Weile fertig)
      Ich kann dir aber versprechen, dass nächste Woche noch was kommt, danach wird wohl eher wieder Ruhe einkehren, da ich bald arbeiten gehe und weniger Zeit hab außer an Wochenenden. Aber ich werde den Blog definitiv nicht vergessen, ich hab da schon so meine Pläne, wie es einigermaßen normal weitergehen kann/könnte mit allem.
      Von daher sei unbesorgt 😀

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.