CAOS-Programmierung: Einleitung

Die Abkürzung bedeutet Creatures Agent/Object Scripting. Dies ist die Scriptsprache, auf welcher die Spieleserie Creatures, Creatures 2, Creatures 3 und Dockingstation basieren. Zeitlich aufeinanderfolgend wurden viele Ergänzungen hinzugefügt und einiges wurde geändert. So ist Caos aus C3 nicht abwärtskompatibel zu C2.

CAOS wird verwendet, um die Umgebung, den Hintergrund und die Spielsteuerung zu programmieren. Das komplette Spiel DS (Dockingstation) ist in CAOS geschrieben.

Die verwendete Engine ist für Windows XP, Linux und Mac vorhanden, eine Open-Source-Variante ist openc2e. Basierend auf der DS-Engine wurde Edynn als Open-Source-Spiel in CAOS programmiert. Leider wurde die Entwicklung von Edynn eingestellt.

Rund um C3 und DS gibt es viele Möglichkeiten, sich kreativ zu betätigen. Sehr beliebt sind Agenten, Zusatz-Scripts mit eigenen Bilder-, Sound- und Helpdateien, gepackt als Agentfiles. Als Voraussetzung bzw. Ergänzung muß ich momentan noch auf die Links verweisen.

Ich werde versuchen, CAOS unabhängig vom Spiel C3/DS zu erklären; oft ist es aber sinnvoll, dies im Spielkontext zu sehen.


Abkürzungen:

C1, C2 C3 damit sind die Spielversionen Creatures 1 bis 3 gemeint
DS ist Dockingstation, die kostenlose und netzfähige Version von Creatures
Engine ist das Herzstück, der Scriptinterpreter in den verschiedenen Varianten (zB.engine.exe oder lc2e : Linux Creatures Evolution Engine)


Als Voraussetzung ist es notwendig, dass Dockingstation auf dem PC installiert ist. Des weiteren wird ein Texteditor benötigt.


Warnung : Jeder ist für sein tun verantwortlich, darum bitte BACKUP.

Legen Sie bitte einen neuen Ordner zum Testen an; siehe unten

Hinweis: Dieses Buch ist gerade in einem ersten Aufbau. Bei Interesse schreibe dein Wissen gern ohne große Formatierungen hier hinein...

Vorbereitung

Bearbeiten

Download von entsprechender Website. Installation z.B. nach folgendem Muster:

  • im Ordner /usr/local/ : chmod -R a+wr games ausführen
  • neuen Ordner "ds" erstellen im Desktop-Verzeichnis des Users
  • entpacken des Archivs nach ds
  • wechseln nach ds
  • einfügen mit Texteditor Zeile 3 : "REALLY_RUN_AS_ROOT=true"
  • im Terminal eingeben "sudo ./dstation-install "
  • Sprache auswählen;Fertig
  • nach erfolgter Installation
  • im Ordner /usr/local/games : chmod -R a+wr dockingstation ausführen
  • erstellen einer Kopie vom Ordner /usr/local/games/dockingstation als Ordner "test"
  • öffnen von dstation-install (im Ordner /usr/local/games/test) mit texteditor und ändern folgender Zeilen
 einfügen in Zeile 3 : "NO_CHECK=true"
 ändern Zeile 23     : DEFAULT_INSTALL_DEST=/usr/local/games/dockingstation in "DEFAULT_INSTALL_DEST=/usr/local/games/test"
 ändern Zeile 760    : DS_HOME=$HOME/.dockingstation in "DS_HOME=$HOME/.test"
 speichern !!
  • nochmaliges "./dstation-install " (nocheck ist schon gesetzt)
  • Starter auf dem Desktop anlegen, Ausführung im terminal und mit /usr/local/games/test/dstation-install als Befehl!
  • nun haben Sie eine Kopie der Dockingstation im Ordner /usr/local/games/test und im /home/USER/test stehen

Es wäre von Vorteil wenn jemand eine einfacheres Script schreibt (ohne Update-Check, da die Website nicht mehr existiert)

Für Puristen (kein Spiel sondern nur CAOS)
Nun kann man die "überflüssigen" Dateien im Bootstrap-Verzeichnis löschen. Doch Vorsicht! Auf alle Fälle sollten der Ordner 000 Switcher unverändertbleiben.
Im Ordner 010 Dockingstation sollten folgende Dateien noch vorhanden sein (MINIMAL):

  • !map.cos
  • !DS_game variables.cos
  • !kill duplicate Creatures 3 agents.cos
  • !meso enviroment.cos
  • !world_tints.cos
  • DS CAOS comandline.cos
  • dev tool.cos
  • ds gui-options.cos
  • DS keyboard handler.cos

Legen Sie einen neuen Ordner test an. Hier kommen die neuen cos Files. Nun klick auf den Desktop-starter, Dockingstation startet und falls der World-switcher-dialog nicht erscheint bitte auf "schließen" klicken; dann sollte er da sein.

Nachdem eine neue "Welt" erzeugt ist kann man "normal" auf Beenden klicken und Speichern dann ist man wieder im World-switcher-dialog.

Dieser Absatz ist stark an Creatures Wiki angelehnt.

  • Installiere von DS normal
  • Kopiere den Ordner dockingstation an eine beliebige Stelle
  • Umbenennen vom Ordner in z.B "test"
  • In dem neuen Ordner muß die Datei "machine.cfg" mit einem simplen Texteditor geöffnet werden
  • an der Stelle "Game Name" "Docking Station", soll Docking Station in z.B. "test" umbenannt werden
  • nun kann mit Doppelklick auf engine.exe das Spiel gestartet werden
  • Im Bootstrap Verzeichnis der Kopie gilt das gleich wie unter Linux

Dies sollte jemand schreiben der sich mit MAC auskennt

Begriffe

Bearbeiten

Was ist Was

Bearbeiten

Die Engine verarbeitet Scripte die im Bootstrap Ordner gespeichert sind.Ich möchte ein paar Begriffe erklären die DS spezifisch sind.

MAP
gemeint ist eine art Weltkarte , genauer gesagt ein Koordinatensystem X,Y mit einer größe von ca 10000 x 10000 Pixeln
(In manchen Addons wird die erweitert bis 100000 x 100000 Pixeln )
Anfandspunkt 0,0 ist Oben , Links wenn der Betrachter auf den Bildschirm schaut
Auf diese Ebene beziehen sich alle darauf folgenden Ebenen
dies muß am Anfang definiert werden siehe Befehl mapk löschen der MAP und brmi sezt Neuen Metaroom Index
Metaroom
eine Untermenge der Weltkarte , bekommt eine Metaroomnr. zugewiesen .Ist der eigentliche momentan sichtbare Bereich der
MAP die Koordinaten der einzelnen Bildelemente (zb.Agenten) sind relativ zum MAPursprung.
Benötigt ein Bild im 'blk' Format im Ordner Backgrounds
Room
ein Metaroom (siehe oben) ist in mehrere Räume unterteilt, die alle
verschiedene Eigenschaften erhalten können (z.B. Atembarkeit der Luft)
script
Agenten beinhalten mehrere scripts. Jedes script ist für ein bestimmtes Ereignis zuständig (z.B. "wurde fallen gelassen") und sorgt für die Ausführung von CAOS-Anweisungen, wenn das Ereignis eintritt. (Zulässige Ereignisse werden später aufgelistet)
Agent
ein Objekt in der Welt von Creatures 3 bzw. Docking Station. Alles, was eine Interaktion ermöglicht, ist als Agent zu verstehen. Dazu gehören auch die Hand (der Mauszeiger) und die Wesen selbst. Ein Agent wird klassifiziert durch 3 Zahlen (Family, Genus, Species). Die Hand wird mit 2 1 1 bezeichnet.
Door
Eine Tür kann einerseits eine Absperrung zwischen Rooms darstellen, die Bewegungen innerhalb von Metarooms einschränken oder zulassen kann. Andererseits kann man sie auch als Verbindungen zwischen Metarooms nutzen, die eine Reise in der ganzen Map ermöglichen.
NORN
Ein kleines putziges Wesen, ist A-Life. Künstliches Lebewesen welches mit der Umgebung interagiert, kommuniziert und manchmal auch beleidigt ist. Hat eine variable Lebensspanne und kann sich Fortpflanzen. Zum Anzeigen werden Sprites im *.c16 Format benötigt, welche die Anzeigeposition in der *.att-Datei gespeichert hat.In der *.gen und *.gno Datei sind die einzigartigen Gene gespeichert. Ein Norn besitzt ca. 800 Gene.

Speicherorte

Bearbeiten

In der Datei machine.cfg werden die relativen Verzeichnisse definiert , aus welchen die Engine alle benötigten Daten holt
"Backgrounds Directory" "Backgrounds" Hintergrundbilder der Metarooms im blk format
"Body Data Directory" "Body Data" Koordinaten für das "zusammensetzen" der Norn im att Format
"Bootstrap Directory" "Bootstrap" Alle benötigten cos Dateien mit CAOS Scripten
"Catalogue Directory" "Catalogue" Hilfs-Text Dateien catalouge-Datei ;einfach Text Datei
"Creature Database Directory" "Creature Galleries"
"Exported Creatures Directory" "My Creatures" Import /Export von Creatures
"Game Name" "Docking Station" Name des Spiels
"Genetics Directory" "Genetics" Genetik infos für Creatures (ein großes Kapitel für sich)
"Images Directory" "Images" Bilder Dateien verwendet von CAOS-Scripten und Norn
"Journal Directory" "Journal" Temporärer Speicher Ort der interne Infos
"Main Directory" "."
"Overlay Data Directory" "Overlay Data"
"Resource Files Directory" "My Agents" Agenten
"Sounds Directory" "Sounds" Musik
"Users Directory" "Users"
"Worlds Directory" "My Worlds" Welten
"Win32 Auxiliary Game Name 1" "Creatures 3" Hilfsdatei

Dateiformate

Bearbeiten
*.wav
Sounddateien werden im üblichen unkomprimierten wav-Format abgelegt.
*.mng
Dieses Format bezeichnet die Hintergrundmusik der verschiedenen Metarooms.
*.gen
In solchen Dateien werden die Gene der Wesen abgelegt. Im Gegensatz zu C2 wird nicht mehr für jedes Wesen eine eigene Genom-Datei erzeugt, sondern es existiert eine Datei für alle Wesen die von diesem Genom abstammen.
*.gno
*.catalogue
Diese Dateien beinhalten die Agenten-Hilfe (mit F1 aufrufen)
*.cos
Dateien mit diesem Format bilden sozusagen das Herzstück von C3/DS. Darin stehen die Agenten mit allen zugehörigen scripts.
Cos-Dateien im Ordner "Bootstrap" werden beim Erzeugen einer Welt einmalig aufgerufen. Wenn man sie mehrmals nutzen möchte, benötigt man den "ject"-Befehl oder muss einen Agenten daraus erstellen.
*.agent
Dies ist eine zum Agenten kompilierte cos-Datei. Sie kann - vorausgesetzt sie befindet sich im richtigen Ordner - per Erzeuger in die Welt eingefügt werden. Sprites und Sounds müssen gesondert in Ordner eingefügt werden.
*.agents
Eine Agents-Datei beinhaltet nicht nur den Code des Agenten, sondern auch noch Informationen zu Bildern und Sound etc. Sie stellt also eine Art Gesamtpaket des Agenten dar. Es sind keine zusätzlichen Dateien nötig.
*.creature
*.blk
Die Hintergrund-Dateien sind im Ordner Backgrounds als *.blk gespeichert.Ein ähnliches Format wie c16.*.blk und *.c16 können mit Spriteeditor oder Gimpplug-in editiert werden
*.att
Text-Datei , in der festgehalten ist an welcher Stelle die einzelnen Sprites des Norns angezeigt werden.

c16 Datei

Bearbeiten
*.c16
Bilddateien in C3/DS werden im Format c16 abgelegt. Dateien in diesem Format können mehrere Bilder beinhalten, auf die einzeln zugegriffen werden kann.

c16 Datei welche ich für einige Beispiele verwende

Diese Dateien sind das absolute Minimum, welches für den Einsatz der Engine erforderlich ist .KEIN CREATURES SPIEL nur reines CAOS