Eigene Scriptsprache?

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

Smily

Betreff: Eigene Scriptsprache?

BeitragMo, Sep 17, 2007 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi,
Ich poste das einfach mal in Smalltalk, weil es ja eigentlich nichts mit Blitzbasic zutun hat.

Beim letzten Stammtisch war hin und wieder die Rede von selbstentwickelten Scriptsprachen, also Programme, die textdatein auslesen und Intepretieren können.

Soo jetzt würd ich mich gerne mal selbst an sowas versuchen, allerdings habe ich da keine ahnung, wie ich da rangehen soll. Ich hatte das schon ein paar mal versucht, allerdings endete das immer in einem mehr oder weniger katastrophalem Code.

Also möchte ich mich einfach mal bei welchen Informieren, die sowas vielleicht schon mal gemacht haben.
Also worrauf sollte ich achten? Und wie sollte ich anfangen? Für ein paar hilfreiche Tips wäre ich dankbar Wink

mfg,
Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

ZaP

BeitragMo, Sep 17, 2007 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte mal einen Gameboy Klon angefangen (BlitzBoy), der eine einfache Scriptsprache haben sollte, so dass sich jeder Spiele schreiben kann.

Also ich habe mit dem Urschleim angefangen, Variablen, später einfache funktionen, die Grafiken laden, und zeichnen, weiter war ich nochnicht :/
Starfare: Worklog, Website (download)

Xeres

Moderator

BeitragMo, Sep 17, 2007 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Eigentlich ist eine Scriptsprache für den Anfang nur geschicktes Stringzerstückeln; jedenfalls wenn man keine Schleifen oder Bedingungen realisieren möchte. Dann reicht es, wenn man auf bestimmte Schlüsselworte reagiert (z.B. einen neuen Type erstellt), und dahinter dazugehörige Daten ausließt. Ich glaub die nwort() Funktion irgendwo aus dem Codearchiv kann da sehr hilfreich sein - oder ist es mir zumindest.

Kompliziertere Scripts mit mehrzeiligen Befehlen/Bedingungen/Schleifen fände ich auch ganz interessant, aber es hapert gerade wieder an der Freizeit... Grundsätzlich halte ich das aber auch für DIE Möglichkeit Spiele zu steuern oder mod-bar zu machen, so wenig Hardcoded wie möglich...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Silver_Knee

BeitragMo, Sep 17, 2007 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm das erste was man machen könnte wäre ne art MS-DOS... das hat einfache schleifen ifs usw... wenn man dafür nen interpreter baut hat man ja schonmlal was... das nächste geht in richtung java/c/php syntax mit stepin konstrukten damit meine ich sowas:
Code: [AUSKLAPPEN]
if ...;Stepin=1
  bla
  if ...;stepin=2
   if ..;stepin=3
   Endif;stepin=3
  endif;stepin=2
  if ..;stepin=2
  endif;stepin=2
endif;stepin=1

eigendlich recht einfach dem pc beizubringen: bei jedem if ein stepin größer und bei jedem endif ein stepin kleiner und die passenden stepins passen eben. nach dem gleichen verfahren geht das mit verschachtelten funktionsparametern. hmm bei dieser gelegenheit kann ich ja die skriptsprache der ki für Realspace pasten... kanns ja mal drüberschauen vllt hillfts und net me sttell ich ins codearchiv das hat nämlich ne richtig schöne skriptspraceund da ichs im moment eh net weitermachen kann... die links kommen dann hierein

Skabus

BeitragMo, Sep 17, 2007 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe vor einigen Tagen für mein Spielprojekt eine Skriptsprache angefangen.
Sicher ist diese noch nicht sonderlich ausgereift, funktioniert aber perfekt und hat
schon einiges an Funktionen.....

An eine Skriptsprache ranzugehen, heißt sich erstmal Gedanken zu machen, wofür du eine
Skriptsprache schreiben willst.Ich brauchte meine Skriptsprache um meine NPC´s zu skripten,
ihre Dialoge schnell und einfach zu erstellen und sie zu bewegen oder derartiges.
Außerdem sollten sie den ungefähren Funktionsumfang eines Rpgmaker 2000-Events haben(falls
du das Programm kennst und shconmal verwendet hast).

Sobald du dir im Klaren bist, wofür deine Skriptsprache eingesetzt werden soll, musst du dir
Gedanken machen, wie die Syntax deiner Skriptsprache aussehen soll.
Ich z.B. habe mich für zeilenweise Einteilung der Befehle entschieden, weil man dann die
Zeilen einfacher auslesen kann.

Code: [AUSKLAPPEN]


/befehl Parameter



Wenn dass feststeht, musst du eigentlich nur noch deinen Plan in Code umwandeln.
Wichtig ist dabei eigentlich nur, dass du daran denkst, dass du eine Textdatei zeilenweise
auslesen muss.Dann musst du nur noch jede Zeile abarbeiten und abfragen welcher Befehl in der
jeweiligen Liste vorkommt.Das geht ganz einfach mit If-Abfragen.

Ich hab das folgendermaßen gemacht: Erstmal werden alle Zeilen ausgelesen und in einen Array oder in eine DVL gespeichert.Dann habe ich festgelegt, dass alles mit leerzeichen getrennt wird.
Sicher ist es sinnvoller Kommas oder Simikolons oder dergleichen zu verwenden.

Code: [AUSKLAPPEN]
/befehl Parameter1 Parameter2 Parameter3 etc.


Dann hab ich den Befehl aus dem String-Array in dem alle Zeilen der Textdatei, welche das Skript darstellen
, gespeichert ausgelesen.Dann wird per IF-Abfrage geschaut um welchen Befehl es sich in der entsprechenden Zeile handelt.Und dann werden die entsprechenden Befehle ausgeführt.

Im allgemeinen sind alle Befehle die BlitzBasic zum Thema Strings und File so hat ausreichend um ordentliche Skriptsprachen für den anfang zu erstellen^^


Ich hoffe ich konnte dir etwas helfen!


MfG Ska
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat

aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit!
Ein SNES-RPG mit Handels- und Wirtschaftselemente.
Infos?Hier: http://www.blitzforum.de/worklogs/234/
Besucht meine Seite:
www.seelenfriedhof.de.vu

D2006

Administrator

BeitragDi, Sep 18, 2007 1:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir mal das hier an:
Backus-Naur-Form und
Erweiterte Backus-Naur-Form
sowie die Querlinks zu Begriffen wie Grammitken, formale Sprachen usw. und natürlich die Weblinks.

Je abstrakter du die ganze Sache angehst, desto flexibler und somit mächtiger wird deine Scriptsprache am Ende werden.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Jo0oker

BeitragMi, Sep 19, 2007 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich das jetzt auch mal für meine NPC's gemacht.(Mit dem Beispiel von der Blitz Basic CD)
Ist eig. ganz simple...


lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

Skabus

BeitragMi, Sep 19, 2007 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo0oker hat Folgendes geschrieben:
Hallo,
ich das jetzt auch mal für meine NPC's gemacht.(Mit dem Beispiel von der Blitz Basic CD)
Ist eig. ganz simple...


lg Jo0oker


Ich will ja net unhöflich sein, aber was willst du uns jetzt mit dieser äußerst informationsträchtigen
Aussage genau auf das Thema bezogen sagen?^^


MfG Ska
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat

aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit!
Ein SNES-RPG mit Handels- und Wirtschaftselemente.
Infos?Hier: http://www.blitzforum.de/worklogs/234/
Besucht meine Seite:
www.seelenfriedhof.de.vu

Kernle 32DLL

BeitragMi, Sep 19, 2007 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mich auch schonmal mit sowas versucht ^^ War aber mehr ein Versuch mich mit n^X (User) zu messen, der eine solche einfache programmiersprache schon in perfekter Form programmiert hat (Schleifen, usw. inklusive).

Weiter als eine (recht coole Wink ) Variablen init. ist es bei mir nicht gekommen... (nebenbei gebastelt während Nordseeurlaub ^^) Es gab an sich keine "normalen" Variablen... Eine Variable war eigentlich nur ein Platzhalter, der Felder enthielt Razz Sozusagen eine Mischung aus Array und Type Razz

Grüßle:
Kernle
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009

peacemaker

BeitragFr, Sep 21, 2007 12:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Tehadon (http://tehadon.info)
hat eine skriptsprache.

Sie ist recht weit fortgeschritten, bietet Variabeln, If-Abfragen, Funktionen funzen noch nich ganz Smile

Um eine Skriptsprache zu machen, die nur Befehle ausführt, braucht es nicht viel.

Also damit meine ich eine solche:

Code: [AUSKLAPPEN]

OutputText (20,20, "HALLO_OO");
Draw_The_Stuff (0);
Wait_An_Minute ();


Willste solche Funktionen haben, kannste meinen (teils) selbstgeschriebenen Funktionsparser nehmen.
Er funktioniert so:

In einer (sie ist Global definiert) Variable "sTxt" speicherst du die Zeile als String.

Dann suchst du mit der Funktion TE_FindCommand () die Funktion und ihre Parameter.
Das wäre beim Befehl PRINT z.B. so:
if TE_FindCommand ("PRINT")
print parserreturn (1);
endif

in dem Array parserreturn (das Ding nutzt den Parser von blitzbase.de) werden alle Parameter als String gespeichert. Nun wertest du die Parameter aus und führst irgendetwas aus.
Wenn du den Code willst, schreibe mir ne PM

MfG
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/

Silver_Knee

BeitragFr, Sep 21, 2007 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab mal den code für die ki gepastet da:https://www.blitzforum.de/upload/code.php?show=633
und Net.Me auch:https://www.blitzforum.de/foru...hp?t=25225

Net.Me hat mehr eine .bat ähnelnde sprache während eher an C basierend erinnert mit seinen verschachtelten funktionen und dem ; am ende jedes befehls.

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group