Delphi-PRAXiS
Seite 2 von 11     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   RUTIS Engine (Scripting) [WinCE spinnt] (https://www.delphipraxis.net/135613-rutis-engine-scripting-%5Bwince-spinnt%5D.html)

olee 19. Jun 2009 13:43

Re: RUTIS Engine (Scripting)
 
Ganz recht!

Es sind mehrere Scriptsprachen möglich.

Es gibt immerhin eine TRutisCompiler Klasse, von der dann z.B. TRutisCompilerDelphi abgeleitet ist, und
sogar eine Variable ScriptLanguage, wo man später eine sprache auswählen könnte.

Ich bin mir nur noch nicht sicher, ob und welche Syntax ich einbauen sollte (Vllt. auch einen eigenen).

Delphi-Quellcode:
fCode := @ScriptData^.Code;
Funktioniert auch in Delphi und ich habe es kurzerhand in den Code eingebaut.

Aber die OpenGl-demos kannst du doch mit der schon kompilierten Version testen :wink:

Aber nochmals DANKE für das Interesse und deinen Beitrag :mrgreen:

Ich werde demnächst eine neue Version uploaden.

Was ich noch vorhabe:
  • Freie Typendeklaration d.h. z.B. TInfoInteger = Integer
    Pointer-Typen (PBall = ^TBall) wird es wohl nicht geben, da sie unnötig sind.
  • Mit 1. -> Methodenvariablen (var proc: TDoSoThProc) und Vorausdeklaration von Methoden (also über implementation)
  • Finalization für Objekte/Vars (also freigeben von Arrays (Strings werden schon automatisch freigegeben^^))
  • String und Char Support (z.B. AString[i] := #13)
  • Sobald es möglich wird OOP :cyclops:

MFG

littleDave 19. Jun 2009 23:50

Re: RUTIS Engine (Scripting)
 
Ich wollt mich auch mal zu der Script-Engine äußern.

Also erstmal: ein wirkliches Lob - ich weiß was für ein Aufwand es ist, so was zu schreiben. Ich hab mir das Testprogramm angeschaut und finde es wirklich gut.

Jedoch wollt ich noch kurz was sagen (jedoch wirklich ohne Konkurenzgedanken!):
Zitat:

Zitat von olee
Ich habe mir mal die Sysygy angekuckt und gesehen, dass die mit Variant arbeitet, was nicht gerade
schnell ist.

Bei meiner Script-Engine gibt es den Delphi-Typ Variant nicht und er wird auch nicht benutzt. Die einzige Funktion, die Variant unterstützt ist die "Call"-Methode, die als Rückgabewert den Typ Variant hat (die Funktion ist dazu da, um einzelne Script-Funktionen ausführen zu können). Mein Datentyp hat zwar im Namen zwar "Variant" stehe, jedoch ist der Typ an sich (wie bei dir) nen Record mit ner case-anweisung variabel gestalltet ist.
Delphi-Quellcode:
type
  PSygScript_Variant = ^TSygScript_Variant;
  TSygScript_Variant = record
     ...
     case Byte of
      btU8             : (tu8         : TbtU8);  // byte
      btS8             : (ts8         : TbtS8);  // shortint
      btU16            : (tu16        : TbtU16); // word
      ....
  end;
Nur um das mal richtig darzustellen.

Ich denke, dass die Engine viel potential hat. Noch mal zum OOP: eine Script-Engine ist in meinen Augen nicht dazu da, um Datentypen zu definieren, sondern nur um den Programmablauf zu steuern. Ich will zwar in meiner neuen Script-Engine irgendwann mal OOP unterstützen, jedoch ist das wirklich nur zweitrangig.

Ich wünsch dir auf jeden Fall viel Glück und Erfolg mit der Script-Sprache und hoffe, dass es gut für dich weiter geht - und das Beste ist immernoch: man weiß sehr viel besser über die internen Abläufe des Compilers, über die CPU usw. bescheid :-).

Ach ja, was mir noch aufgefallen ist:
Delphi-Quellcode:
var i: integer;

implementation

begin
  i := 2.1; // <- das sollte nicht funktionieren
end.
Zudem würd ich noch die Operatoren mod shr und shl einbauen - das ist schon relativ wichtig.

Grüße

olee 20. Jun 2009 13:41

Re: RUTIS Engine (Scripting)
 
Hm vllt. war das auch nur eine etwas alte Version der Sysygy oder ich hab mich geirrt sry :wink:

Aber ich habe noch eine Menge Arbeit vor mir.

Am meisten zerbreche ich mir momentatn den Kopf darüber, wie ich geschickt die Typen abspeichere.
Ich möchte dabei möglichst EIN array mit allen Typen haben... :?


MFG

olee 21. Jun 2009 14:12

Re: RUTIS Engine (Scripting)
 
Mal eine kleine Info, die bestimmt einige interessieren wird:

Die Engine wird ebenfalls mit FPC kompilliert für PocketPc :-D

In einer älteren (sehr viel älteren :-D) Version hatte ich es sogar schon mal auf dem PPC laufen

MFG

olee 24. Jun 2009 10:39

Re: RUTIS Engine (Scripting)
 
So ich habe mal eine neue Version hochgeladen.

Neuerungen:
  • Bugfixes
  • Conditions werden nun als Ausdrücke erkannt.
    (Bsp: Bool := Bool2 and (X = 3);)
    Vorher gab es eine eigene Funktion zur erkennung von Conditions, sodass Anweisungen wie
    die genannte nicht möglich waren.
  • Break und Continue stehen nun zur Verfügung
  • Length, High und SetLength für Strings
  • uvm.

Außerdem habe ich eine zweite Version hochgeladen, die die komplette benötigte Source enthält
und so direkt kompilierbar ist (Wenn doch noch eine Unit fehlen sollte bitte melden).

Derzeit empfohlene Scripte:
  • Skeleton gl 2.rutis
  • DEMO_Gravity_OpenGl.rutis
  • GAME ICY TOWER.rutis
  • DEMO_Gravity_Canvas.rutis

MFG

olee 24. Jun 2009 19:07

Re: RUTIS Engine (Scripting)
 
So ich habe mal die "IDE" vebessert - sowohl in Funktion, als auch Design.

Ich hoffe es gefällt euch.

MFG

olee 25. Jun 2009 10:10

Re: RUTIS Engine (Scripting)
 
So ich habe nochmal einige kleine Bugfixes gemacht und die IDE verbessert.

Wer will darf selbstverständlich auch mal selbst erstellte Scripte hier hochladen.

Mich würde es auch mal interessieren, wie gut ihr die Bedienung u.a. findet.

Also wer Lust hat: Einfach mal ein geschriebenes Script hochladen :stupid:

MFG

mimi 31. Jul 2009 00:13

Re: RUTIS Engine (Scripting)
 
Das Projekt ist von der Idee her nicht schlecht. Für ein sehr Aktuelles Projekt, suche ich genau sowas.
Eine universale Script Engine.

Du hast geschrieben, dass die Sprache egal ist. Prima. Also könnte ich zum testen theoretisch, erst einmal die Objekt Pascal Sprache nehmen und später weitere die ich benötige hinzufügen z.b. wie JavaScript, JScript, VBScript und soweiter oder sogar eine Eigene.

olee 8. Sep 2009 15:16

Re: RUTIS Engine (Scripting)
 
So nach langem Schweigen darf ich mal wieder meine Konkurrenz gegenüber
der Sysygy Engine ankündigen :twisted:

Ok (fast-) Spaß beiseite:

Ich habe natürlich nicht an der Arbeit an RUTIS aufgehört, aber nur ne kleine Pause gemacht.

Ich habe mich in der Zeit mal meinem anderen laufenden Projekt LOZ zugewandt.

Jetzt aber kehren ich und RUTIS zurück ... mit neuen Ideen :-D

Ich werde mich jetzt von ein paar Sachen trennen, und neue geniale Funktionen einbaun.

--------------------------------
Dabei die größte Änderung:
--------------------------------
Ich werde jetzt nichts mehr in den Stack als "Selfmade-Variant" ablegen, sondern
ich werde die Daten unmittelbar als (wenn man es so nennen kann) "Datenstream" abspeichern.
D.h. die Daten liegen so im Speicher, wie es auch bei Delphi der Fall ist.
Der Vorteil:
Man kann ganze Records aus dem Hauptprogramm direkt in das Script laden oder sogar
aus dem Script (über Pointer) heraus bearbeiten.

Das bedeutet im Klartext:
MEHR GESCHWINDIGKEIT UND FUNKTIONALITÄT ... und das nicht gerade wenig ^^

Was noch kommt:
  • Die Typen werden vollkommen neu abgespeichert.
  • Es werden neu Variablen zur Verfügung stehen:
    Von Byte über ShortInt biz zu Integer und Cardinal...
    Von Single über Real bis zu Extended
    Vermutlich kann man später eigene Varaiblentype (sowas wie ein TVector) definieren, die eigene Operatorenfunktionen ("Vector := Vector1 + Vector2" oder "Vector := Vector1 * Vector2") besitzen, deklarieren (aber nur aus dem Hauptprogramm raus)
  • Es sind dann auch solche Konstrukte möglich:
    "TMyInteger = Integer",
    "TIntArray = Array of Integer" usw.
  • Methoden werden auch als Typen deklariert -> es kann wie in Delphi Methoden-Variablen (events) geben.
    "TUpdateProc = procedure(time: Single);" usw.
  • UVM.

Ich werde euch sicherlich weiterhin auf dem Laufenden halten.

MFG

mimi 8. Sep 2009 20:29

Re: RUTIS Engine (Scripting)
 
Kling gut.

Wenn ich deine Script Engine auch unter FPC zum laufen bekomme, wenn es soweit ist. Im Moment habe ich noch keine Verwendung dafür, allerdings später währe so eine Script Sprache nicht schlecht. Inzwischen habe ich theoretisch vier zur Auswahl, mal sehen, welche ich als erste einbaue *G*.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 Uhr.
Seite 2 von 11     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz