Bonsai Scripting Language 0.2

Anwendungen, Tools, Userlibs und anderes nützliches.
Kekskiller
Beiträge: 752
Registriert: 14.09.2004 21:39
Kontaktdaten:

Bonsai Scripting Language 0.2

Beitrag von Kekskiller »

Wie schon im Tester-Thread angemeldet, arbeite ich schon seit längerem an einer kleinen Scriptsprache. Nun ist es soweit, ich präsentiere sie euch heute unter dem Namen Bonsai Scripting Laguage, kurz Bsl der auch Bonsai.

Über Bonsai:
Bonsai ist eine kleine Scriptsprache, aufgebaut nach einem einfachen Muster und erweiterbarem Funktionssatz. Sie ist gemacht worden, um Leuten die Arbeit des Scriptens in Spielen zu vereinfachen und den wahrscheinlich noch nicht feststehenden Satz an Befehlen und Funktionen mit einem einfachen Librarysystem zu vergrößern. Besondere Stärken hat dieses System daher nicht, da die Funktionalität größtenteils von der Qualität der Librarys abhängt. Dennoch bietet Bonsai einige kleine, neckische Funktionen, die einem das Verwalten von Spielereignissen und Rechnungen vereinfachen. Geschrieben wurde Bonsai in der modernen 32bit Programmiersprache Purebasic für Windows. Daher ist es gerade zwingend vorgeschrieben, diese zu nutzen (es sei denn, man portiert der Interpreter in eine andere Sprache). Der Quellcode des Interpreters muss für das Übersetzen im Spiel und der Libraryverbindung mit in die Executable des Spieles integriert werden. Doch für die Editierung der Scripte bietet sich der mitgegebene Editor an.
Bisheriger Funktionsumfang:
  • * Erweiterbarer Befehlssatz
    * Sprungmarken
    * Abfragen
    * Variablen
    * Library/Shortcut-System
    * per Underscore Zeilen verknüpfen
Bisher ist es wirklich nicht viel, aber mehr braucht man meiner Meinung nach auch nicht wirklich. Alle Quellcodes der zwei beigelegten Librarys, des Compilers und des Editors + Tools sind beigelegt worden, um den Interpreter auch in das eigene Spiel einzubauen. Was soll ich noch weiter dazu sagen? Genau, Codestücke!

Code: Alles auswählen

use console.dll, con
con:open
   :settitle Eingabe
   :cursor 9


define char, 0
define NULL, 0


con:color lightblue, black
   :write Bitte drücken sie eine Taste.
   :write (mit Escape beenden)
   :write ;NULL


.keyrepeat

  con:getkey @char

  if #char, =, 0, keyrepeat
  if #char, =, 27, end

  con:color white, black
     :write ASCII : #char

     :color lightgrey, black
     :write HEX   : 0xchar
     :write ;NULL

goto keyrepeat


.end
con:close
delete char
free con
Bonsai hat einen vielleicht etwas sonderbaren, aber dafür einfachen Syntax. Lässt sich leicht und schnell lernen, ist wahrscheinlich auch etwas freier als so manche andere Sprache. Da ich nicht wirklich wusste, für was man Bonsai alles einsetzen könnte, entschloss ich mich, nicht gleich so ein riesen Library-Kompendium zu machen, das würde in den Maßen glaube ich sogar gegen einige der Lizenzrechte von Purebasic verstoßen. Es ist ein reiner Interpreter, also nicht der schnellste. Aber für kleinere NPC- oder Questscripte lässt es sich schon gut gebrauchen.

Edit: Liste ab jetzt mal die verschiedenen Versionen hier auf:
http://Kekskiller.cybton.com/bslrel01.rar (104 kb)
http://Kekskiller.cybton.com/bslrel02.rar (109 kb)

Ich habe versucht, in der Hilfe alles Nötige an Material unterzubringen. Falls ihr etwas nicht findet, oder etwas vollkommen falsch ist, bitte hier reinposten. Nun denn, wünsche ich eine freudige Scripterei und viel Feedbacks. Eigentlich ist sie für Gamescripting gemacht, lässt sich aber auch nebenbei zum Rumprobieren ganz gut verwenden.


Viel Spaß.

Edit by NicTheQuick: URL verbessert
Zuletzt geändert von Kekskiller am 26.02.2005 10:47, insgesamt 4-mal geändert.
Kekskiller
Beiträge: 752
Registriert: 14.09.2004 21:39
Kontaktdaten:

Beitrag von Kekskiller »

So, sorry, müsste jetzt anstandslos funktionieren.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Sieht super aus :allright:. Ich werde mir das gleich mal ziehen aber der Syntax sieht schon viel versprechend aus :D. Von mir bekommst du 10 Sterne :wink:.

edit:
Joah nicht schlecht. Das mit den Plug-ins haste interessant gelöst ;). Nur viel spaß wenn du APIs inportieren willst :D. Ich geb dir mal ein Rat, sieh dir den Easy Source an ;). Da habe ich es hin bekommen Funktionen richtig aus einer DLL aufzurufen. Mit Push und so. Siehs dir am bessten einfach an.
Bild
Kekskiller
Beiträge: 752
Registriert: 14.09.2004 21:39
Kontaktdaten:

Beitrag von Kekskiller »

Schade, dass sich bis jetzt nur einer gemeldet hat...

@MVXA:
Danke für die Lorbeeren <) . Habe mir mal deinen Interpreter/Compiler angesehen, schon ein schönes Stück Arbeit das Teil. Nur bin ich da etwas im Nachteil, weil ich fast 0 Ahnung von Asm und Konsorten habe. Ich könnte vielleicht gedanklich zusammenfassen, wie das vielleicht im großen und ganzen funktioniert, aber das wars auch schon... Daher raff ich das mit dem Librarysystem nicht wirklich, ist mir ohne hin etwas zu viel gepointert dort. Ich hätte natürlich auch alen möglichen Kram mit Lexern, Bytecode und Tokens machen können, aber das würde glaube ich etwas die Startgeschwindigkeit hemmen. Schließlich braucht man dafür Vorcompilierung und solchen Kram. Nagut, wenn man alles schon vorcompiliert und danach nur noch Bytecodes einließt... Ja, das könnte klappen, finde ich aber dennoch nicht wirklich erstrebenswert für das Einsatzgebiet. Schließlich setze ich Bonsai ja auch in meinem Spiel ein und daher kann ich nicht ewig dran sitzen :wink: . Aber wozu API? Verstehe mich nicht falsch, aber ich fidne es etwas übertrieben, bei einer Nachrichtenbox im Spiel tausende on API-Funktionen nochmals per Hand rauszuholen :lol: . Ich könnte ja eine Art Streaming einbauen... So mit Umleiten wie in Batch oder so <) :wink: . Würde aber ganz gerne noch mehr Kommentare hören, denn schließlich habe ich es auch ausgestellt, um zu wissen, wie man es noch erweitern kann.

Achja: Ich wollte den Source so einfach wie nur möglich halten, daher habe ich auf große Spielereien verzichtet :freak: ...
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Wenn es nur für ein Spiel ist brauchst du natürlich keine API. Aber wenn du den Interpreter als Windows Application stehen lässt, solltest du auch API Support einbauen. Macht sich schöner in einer modernen Sprache :).
Wenn du mir erlaubst den Sourcecode etwas zu erweitern kann ich ja mal gucken ob ich vielleicht den API Support rein bekomme :D.
Bild
Kekskiller
Beiträge: 752
Registriert: 14.09.2004 21:39
Kontaktdaten:

Beitrag von Kekskiller »

Ich hatte den Editor nur so zum Spaßbeigelegt, es kotzt mich immer an, ständig Verknüpfungen mit Parameter drinne zu erstellen. So kommen auch die faulen Leute dazu, schnell mal eins, zwei Beispiele zu machen. Es sollte besser seinen ZWeck beibehalten, ist ja noch im Entwicklungssatdium. Wollte eigentlich nur ein paar Meinungen einholen, aber da gibt es wohl nur dich. Denn sofern es keiner braucht, werde ich es ohne Support belassen, schließlich will ich mich ja nicht für nichts abrappeln. Wenn du magst, kannst du das tun, nur glaube ich, dass es nicht viel nützen wird :wink: . Mal sehen, am besten noch sowas wie einen Preprozessor in C... Aber nagut, ich werde mal gucken, was sich machen lässt. Werde auch mal die Librarys eigens erweitern, ist ja sonst etwas karg dort im Ordner.

Warum scheut ihr euch denn alle was zu schreiben?
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

keine Zeit, keine Lust

Mir ist es zu aufwändig, das zu testen, und solange ich keinen Verwendungszweck dafür habe, werde ich mir das auch nicht genauer anschauen.
Gute Sache, aber gibts sowas nicht schon? Irgendwie Lua-Script oder so ähnlich?
Egal, optionaler (!!!) - wäre gut, wenn man das für sein Spiel ausmachen kann - API-Support und ne Doku wären sicher Hilfreich

Simon
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Kekskiller
Beiträge: 752
Registriert: 14.09.2004 21:39
Kontaktdaten:

Beitrag von Kekskiller »

Jetzt hast du dir ein Eigentor geschossen, mein Lieber. Beigelegt ist eine ausführliche Dokumentation über alle Themen, die es anbelangt. Na klar gibt es sowas schon, nur willst du Lua portieren? Scheint wohl so, dass es hier einfach keine Leute gibt, die sowas benutzen würden, geschweuge denn überhaupt was mit Spielen machen. Und in anderen Sprachen kann man es jetzt schlecht einsetzen. Na fein, jetzt bin ich ja so richtig glücklich /:-> ...

Dann such ich mir lieber ein anderes Publikum... Einfach eine Schande, dass User jetzt sogar schon zu faul sind, drei Klicks zu machen. Es ist alles darauf ausgelegt, nur wenig machen zu müssen, was will man denn mehr? Nie kann man es den Leuten recht machen.
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Kekskiller hat geschrieben:Schade, dass sich bis jetzt nur einer gemeldet hat...
Stell es doch mal noch im Showcase auf PureArea.net rein, da erschließt Du Dir wenigstens noch das englischsprachige PB-Publikum... :)
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Antworten