Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

29.11.2014, 23:25

Wie funktioniert ein RPGMaker eigentlich?

Hallo alle zusammen,

mich würde sehr interessieren, wie ein RPGMaker internen so ungefähr funktioniert.
Es sprengt irgendwie meine Vorstellungskraft, wie etwas bereits kompiliertes nochmals etwas kompilieren kann.
Ist da intern ein Compiler "gekapselt". Ich kann mir das überhaupt nicht vorstellen, wie und woraus beim RPGMaker das ausführbare Spiel letztendlich erzeugt wird.

Freue mich über jede Antwort.

Liebe Grüße

:)

Tobiking

1x Rätselkönig

  • Private Nachricht senden

2

30.11.2014, 00:30

Soweit ich weiß nutzt der RPG Maker Ruby. Das generierte Spiel ist dann einfach mit einem Ruby Interpreter ausgestattet, der die selbstgeschriebenen Skripte entsprechend ausführt.

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

3

30.11.2014, 09:35

XP, VX, und VX Ace nutzen Ruby, ja. Allesamt ein altes Ruby (1.8.1, 1.9.x, 1.9.x). Der Unterbau basiert auf WinAPI, die Ruby-Lib ist auf lediglich Win32API, ZLib und noch etwas runtergebrochen worden. Die Bots ("Event-Codes") werden über einen in Ruby geschriebenen Interpreter gesteuert. Die älteren Maker verfügen über keine Skriptsprache.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

4

30.11.2014, 10:47

Erstmal danke für eure Antworten. Und wie erzeugt der RPGMaker dann eine Binärdatei ? Oder erzeugt der gar keine .exe zum ausführen? ( hatte schon lange keinen mehr )

5

30.11.2014, 11:11

Der wird dann wohl den Interpreter und Scriptcode in eine Exe packen.

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

6

30.11.2014, 13:12

Nö, die Scripts werden marshaled, mit ZLib komprimiert, und dann in eine Datei namens Scripts.rxdata (XP), Scripts.rvdata (VX), bzw. Scripts.rvdata2 (VX Ace). Die Executable enthält nur 'n paar Standard-Funktionen, wobei das Meiste in der DLL steckt.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

7

30.11.2014, 18:15

Erstmal danke für eure Antworten. Und wie erzeugt der RPGMaker dann eine Binärdatei ? Oder erzeugt der gar keine .exe zum ausführen? ( hatte schon lange keinen mehr )

Lies Dir mal diesen Artikel durch: http://de.wikipedia.org/wiki/Interpreter (Die Artikelqualität lässt zu wünschen übrig, aber das grobe Konzept sollte rüber kommen)
Lisp ist toll wenn man mal selbst einen Interpreter schreiben will:
https://www.hackerschool.com/blog/21-little-lisp-interpreter

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Chromanoid« (30.11.2014, 18:23)


Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

8

30.11.2014, 22:50

Es gibt sogar ein Projekt hier im Forum welches du dir da mal angucken kannst. Duality könnte dich da sicher interessieren. Ansonsten gibt es verschiedene Ansätze für so etwas. Du kannst im Editor Code generieren und den nachträglich kompilieren oder du kannst Code generieren und daraus eine DLL erstellen welche dann von einer Exe geladen wird. Die Möglichkeit mit dem Interpreter wurde ja auch schon genannt. Ansonsten würde mir spontan nichts einfallen wie man das angehen könnte.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

9

01.12.2014, 21:29

Ich danke euch ! :)

Werbeanzeige