AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte RUTIS Engine v2
Thema durchsuchen
Ansicht
Themen-Optionen

RUTIS Engine v2

Ein Thema von olee · begonnen am 18. Mai 2011 · letzter Beitrag vom 28. Dez 2011
Antwort Antwort
Benutzerbild von olee
olee
Registriert seit: 16. Feb 2008
Hi,

Ich möchte euch nun endlich mein neues-altes Projekt vorstellen.
==> RUTIS v2 (Version 2 - obwohls eigentlich Version 3 ist )

Dabei handelt es sich um eine fast komplett neu geschriebene Version meiner alten RUTIS Engine (RunTime-Script - Engine).

Weitere Informationen folgen im Laufe der Zeit.
  • Unterstützt die wichtigsten Delphi-Funktionen bis auf wenige Ausnahmen
  • Äußerst effiziente IDE mit integrierten Debugger welcher über mehrere Units hinweg debuggen kann
  • Kompilieren von Scripten zu einer ausführbaren Anwendung
  • Sehr dynamisches und einfach zu verwendendes Interface für Schnittstellenmethoden zum Hostprogramm für allerlei Features wie z.B.
    • Forms
    • OpenGl
    • Canvas
    • uvm.
  • Unterstützt das einbinden von Methoden aus Programmbibliotheken (DLLs)
  • Spezielles Konstrukt: TMyDelphiClass = external class (TParentClass)
    • Erlaubt den direkten Zugriff auf Objekte aus dem Hostprogramm
  • uvm.

Hier habt ihr erstmal was zum Testen:

rutis_setup.zip (1308 KB)

Ich empfehle den Installer zu verwenden, da dieser bei der Deinstallation auch wieder die evt. entstehenden Registry-Einträge, welche der Compiler benötigt, wieder ordnungsgemäß entfernt. Für die, die absolut dagegen sind, hier das gepackte Release: rutis_release.rar (1192 KB)

Website: AB-Soft


MFG
Björn Zeutzheim
Miniaturansicht angehängter Grafiken
rutis_logo.jpg   rutis_editor_1.jpg  
Codename: Performancepumpe

Geändert von olee (18. Jun 2011 um 22:34 Uhr) Grund: Neue Version
 
Benutzerbild von Neutral General
Neutral General

 
Delphi 10.2 Tokyo Professional
 
#2
  Alt 18. Mai 2011, 17:16
Hallo,

Es wäre ganz schön, wenn du schreiben könntest welche Features die Scriptsprache hat, oder zumindest was sich im Vergleich zu Version 1 geändert hat
Michael
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#3
  Alt 18. Mai 2011, 22:08
Die meisten Verbesserungen fanden beim Compiler statt. Dieser läuft nun viel stabiler und kann nun auch mit komplizierteren Strukturen umgehen. Außerdem sind die generierten Fehlernachrichten viel detaillierter.
Des Weiteren wurde die intern gespeicherte Struktur des Scripts - also die Deklarationen von Variablen, Konstanten und Methoden - weitaus verbessert, was sich auch im Editor unter "Declaration Tree" nach dem Kompilieren eines Scriptes betrachten lässt.
Außerdem gibt es ein neues, sehr hilfreiches Konstrukt - genannt "external class". dies sieht z.B. wie folgt aus:
Delphi-Quellcode:
TBall = external class
private
  fOwner : TBall;
public
  x, y : Single;
  vx, vy : Single;
end;
Der Compiler generiert daraufhin einen Datentyp TBall, welcher mit seinen Feldern exakt dem gleichen Datentyp aus dem Hostprogramm entspricht.
D.h., man kann sich über eine Schnittstelle zum Hauptprogramm einen Pointer auf ein solches Objekt beschaffen, und die darin enthalten Daten direkt manipulieren.
Dieses Feature von RUTIS findet auch umfangreiche Verwendung in der Game-Engine, welche ich zur Zeit entwickele. Dort wird RUTIS zur Steuerung der Spielmechanik verwendet, und kann durch diese external-classes direkt auf die Daten innerhalb der Engine zugreifen.

MFG
Björn Zeutzheim

Geändert von olee (20. Mai 2011 um 14:07 Uhr)
  Mit Zitat antworten Zitat
Custom

 
Delphi 7 Enterprise
 
#4
  Alt 20. Mai 2011, 01:19
Bitte noch Klassen, dann wird das Ding revolutionär!
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#5
  Alt 20. Mai 2011, 14:07
So,
Ich habe mal eine Neue Version hochgeladen, die einige neue Features mit sich bringt und ein paar Bugs behebt.

Eins dieser neuen Features ist das kompilieren von Scripten in eine Exe direkt aus der IDE.
Dazu ist nun die benötigte RUTIS-RE (Runtime-Executable) als Resource an die IDE angehangen.

MFG
Björn Zeutzheim
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG
 
#6
  Alt 17. Jun 2011, 23:08
Ich glaube, ich habe einen Fehler gefunden

Delphi-Quellcode:
unit pi_crash;

interface

implementation

// siehe http://www.hjcaspar.de/hpxp/piprog.htm
function pi_newton(rounds: cardinal): double;
var
  x : double;
  cur_round: cardinal;
begin
  x := 3;

  { START VARIANTE 1 }
  for cur_round := 1 to rounds do
  begin
  // ENDE VARIANTE 1 }

  { START VARIANTE 2
  while (cur_round < rounds) do
  begin
    cur_round := cur_round + 1;
  // ENDE VARIANTE 2 }


    x:=x-sin(x)/cos(x);
  end;
  result := x;
end;

begin
    write('Pi is: '+ FloatToStr(pi_newton(5000)));
end.
In der ersten Variante gibt es das Ergebnis 32 (nicht mal annähernd Pi), Variante zwei führt zu einem netten Laufzeitfehler:
Code:
Compiling program...
Successfully compiled program
Runtime Error: (PI_CRASH:20) Address Error (Address ID = 31)
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#7
  Alt 18. Jun 2011, 22:06
Also ich muss sagen... das war mal ein peinlicher Fehler...
Und noch viel verwunderlicher, dass der mir bisher nicht aufgefallen ist.
Das Problem lag an der Zuweisung x := 3; bei welcher mein Compiler einen kleinen, wenn auch entscheidenden Fehler gemacht hat.
Dies war der alte, fehlerhafte Code des Compilers:
Delphi-Quellcode:
            intDouble :
            Begin
              FactorType := Decl_Double;
              ScriptCompiler.Gen4Float(StrToInt(CpText));
            End;
Und so sollte es eigentlich aussehen:
Delphi-Quellcode:
            intDouble :
            Begin
              FactorType := Decl_Double;
              ScriptCompiler.Gen8Float(StrToInt(CpText));
            End;
Es wurde einfach statt einem Double-Wert ein Float-Wert auf den Stack gepusht, wodurch alle nachfolgenden Stackoperationen föllig ins Chaos gestürzt sind

Wie dem auch sei: Eine neue und (hoffentlich) Fehlerfreie Version wurde hochgeladen!

MFG
Björn Zeutzheim
Björn Zeutzheim
  Mit Zitat antworten Zitat
blackfin
 
#8
  Alt 18. Jun 2011, 22:13
Ich sehe diese Scripting-Engine heute zum ersten Mal mit Erstaunen.
Sehr geiles Teil! Leider fehlt völlig eine Doku / Wiki der Funktionen dazu. Das ist sehr schade, denn dann würde die Engine wohl von vielen Delphianern sehr geschätzt werden
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#9
  Alt 18. Jun 2011, 22:41
Nun eine Dokumentation dürfte vorerst nicht nötig sein, solange RUTIS nicht Open-Source wird.
Wenn aber jemand daran Interessiert wäre, könnte ich das auch gegebenenfalls ändern.

Für die Verwendung des Editors an sich sollte eine Hilfe eigentlich nicht notwendig sein, da die Syntax ja bekannt ist und für die externen Methoden gibts im Editor einen Browser mit Erklärungen zu den meisten Funktionen.

MFG
Björn Zeutzheim
Björn Zeutzheim
  Mit Zitat antworten Zitat
Alt 27. Dez 2011, 15:42     Erstellt von cbsistem
Dieser Beitrag wurde von fkerber gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#10
  Alt 28. Dez 2011, 01:22
That wouldn't be a problem (probably).

You would need to create a little interface through some external methods like RUTIS_Ext_Forms.pas is an interface to part of the Delphi VCL.
If you are interested, I could write a little demo.
But I have to admit that I'm not that good with Databases using Delphi.

I will try to think of an example.
Björn Zeutzheim
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz