Ich bin gerade dabei von Zeit zu Zeit am Design meiner Adventure-Engine rumzubasteln.
Jetzt bin ich am Überlegen, wie die Script-Sprache aussehen sollte.
Ich habe bis jetzt zwei mögliche Designs überlegt.
Das Grundkonzept steht (angelehnt an objekt-orientierte Programmierung, aber sehr stark vereinfacht), weswegen sich die beiden Varianten von der Technik im Hintergrund wenig unterscheiden.
Das 1. orientiert sich eher an Visual Basic, d.h. es wird wo es geht auf geschweifte Klammern etc. verzichtet. Zudem kann maximal 1 Befehl bzw. Konstrukt (If, Schleifen etc.) in einer Zeile stehen. Zudem müssen alle Blöcke mit einem "end" abgeschlossen werden.
Das 2. lehnt sich grob C++ an.
Ich selbst bin mir unschlüssig welches ich nehmen soll. Das 1. ist zwar leicht einfacher, aber das 2. ist imo flexibler und weil es etwas näher an C++/JavaScript etc. ist vielleicht einfacher zu lernen.
Als Beispiel:
Code: Alles auswählen
object objBaum inherits CStaticObject
[
bool hatApfel
]
event OnLook
Ego.Say("Es ist ein Baum. Schöön!")
end
event OnTake
if hatApfel then
Ego.Say("Schade, keine Äpfel mehr.")
else
hatApfel = false
Inventory.AddItem(invApfel)
end
end
end
Code: Alles auswählen
object objBaum : CStaticObject
{
bool hatApfel;
event OnLook
{
Ego.Say("Es ist ein Baum. Schöön!");
}
event OnTake
{
if(hatApfel)
Ego.Say("Schade, keine Äpfel mehr.");
else
{
hatApfel = false;
Inventory.AddItem(invApfel);
}
}
}