Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 20 von 57

Thema: 5 Stunden zum Variablen löschen

  1. #1

    5 Stunden zum Variablen löschen

    In der "Maker's Mind" gab es mal einen Bericht wie man mit Hilfe des "Resource Hackers" die maximale Variablenanzahl des RPG-Makers auf über 5000 stellen kann - um genau zu sein auf 999.999 Variablen. Für mein Spiel ist eine solche Datenmenge auch notwendig, allerdings muss ich bei jedem Ändern der Database (OK, Apply, Exit) zehn Sekunden warten bis die Datenbank und die Variablen aktualisiert sind. Also wollt ich die maximalen Variablen während des Rumprogrammierens zwischenzeitlich wieder runterschrauben. Dummerweise hängt sich der PC dabei auf. Durch testen hab ich dann erfahren, dass selbst das Löschen (oder Verringern) von 1000 Variablen einige Sekunden in Anspruch nimmt und das Löschen der 999.999 Variablen umgerechnet fünf Stunden dauert würde.

    ---> Fazit: Das Warten beim Database schließen ist besser als fünf Stunden warten.


    Frage 1: Kennt jetzt jemand eine Möglichkeit die Variablen schneller zu reduzieren (durch Dateiinhalte löschen oder sowas)?

    Frage 2: Ist es überhaupt erlaubt das Variablenmaximum zu erhöhen, da der Resource Hacker benutzt wird?

  2. #2
    Zu Frage 1: Du könntest das Problem vielleicht so lösen, das du den RPGMaker deinstallierst und dann wieder neuinstallieren...
    Dein Projekt solltest du natürlich sichern.
    Es könnte aber auch darauf ankommen welche Datei du mit dem Ressource Hacker verändert hast. Falls es die Datei RTP_RT.exe ist könntest du einfach ein neues Projekt machen und die RTP_RT.exe Datei kopieren und die "gehackte" Datei löschen und dafür die "normale" Datei einfügen.

    Zu Frage 2: Ich glaube nicht das es verboten ist, wenn man bedenkt das man den RPGMaker nur noch illegal im Internet bekommen kann.

  3. #3
    Du bekommst ihn auch legal!!

  4. #4
    Zitat Zitat von CapSeb
    Frage 1: Kennt jetzt jemand eine Möglichkeit die Variablen schneller zu reduzieren (durch Dateiinhalte löschen oder sowas)?
    Das ist normal. Ich hab nen 2 GHz-PC und bei mir dauerts schon ne gute Sekunde, wenn der Maker die normale Maximalgrenze von 5000 Variablen aktualisiert. Ergo gibt es wohl keine Lösung. Nur, dass du dir nen schnelleren PC zulegst.

    EDIT: Du kannst natürlich auch erstmal einfach nur die 999999 Variablen auf 10000 runterstellen, dann wirds auch schneller geladen. Je weniger Variablen desto schneller lädt er. Hast du nur eine Variable lädt's ruckzuck, hast du ne Mio. dauerts halt. Noch dazu: Du brauchst wirklich eine Million Variablen? Du musst ja was absolut riesiges vorhaben

    Zitat Zitat
    Frage 2: Ist es überhaupt erlaubt das Variablenmaximum zu erhöhen, da der Resource Hacker benutzt wird?
    Ja, ist es, solange du dein Spiel damit nicht unspielbar machst, weil du zum Beispiel deine Ressourcen nicht ordentlich über die Importier-Funktion importierst.
    Soll heissen: Solange du lediglich das Maximum hochstellst und das Spiel somit auch auf anderen Rechnern spiebar bleibt, solltest du keine Probleme haben, es hier auch online stellen zu können (vorher natürlich austesten, obs auf anderen Rechnern läuft).


    EDIT: In welcher MakersMind stand das drin? Haste noch zufällig nen Link dazu? Ich bräuchte das doch auch dringend, zwecks der maximalen Picture-Anzahl *husthust*

    EDIT: @Luki: Mist
    Naja, dann hat sich das auch erledigt ;_;

    Geändert von V-King (09.02.2006 um 08:27 Uhr)

  5. #5
    maximale Pics kannst du zwar mit dem Maker hochstellen, machst damit aber das Spiel unspielbar, weil fuer die Pics kein Speicher alloziiert wird.

  6. #6
    Zitat Zitat von CapSeb
    - um genau zu sein auf 999.999 Variablen. Für mein Spiel ist eine solche Datenmenge auch notwendig,
    JAHAHAHAHAHA XDDDDD
    Spinn nicht rum, so viel wird niemand jemals brauchen und wenn doch soltest du dir mal Gedanken über deine Arbeitsweise machen.

    Was wird denn das fürn extravagantes Project?
    Ein nrmales RPG jedenfalls nicht.

  7. #7
    Zitat Zitat
    Was wird denn das fürn extravagantes Project?
    Ein normales RPG jedenfalls nicht.
    Ich hab nicht vor 999.999 Variablen für geschichtliches zu verwenden. Es geht um ein Rennspiel mit Geisterdaten, die für jede Sekunde Replay 20 Bilder und damit 40 Variablen brauchen (x- und y-Achse). Bei 40 Geistern/Stecken mit je maximal sechs Minuten komm ich auf 960.000 Variablen...

    Zitat Zitat
    Du könntest das Problem vielleicht so lösen, das du den RPGMaker deinstallierst und dann wieder neuinstallieren...
    Dein Projekt solltest du natürlich sichern.
    Es könnte aber auch darauf ankommen welche Datei du mit dem Ressource Hacker verändert hast. Falls es die Datei RTP_RT.exe ist könntest du einfach ein neues Projekt machen und die RTP_RT.exe Datei kopieren und die "gehackte" Datei löschen und dafür die "normale" Datei einfügen.
    Wenn ich das Variablenmaximum erhöhe, gibt es nicht nur die theoretische Möglichkeit 999.999 Variablen zu benutzen, sondern es werden tatsächlich 999.999 Variablen angelegt - eben mit dem Wert null. Das Ganze steht jetzt dummerweise in der Datei "RPG_RT.ldb" des Projektes, in der quasi das komplette Spiel steckt. Datei ersetzen geht also nicht.

    Hat denn jemand eine Idee, welcher Inhalt der Datei gelöscht/verändert werden muss, um wieder auf 5000 Variablen zu kommen?

  8. #8
    Ja. Öffne das Spiel im Maker, mach ein neues Event oder benutz n Common Event, dann irgendwas, womit du die Variablen ändern kannst (z.B. den Befhel Set Variable) und dann setzt du das Maximum von 999999 auf 5000 und fertig o.o

    Ansosnten kannst du natürlich nochmal den Ressource Hacker benutzen und die Variablen auf 5000 zurücksetzen.

  9. #9
    Zitat Zitat von CapSeb
    Ich hab nicht vor 999.999 Variablen für geschichtliches zu verwenden. Es geht um ein Rennspiel mit Geisterdaten, die für jede Sekunde Replay 20 Bilder und damit 40 Variablen brauchen (x- und y-Achse). Bei 40 Geistern/Stecken mit je maximal sechs Minuten komm ich auf 960.000 Variablen...
    Führ das mal näher aus, ich kapier nech genau, wieso du jede Variable nur einmal benutzen kannst

  10. #10
    Zitat Zitat
    V-King:
    Öffne das Spiel im Maker, mach ein neues Event oder benutz n Common Event, dann irgendwas, womit du die Variablen ändern kannst (z.B. den Befehl Set Variable) und dann setzt du das Maximum von 999999 auf 5000 und fertig o.o
    Sorry, aber ich möchte wissen, wie man es in weniger als fünf Stunden -also in einer Minute- schafft und nicht wie man den Maker bedient.
    Zitat Zitat
    Dhan:
    Führ das mal näher aus, ich kapier nech genau, wieso du jede Variable nur einmal benutzen kannst
    Mein Spiel soll aus 20 Bahnen bestehen, auf denen man unter Anderem auch Streckenrekorde aufstellen kann. Nun besitzt jede Bahn einen von mir vorgegeben Entwickler-Geist (Ein Abbild eines früheren Autos wie z.B. in Mario Kart) den man schlagen muss und zusätzlich den besten eigenen Geist, womit man auf 40 Geister kommt. Es ist vorgesehen, dass man für jede Bahn maximal 300 Sekunden braucht. Das macht insgesamt 12.000 Sekunden oder 120.000 Zehntel. Ein Bild wird jede zwanzigstel Sekunde dargestellt wodurch 240.000 Bilder entstehen. Da jetzt jede Bildposition aus drei Informationen besteht, nämlich x-Achse, y-Achse und Ausrichtung kommt man auf die sagenumwogenen 960.000 Variablen.
    Das ganze muss jetzt in verschiedenen Variablen gespeichert werden, damit jeder Geist zu jeder Zeit verfügbar ist - wie eine Highscoreliste eben.

    Aber die Frage steht immer noch: Wie schaffe ich es zwischendurch mal eben das Variablenmaximum wieder herunter zu setzen?
    Oder anders gefragt: Wie ist die Datei "RTP_RT.ldb" aufgebaut und wie kann ich nur die Variablen löschen?

  11. #11
    ...also du willsts so machen, dass man, wenn die strecke neu
    ist man gegen den computer geist fährt, und
    wenn man den besiegt hat, gegen seinen eigenen geist...
    hm... wenn du nur 20 strecken hast...
    dann komm ich aber auch nur auf die hälfte...O.O
    denn warum sollten die com-geister daten nicht überschrieben
    werden, wenn man gewonnen hat???
    und wenn man die eigenen geister löschen will,
    kann man die ja wieder auf die com-geister setzen..

    mfg
    üH

    und warum willst du wirklich jede 20stel sekunde speichern???
    reicht es nicht aus, wenn du die koordinaten von jeder sec speicherst
    und das da zwischen bisschen interpretierst???

    Geändert von übelster Held (09.02.2006 um 21:59 Uhr)

  12. #12
    Soll das bedeuten, du versuchst, mit Variablen eine KI zu ersetzen? Du brauchst doch wohl net mehr als x,y, dir und ein zwei andere Varis pro Geist?

  13. #13
    Zitat Zitat von Dhan
    Soll das bedeuten, du versuchst, mit Variablen eine KI zu ersetzen? Du brauchst doch wohl net mehr als x,y, dir und ein zwei andere Varis pro Geist?
    Nein, denn den vorgegebenen "Programmierergeist" könnte man zwar über eine KI abspielen lassen, aber ich glaube eher, dass er da seine eigens erfahrene Bestzeit einbringen möchte.
    Für den normalen Geist, der die Bestzeit des Spielers verkörpert, fällt eine KI sowieso flach.

    Das Problem besteht einfach darin, die ganzen Informationen während des Spielens zu speichern, um diese dann wieder "on the fly" ^^'auswerten zu können.
    Da man die Langsamkeit des RPG Makers bei dieser Variablenanzahl kaum umgehen kann, sollte man lieber wie Dhan es bestimmt vorhatte, das Problem bei der Wurzel packen und einfach versuchen weniger Variablen zu verbrauchen, denn mit geschickter Nutzung der vorhandenen Ressourcen kommt man bestimmt mit weit weniger Variablen aus.

    Meine Idee wäre:
    -die Position x und y und die Richtung (8 Unterscheidungen (Himmelsrichtungen) nehme ich als Bsp. an) in einer einzigen Variable speichern (rm2k3 bietet ja siebenstellige Varis, wenn man nun alle Stellen ausnutzt, hat man für die Koordinaten zB. jeweils die Möglichkeit von 0-999 zu unterscheiden, was bis zu einer Mapgröße von 62x62 (1000/16) gehen dürfte)
    -> 960000/3 = 320000
    -ich würde zweitens die Geistdaten nur einmal pro halber Sekunde speichern und die "Zwischenschritte" dann beim Abspielen des Replays "schätzen" bzw. per Formel errechnen "lassen" (dürfte immer noch genau genug sein)
    -> 320000/10 = 32000

    zwar immer noch recht viel, aber der RPG Maker dürfte nicht mehr total den Dienst verweigern

  14. #14
    Moment, hab ichs jetz richtig verstanden, die Geister sind also quasi ein Replay der besten Zeiten, die bisher erzielt wurden und brauchen daher eine genaue Route?
    D.h. du setzt einfach jede Sekunde eine Zeiger-Variable höher die dann zu einer immer neuen Variable führt? Hummmm.... wenn sowas unbedingt sein muss, ich halts für übertrieben, dann speicher doch net in "Pixelbewegung" sondern in Vektoren, das spart schoma extrem unter Umständen
    Vor allem brauchst du für x/y nur den Startwert, der Rest errechnet sich dann ja. Direktion und Vektorlänge speicherst du in einer einzigen Variable und wenn der Geist lange Strecken gerade fährt, spart das massig Varis

  15. #15
    Zitat Zitat
    wenn sowas unbedingt sein muss, ich halts für übertrieben, dann speicher doch net in "Pixelbewegung" sondern in Vektoren
    Wenn man nur zB. 8 Richtungen zur Verfügung hat, in die man sich bewegen kann, dann ist die Idee wirklich nicht schlecht
    nur Sorgen mache ich mir um die Geschwindigkeit, wie lässt sich die Beschleunigung mit einem Vektor darstellen? (nehmen wir an, man beschleunigt nichtlinear über einen doch recht großen Zeitraum -> lange Gerade)

  16. #16
    Zitat Zitat von Ryo Saeba 1000
    Wenn man nur zB. 8 Richtungen zur Verfügung hat, in die man sich bewegen kann, dann ist die Idee wirklich nicht schlecht
    nur Sorgen mache ich mir um die Geschwindigkeit, wie lässt sich die Beschleunigung mit einem Vektor darstellen? (nehmen wir an, man beschleunigt nichtlinear über einen doch recht großen Zeitraum -> lange Gerade)
    kk, dann eben noch a(ccelaratio) in die var, ich glaub, auch damit müssts noch passen, muss ma halt einen Vektor in mehrere machen wenn innerhalb von ihm unterschiedlich beschleunigt wurde (aber in nem Rennspiel is ma doch meist eh Bleifuss), v brauchs mit a ja nech da man weiß, über welche Strecke a angewandt wurde, lässt sich das errechnen. (falls Cap das net weiß, kA wie weit der Kinetik kennt: a = vt und s=0,5at², aus den Formeln bekommst v raus wenn du a und s kennst wenn du nach t auflöst)

  17. #17
    Um zu wissen, wie man die Variablenanzahl verringern kann, müsse man doch wohl erst ma wissen, wie du die geister überhaubt steuerst. (D.h wie und in welche Richtung sie wann fahren)

  18. #18
    Zitat Zitat
    übelster Held:
    wenn du nur 20 strecken hast... dann komm ich aber auch nur auf die hälfte...O.O denn warum sollten die com-geister daten nicht überschrieben
    werden, wenn man gewonnen hat??? und wenn man die eigenen geister löschen will, kann man die ja wieder auf die com-geister setzen..
    Das Problem bei der ganzen Sache ist, dass ich die Entwickler-Geister ja nicht mit der Hand eingeben kann (480.000 Variablen... ). Das heißt, ich muss meine Replays - genauso wie später die Spieler es machen - speichern lassen, nur eben in die anderen 480.000 Variablen. Die Variablen sind dann allerdings in der Save-Datei gespeichert und man kann sie deshalb nur über "Laden" im Titlescreen erreichen. Dashalb soll der Titelbildschirm die Drei Menüpunkte "Hilfe" (statt "Beginnen"), "Spielen" und "Beenden" erhalten. Um unter "Spielen" einen Speicherpunkt zu haben, bei dem das Spiel neu beginnt, kann man diesen von einem geladenen Spiel aus erstellen. Dieses Erstellen geht durch einen Menüpunkt im eigenen Menü. Im Grunde ist es das Gleiche wie normal speichern, nur dass direkt vor dem Speichen alles bis auf die Entwickler-Geister gelöscht wird, man speichert und dann zum Storyanfang teleportiert wird, wo das Spiel dann beginnt. Lädt man diesen Speicherpunkt beginnt das Spiel ganz normal - mit dem Unterschied, dass die Entwickler-Geister existieren.

    Zitat Zitat
    Ryo Saeba 1000:
    Meine Idee wäre die Position x und y und die Richtung (8 Unterscheidungen(Himmelsrichtungen) nehme ich als Bsp. an) in einer einzigen Variable speichern (rm2k3 bietet ja siebenstellige Varis, wenn man nun alle Stellen ausnutzt, hat man für die Koordinaten zB. jeweils die Möglichkeit von 0-999 zu unterscheiden, was bis zu einer Mapgröße von 62x62 (1000/16) gehen dürfte)
    -> 960000/3 = 320000
    Die Idee finde ich nicht schlecht. Allerdings benutze ich den "RPG Maker 2000" und der Gleiter besitzt 20 Richtungen (soll flüssig aussehen). Das heißt ich hätte nur 4 Stellen für die Koordinaten... Man könnte aber die x- und y-Achse zusammenschmeißen unter der Bedingung, dass die Map nicht größer als 64x64 Kästchen ist oder zumindest nicht mehr als ein 64 Felder großes Quadrat benutzt wird, da ich den Rand der Map eh nicht benutzten kann. Wenn ich größere Maps machen möchte, gäbe es immernoch die Notlösung eine Varible mit der x- Koordinate und dem Richtungs-Zehner zu bestücken und eine andere mit der y-Achse und dem Richtungs-Einer. Dann könnte ich durch die fünfstelligen Koordinaten 640 Felder große Maps bauen... Insgesamt spare ich dadurch 1/3 der Varibalen und käme auf 640.000 Variablen.
    Also, auf jeden Fall vielen Dank für die Idee!

    Zitat Zitat
    Dhan:
    dann speicher doch net in "Pixelbewegung" sondern in Vektoren, das spart schoma extrem unter Umständen
    Vor allem brauchst du für x/y nur den Startwert, der Rest errechnet sich dann ja. Direktion und Vektorlänge speicherst du in einer einzigen Variable und wenn der Geist lange Strecken gerade fährt, spart das massig Vari
    Ich kann leider nicht darauf setzten, dass der Spieler lange Strecken geradeausfährt, denn jeder Geist belegt momentan 24.000 Variablen und damit 400s. Lange, gerade Strecken würden dann nur bedeuten, dass mehr als 400s zur Verfügung stehen, was nicht wirklich etwas bringt.
    Statt der Pixel die Vektoren zu speichern, ist im Grunde eine Lösung, auf die ich schon gleich hätte kommen müssen. Denn im Gegensatz zu der "Aufnahme" der Fahrt durch das Speichern der Pixel, sind die Vektoren eine "Wiederholung" der Fahrt. Die ganze Physik basiert nämlich auf solchen Vektoren die nicht ganz der beschleunigten Bewegung oder Trägheit gehorchen. Dadurch ist diagonal fahren z.B. schneller, weil die x- und y-Richtung sich gegenseitig nicht beeinträchtigen.
    Auch hier, vielen Dank für die Idee!

    Leider löst das ganze aber nicht mein Problem. Deswegen: Wer weiß, ...

    - ...ob das ganze funktioniert?
    - ...welche Dateiinhalte der "RTP_RT.ldb" ich löschen muss, um mein 5-Stunden-Problem zu lösen?
    - ...ob ihr meinen Text überhaupt gelesen habt...

  19. #19
    Zitat Zitat
    - ...welche Dateiinhalte der "RTP_RT.ldb" ich löschen muss, um mein 5-Stunden-Problem zu lösen?
    Dann schreibe doch ganz einfach dem Ineluki ne PN.
    Der müsste sich doch mit "sowas" (RTP_RT.ldb) ausgennen.

  20. #20
    Die Variablen müssten in der Datenbank gespeichert sein. (weiß ich jetz net weil ichs nie gehabt hab das Problem)
    Leg doch ein neues Projekt an, kopiere alles aus der Datenbank außer die Variablen versteht sich und ersetze die Datenbank des alten Projekt mit der des neuen (Backup der alten Datenbank nicht vergessen)
    Dauert halt ein bißchen weil man für jede Datenbankseite zwischen den Projekten herspringen muss (mit Copy All zum Glück nur einmal pro Seite) aber wohl keine 5 Stunden ^^

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •