Du bist nicht angemeldet.

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!

Werbeanzeige

1

10.12.2007, 21:21

Purga - eine Scriptengine

Einen guten Abend an alle! :)

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.

Offizielle Seite zum Projekt:

(Link)


Forum zum Projekt: Purga-Forum (keine Anmeldung nötig)
Projekt auf Developia: Developia -Eintrag

Direktdownloads:
Purga.rar aktuelle Version
Purga_BETA.rar die nächste BETA-Version ( meistens besser, als die aktuelle version)


Ich freue mich schon über die vielen Kommentare und Bugreports ;) auch gerne per ICQ 224289568 oder PN


MfG Maxim

PS: kleine demonstration der aktuellen beta version:

(Link)
www.virtual-maxim.de <-- C++ Einführung, Spieleprogrammierung-Artikel u.v.m.

Purga Scriptengine <-- eigene Scriptspache.

Dalon

Frischling

Beiträge: 81

Wohnort: Berlin

Beruf: Freiberufler

  • Private Nachricht senden

2

10.12.2007, 22:52

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?

3

10.12.2007, 22:57

zurzeit nur auf C++ -Funktionen zugreifen. aber Funktionen in Scripts sind schon geplant und werden auch 100%-tig implementiert ;)
www.virtual-maxim.de <-- C++ Einführung, Spieleprogrammierung-Artikel u.v.m.

Purga Scriptengine <-- eigene Scriptspache.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

10.12.2007, 23:31

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"

5

11.12.2007, 00:01

:oops: :lol: habe fast alles korrigiert
www.virtual-maxim.de <-- C++ Einführung, Spieleprogrammierung-Artikel u.v.m.

Purga Scriptengine <-- eigene Scriptspache.

Schnitter

Treue Seele

Beiträge: 141

Wohnort: Remshalden

Beruf: Schüler

  • Private Nachricht senden

6

11.12.2007, 16:46

Heißt der Punkt als Satzzeichen nich "Fullstop"?

7

11.12.2007, 16:49

http://dict.leo.org/ende?lp=ende&lang=de&searchLoc=0&cmpType=relaxed&sectHdr=on&spellToler=on&search=punkt&relink=on
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

8

11.12.2007, 16:50

Zitat von »"Schnitter"«

Heißt der Punkt als Satzzeichen nich "Fullstop"?

http://en.wikipedia.org/wiki/Full_stop
wobei das sowas von egal ist...
www.virtual-maxim.de <-- C++ Einführung, Spieleprogrammierung-Artikel u.v.m.

Purga Scriptengine <-- eigene Scriptspache.

Too_noobish

Treue Seele

Beiträge: 165

Wohnort: Wels - Aut

  • Private Nachricht senden

9

11.12.2007, 17:19

@ David: lesser gibt es schon.
Leo
;)
www.mymuesli.com !!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

11.12.2007, 18:49

Ja, ist mir nachher auch aufgefallen, aber in diesem Kontext heißt es "less" ;)

Werbeanzeige