Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Ich möchte hier mein aktuelles Projekt vorstellen:
Purga(rus: Schneesturm, Blizzard) ist eine mini Scriptsprache/Scriptengine. Ich habe aus Spaß angefangen eine Routine zu schreiben, mit der ich C++-Funktionen aus einem Script aufrufen wollte und habe schnell kleinere Erfolge erzielt. Die Routine funktionierte, doch war der Code nicht durchdacht und nicht erweiterbar, also habe ich mir überlegt mit dem neuen Wissen eine kleine Scriptspache zu schreiben. Es war von Anfang an nicht mein Ziel eine super Scriptsprache zu programmieren, die besser als Lua & Co. ist. Mir ging es viel mehr um eine einfache Benutzung und nicht zu letzt um Erfahrung und Spaß.
Mit Purga hoffe ich vor allem Programmieranfänger anzusprechen, die mit Lua oder anderen Scriptspachen überfordert sind und eine Scriptsprache mit einer einfachen Schnittstelle suchen.
Die Scriptengine befindet sich zurzeit in frühem Entwicklungsstadium und besitzt nur eine begrenzte Anzahl an Features und eine unbegrenzte Anzahl an Bugs
Merkmale & Möglichkeiten:
- die Sprache ist case-sensitive, d.h. es wird zwischen Groß- und Kleinschreibung unterschieden.
- Anweisungen werden mit Semikolon abgeschlossen!
- 4 Variablentypen: int, float, char, bool; wobei char einer Zeichenkette entspricht.
- Variablen aus Purga in C++ exportieren
- Einzeilige und mehrzeilige Kommentare
- Inkrementieren(var++; ) und Dekrementieren(var--; )
- Scripts als String übergeben
- C++ Funktionen(stdcall) in Purga aufrufen
- C++ Variablen in Purga verwenden
- Purga Variablen nach C++ exportieren
- Standardinitialisierung von Variablen
- if (elseif, else), while, for
- Cache-Methode. Scripts können vor dem Ausführen „vorkompiliert“ werden.
- Rechnen mit Variablen + - * /
- Logische Operatoren: and or
- Vergleichsoperatoren: < <= > >= == !=
- Vordefinierte Konstanten
Es gibt eine Einführung in Purga, die SteveKr freundlicherweise für mich geschrieben hat. Zwar ist diese Einführung nicht mehr aktuell, weil die Engine deutlich gewachsen ist, so zeig sie trotzdem wie leicht die Scriptspache zu verwenden ist.
Das klingt doch mal vielversprechend. Ich hab da noch nicht ganz durchgesehen mit Funktionen... kann man da auch eigene deklarieren wie in lua oder nur auf C(++)-Funktionen zugreifen?
Habe es noch nicht ausprobiert, aber ein paar Sachen sind mir aufgefallen:
- Die Downloadseite trägt den Titel "Donwlodad"
- "lesser" gibts nicht, es heißt "less"
- Schlüsselwort heißt "keyword", nicht "codeword"
- char als String ist sehr verwirrend, weil char nur "character" heißt (ein einzelnes Zeichen)
- Der Punkt als Satzzeichen heißt "period", nicht "point"
- "ExistFunction" => "FunctionExists"
- "ParseTableDeklaration" => "ParseTableDeclaration"
- "IsCharakter" => "IsCharacter", aber vermutlich ist ein Zeichen in A-Z,0-9 gemeint, dann wäre "IsAlphaNumeric" besser
- "ImportInternLibrary" => "ImportInternalLibrary"