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
Ort: Boppard
540 Beiträge
 
Turbo Delphi für Win32
 
#1

Features

  Alt 18. Mai 2011, 21: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
Codename: Performancepumpe

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

Registriert seit: 18. Aug 2007
Ort: Mainz
203 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: RUTIS Engine v2

  Alt 20. Mai 2011, 00:19
Bitte noch Klassen, dann wird das Ding revolutionär!
absoft website

Aktuelles Projekt:
2.6D (Spiel)
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

Registriert seit: 16. Feb 2008
Ort: Boppard
540 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: RUTIS Engine v2

  Alt 20. Mai 2011, 13: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
Codename: Performancepumpe
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

AW: RUTIS Engine v2

  Alt 17. Jun 2011, 22: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)
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

Registriert seit: 16. Feb 2008
Ort: Boppard
540 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: RUTIS Engine v2

  Alt 18. Jun 2011, 21: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
Codename: Performancepumpe
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#6

AW: RUTIS Engine v2

  Alt 18. Jun 2011, 21: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

Registriert seit: 16. Feb 2008
Ort: Boppard
540 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: RUTIS Engine v2

  Alt 18. Jun 2011, 21: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
Codename: Performancepumpe
  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:16 Uhr.
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