Startseite

Script Engine, MDI, Automatisches Update, Quelltext

Kategorie: Blog: Yogularm 2
Veröffentlicht am Donnerstag, 28. Mai 2009 22:17
Geschrieben von Yogu
Zugriffe: 1285

Hallo,

trotz mehrmaliger Bitte, doch endlich die nächste Version rauszurücken, habe ich ziemlich lange nichts dergleichen unternommen. Der Grund: Ich habe Yogularm praktisch "umgekrempelt" und vieles war lange Zeit überhaupt nicht lauffähig. Dafür ist's jetzt umso schöner :D

Wer die neue Version jetzt einfach runterlädt und das Spiel startet, muss enttäuscht feststellen, dass sich ja gar nichts geändert hat. Wenn er sich dann aber mal umschaut, bemerkt er, dass es eine neue Anwendung gibt: den ScriptEditor - und damit auch...

Die Script-Engine

Mit Scripts lässt sich das Spiel jetzt besser kontrollieren als je zuvor. Es lassen sich vollkommen neue Objekte erstellen, die auf bestimmte Ereignisse mit speziellen Aktionen reagieren. Einige eurer Feature-Wünsche für Yogularm 2 könnt ihr euch mit der Script Engine selbst erfüllen. Gut - jetzt ist sie noch nicht ganz so weit, aber grundlegende Dinge gehen schon. Zum Beispiel sind fast alle mitgelieferten Objekte (Leben, Nagelbretter, Lava, Trampolin etc.) über Skripte programmiert. Das ganze findet ihr in der Datei "Resources\Scripts\StdObjects.yls" (auch im Anhang als Bild).

Eine genaue Erklärung, wie man selber skriptet, folgt jetzt leider nicht, aber für die, die sich ein bisschen auskennen und selber was rausfinden können, ein paar Tipps: Wir programmieren in einer Art C#-Sprache. Das Ereignis "Initialize" wird nach dem Compilieren ausgeführt und kann daher gut zum Testen verwendet werden. Und ihr solltet euch den Namespace "ScriptAPI" zu herzen legen, dort sind alle externen Funktionen (mit denen ihr Kontakt zum Spiel aufnehmen könnt) aufgelistet und ausführlich erklärt.

Die Script-Engine ist aber noch nicht alles...

MDI-Editoren

MDI heißt ausgeschrieben Multiple Document Interface, zu Deutsch etwa: "Schnittstelle für mehrere Dokumente (Dateien)". Ihr könnt ab jetzt in einem Programm mehrere Dateien gleichzeitig laden und daher auch recht gut zwischen ihnen hin- und her wechseln, nämlich über Tabs (kennt man von modernen Browsern. Muss man kennen).

Automatisches Update

Standardmäßig prüft Yogularm einmal täglich auf eine Aktualisierung. Ihr seid dadurch immer auf dem neusten Stand. Sollte euch das aus irgendeinem Grund nicht gefallen, deaktiviert die Option unter "Einstellungen > Einstellungen...". Manuelle Update-Prüfung geht über "Hilfe > Yogularm aktualisieren".

Außerdem wurde die Übersetzung aktualisiert. Jetzt ist wirklich alles in Deutsch und Englisch, was Deutsch und Englisch sein soll.

Wenn ihr jetzt denkt: "Das ist doch gar nicht so viel", dann mag das vielleicht daran liegen, dass ihr vom Rest nichts mitbekommt: Ich bin von Delphi 2005 auf Turbo Delphi 2006 umgestiegen, weshalb so ziemlich meinen ganzen Code überarbeiten (und verbessern!) musste.

Quelltext von Yogularm

Ab jetzt ist Yogularm auch OpenSource - den Quelltext könnt ihr euch also runterladen (im zweitletzten Anhang). Im Hauptverzeichnis des ZIP-Archives findet ihr eine Datei "Fremdkomponenten.txt", in der Links zu allen Komponenten aufgeführt sind, die ihr herunterladen müsst, um Yogularm mit Delphi ab 2005 zum compilieren. Falls ihr euch die Mühe machen wollt, versteht sich ;) Sonst bleibt es euch jederzeit offen, einfach mal die Quelltexte anzuschauen und herauszufinden, was hinter der Kulisse so abgeht.

Daher eine kurze Erläuterung der Verzeichnisse und Dateien:

Yogularm - Stmmverzeichnis
  DCU - Leerer Ordner, in dem temporäre compilierte Units gespeichert werden, wenn Yogularm compiliert wird
  Engine - Das Herzstück von Yogularm. Jede GL*.pas-Datei gehört zum innersten Teil des Spieles.
  Game - Der Ausgabeordner. Dieser Ordner ist im Anhang "Yogularm 2 Snapshot 12" gezippt.
    Data - Erst nach dem ersten Start vorhanden. Enthält Einstellungen, Logs etc. Kann gefahrlos gelöscht werden, wenn man Mist gebaut hat ;-)
    DefaultData - Vorgabewerte für den Ordner "Data". Auf keinen Fall löschen, lebensnotwendig!
    Languages - Enthält Sprachdateien. Wer Yogularm übersetzen will, soll eine Datei kopieren sich ans Übersetzen machen.
    Ressources - Dateien, die das Spiel selbst braucht
      Fonts - Schriftartendateien
      Images - Bilder für das Spiel
      Levels - Der Name ist selbsterklärend...
        World.ylw - Liste der Levels, die beim Start von Yogularm abgespielt werden
      Library - Alle Objekte, die mit dem ObjectEditor bearbeitet werden können
      Scripts - Alle Scripte, die beim Start von Yogularm compiliert werden
        Trush - Ordner mit Skripten, die nicht compiliert werden
    Skins - Zusätzliche Skins für die Editoren
  Global - Dateien, die alle drei Editoren verwenden
  LevelEditor - Quelltext und Projektdatei des LevelEditors
  ObjectEditor - Quelltext und Projektdatei des ObjectEditors
  ScriptEditor - Quelltext und Projektdatei des ScriptEditors
  Yogularm - Quelltext und Projektdatei des Spiels (nicht viel, das meiste ist im Ordner Engine)
  ProjectGroup.bdsgroup - Öffne diese Datei mit Delphi, und alle Projekte werden auf einmal geladen - sehr praktisch :-)

Ich hoffe, das war verständlich genug :)

Das war's für heut' erstmal :)

Grüße,
Yogu

PS: Ich dachte, ich sollte vielleicht noch einen kleinen Trick verraten, der jetzt in Yogularm eingebaut ist. Es ist ein Trick für die berühmt-berüchtigte Situation "Mist, Chef kommt" :mrgreen:

Startet einmal Yogularm und drückt irgendwann mal Die Taste "m". Huch? Wo ist denn das Programm hin? Weder in der Taskleiste noch in der Alt+Tab-Liste oder in der Anwendungsliste des Task-Managers ist das Spiel zu finden (Der Prozess ist aber weiterhin sichtbar - für alle Fälle oder weil ichs nicht anders konnte ;)). "Und wie kann ich jetzt weiterspielen?" Ganz einfach - starte die Anwendung Yogularm.exe nochmal. Ihr befindet euch genau an der Stelle, an der ihr euch beim M-Druck aufgehalten habt. Und wenn das einen halben Meter über der Lava ist - Prost! :mrgreen:

Screenshots

    Der ScriptEditor mit dem Namespace "StdObjects"

    Die CPU-Ansicht des ScriptEditors mit einem Haltepunkt

    Der Script-Baum mit allen Namespaces, Variablen, Funktionen etc.

Download

Yogularm 2 Snapshot 12

Yogularm 2 Snapshot 12 Quelltext