Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:22

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Lua Script Language
BeitragVerfasst: Mi Jun 29, 2005 15:34 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Hiho,
Wer Lua nicht kennt hier ein kurze Info.
Lua ist eine Scriptsprache die zu den schnellsten zählt, es ist OO fähig und ziemlich schlank vom Codeaufwand.
Ich hab mich entschlossen Lua in meine Engine (http://X-Dream.sourceforge.net) mit einzubauen und hab dazu ein passenden Header entwickelt.
Der Header basiert auf ein schon vorhandenen Header der leicht veraltet war und nicht gerade vor übersichtlichkeit strotzte.
Ich hab mit Hilfe diesen Headers und den aktuellen Lua 5.02 C++ Headern ein Aktuellen und übersichtlichen Header entwickelt.
Er ist um eine kleine Klasse erweitert der das laden,entladen,anlegen und entfernen von einzelnen Scripten dient.
Des weiterem hab ich angefangen es ein bischen nutzbarer zu machen indem ich die unit so struktoriert habe das man sie bequem um eigene Module erweitern kann.

Den Source hab ich unter folgendem Link abgelegt http://e-e.neroneus.de/Thomas/X-Dream_lua.rar, enthalten sind der Header,2 kleine module zur textausgabe und zum erstellen einer gemeinsam nutzbaren array und eine demo zum testen.

Die beiden benötigten Libaries findet ihr beim Entwickler unter folgendem Link:http://www.lua.org/.

Wenn ich das Scriptmodul und ein paar fixes fertig habe, werde ich die units im CVS von meiner Engine bereit stellen.

Ach und noch ein dank an Noesk, durch sein Projekt bin ich auf die Scriptsprache gestossen und muss mich nicht mit einem überdimensional großen Python Headersamlung rumschlagen.

Bin gespannt, wie ein Flitzebogen, ob ich ein paar Lua scripte zu gesicht bekommen werde, denn ich hab selber gerade mal 1Tag Erfahrung mit der Sprache :oops: .

MfG TAK2k4

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 29, 2005 16:32 
Offline
DGL Member

Registriert: Mi Aug 18, 2004 13:46
Beiträge: 5
kleiner tipp dazu.
World of Warcraft verwendet auch LUA für das gesamte interface. einfach mal nach interface erweiterungen für WoW suchen um zu sehen was man damit alles machen kann. :)

-- dex


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 29, 2005 17:16 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Jo Crytek nutz auch Lua für Farcry und einige andere nutzen ebendfalls Lua für ihre Programme.
Es gab mal eine umfrage bei GameDev zum thema welche Scriptsprachen wer verwendet hier das Ergebnis http://www.gamedev.net/gdpolls/viewpoll.asp?ID=163 .

Ich fummel mich ja momentan noch rein aber weiss folgenden Vorteile die gerade für Games,Demos gut sind z.B. OO, die Möglichkeit den Code vorzucompilieren und Performant.

Momentan bau ich ein Interface um per Scripts die Kamera zu nutzen.

Blender hat mit Python z.B. so gut wie die Ganze Gui realisiert und auch viele Funktionen laufen über scripts.
So gibt man nur noch die in vorhinein gut Performant gemachten funktionen vor und schreibt dann mit ein script die erweiterten Funktionen.
Dies hat den Vorteil man kann schnell fixes machen (zur laufzeit), ist Fehlertoleranz ist groß und schmiert nicht mit ein tollen speicherfehler ab ^^.
Im Fall von Blender sind die Fenster vorgegeben und man kann eigene auf diese hinzufügen, auch die Ganzen wichtigen Variablen, Strukturen sind über Scripts veränderbar. Man lädt das passeden Modul und kann einfach Farben, Meshes und so weiter verändern.

Wo ich jetz schon im Hinterkopf grübel ist wie man dinge wie das Ablaufen von Wegen realisieren kann.
Also den Weg festlegen ist ja logische aber wie man das handelt das man sagt lauf dort den Weg entlang.
Ich hab noch keine Möglichkeit gesehen Zeile für Zeile ablaufen zu lassen und dazwischen mit dem Interpretieren zu pausieren.
Ich grübel auch schon wie ich die Verhalten von Tieren festlegen kann. Ob es dann nicht doch besser wäre das komplett in einer fixed code Variante zu machen oder teils teils um es variabler zu gestalten. Aufjedenfall werde ich die nächsten Tage intensiv mich mit Lua auseinander setzen und hoffentlich mein Spaß haben :D .

MfG TAK2k4

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 29, 2005 17:59 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Bei .net kannst du C# als Skriptsprache verwenden, und wir natürlich auch richtig Compiliert, die Geschwindigkeit ist deshalb natürlich um einiges höher!

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 29, 2005 18:50 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Die C# Scripts sind unter .Net besser optimiert als die normalen Delphi Win32 Programme. Außerdem braucht man kein extra Interface für die Scripts zu schreiben, da ihnen automatisch alle Klassen zur Verfügung stehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 29, 2005 19:08 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Das kann ich mir gut vorstellen das C# seine Vorteile hat zumindestens für jemanden der .Net hat und nur Windows nutz.
Kleiner Tipp der rest der Welt hat kein .NET und es wird auch nicht der Tag kommen wo der grösste Linuxteil sich ein .Net Port compilieren wird.
Wieso auch was soll man mit .Net das ist closed Source und nicht mal Gut und wieso soll man sowas nutzen wenn es schon bessere und schon viel weiter verbreitete alternativen gibt. Naja egal :evil: meine Meinung und ist eh unwichtig, da es um Lua und nicht um C#, Lisp, Python, Perl, Javascript, tcl, tk und wie sie alle heissen geht. Wenn es euch trotzdem jugt eure Meinung los zu werden, die nicht mit Lua zu tun hat, dann eröffnet bitte ein 2 Thread wo man sich den lieben langen Tag zuflamen kann welche Sprache besser ist und wieviele Features mehr drin sind.

MfG TAK2k4

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 29, 2005 19:17 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Zitat:
Wieso auch was soll man mit .Net das ist closed Source und nicht mal Gut und wieso soll man sowas nutzen wenn es schon bessere und schon viel weiter verbreitete alternativen gibt.


http://msdn.microsoft.com/msdnmag/issue ... SourceCLI/
http://msdn.microsoft.com/library/en-us ... rcecli.asp
http://www.microsoft.com/downloads/deta ... laylang=en

Was meinst du denn worauf dotgnu für basiert ? Selbst zusammenbastelt ist das jedenfalls nicht alles. Wie es mit Mono aussieht weiß ich nicht genau, aber die werden wohl auch von dem MS Quelltext abgeschrieben haben.

Zitat:
rest der Welt hat kein .NET

Spätestens mit Longhorn der kleinere Rest.

Zitat:
wo man sich den lieben langen Tag zuflamen kann welche Sprache besser ist und wieviele Features mehr drin sind

Nicht jede Diskussion ist ein Flamewar.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 29, 2005 19:27 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich weiss nicht was am letzen satz so unverständlich war, ich glaub ich sags nochmal.
->Dies ist kein Diskussions Thread für "welche Scriptsprache ist besser", sondern "Lua Script Language".<-
Deswegen bitte ich um Verständis und hoffe das dies nun geklärt ist :wink: .

MfG TAK2k4

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 30, 2005 08:20 
Offline
DGL Member

Registriert: Mo Dez 20, 2004 08:58
Beiträge: 442
Wohnort: Mittweida (Sachsen)
Kann man mit LUA auch ein Script inne Datenbank abspeichern? Und wenn ja, wie muß das aussehen?
Mein Problem ist nämlich, daß mein Projekt in manchan Bereichen UNHEIMLICH flexibel werden muß, und da wollte ich das mit Scripten machen, die in einer Datenbank hinterlegt sind, nach dem Motto: Request->Script auslesen->Interpretieren->fertig.
Noch ne Frage: Kann ich mit LUA dann auch auf die Klasseninstanzen in meinem Projekt zugreifen, oder nur auf globale Variablen?

_________________
Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 30, 2005 10:29 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Ja, du kannst Lua Scripe in einer Datenbank hinterlegen, dazu musst du einfach nur eine Tabelle anlegen wo 1 Spalte vom Typ text ist und eventuell noch eine für ID und eine für den Bezeichner. So kannst du dann per SQL z.B. eine Select From Where anfrage machen und das script abholen.
Mit Lua kannst du auf die Typen aus deinem Projekt zugreifen die du zuvor bekannt gemacht hast bei Funktionen und Variablen ist es sehr einfach wie das mit Klassen geht bin ich momentan dabei herrauszubekommen. Kann aber notfalls sehr einfach über das einzelne bekanntmachen jedes Elementes einer Klasse gemacht werden und dann in Lua diese einzelnen Typen dann zu einer Klasse zusammenführen.

MfG TAK2k4

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 30, 2005 15:47 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
@Pfade ablaufen:

wenn du das timebased machen willst, musst du nur wissen, wie du per skript auf timer oder sogar auf die WinAPI-funktion getticks zugreifen kannst. sobald das möglich ist, kannst du eventbasiert z.b. ein array aus 3d-punkten durchlaufen und dem character sagen "nächster zielpunkt x:y:z". wie dieser denn dann - wiederum timebased - abläuft, ist eine andere frage, allerdings lässt sich so etwas durch per-frame-berechnung/interpolation dann zumindest grafisch recht einfach lösen.

die frage ist eben, wie viel läuft auf skriptebene und wieviel auf engine-ebene, sprich der scripter kommt nicht ran. wenn du das rendern selbst in die hand nehmen kannst(z.b. indem du dir vom programm einen hook auf die render-prozedur geben lässt), wird die sache ja einfach. wenn du allerdings nur der engine sagen kannst "bitte setze JETZT die position des characters x auf x:y:z", müsste wiederum die definition von eigenen timern möglich sein o.ä.

es kommt immer auf die darüberliegende engine an. die EM3-C-Script-Sprache z.b. bietet interval timer und single event timer an, man hat eine funktion System::MakeIntervalTimer(string name, int interval) und kann in einer im skript zu implementierenden OnTimer Void (=Prozedur) auf den übergebenen Namen reagieren.

Nachdem es ja anscheinend um die einbettung in X-Dream geht, musst du eben zusehen, dass du die benötigten funktionen/schnittstellen zur verfügung stellst.

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 15 Queries | GZIP : On ]