collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: hellMinor's "Just Anti-Lag"  (Gelesen 5418 mal)

Offline Onkel Hell

  • Sol Invictus
  • Administrator
  • VX-Kenner
  • ****
  • Beiträge: 562
  • You can't shoot me, I'm AIDS !
hellMinor's "Just Anti-Lag"
« am: Oktober 15, 2008, 02:14:07 »
nun ich glaube der titel sagt alles - hellMinor's "Just Anti-Lag" - ist mein versuch die performance zu steigern
fügt es einfach als neues script über main ein

ich nehme das hier als "open-beta-test" - also postet ruhig eure ergebnisse, fehler die ihr findet und verbesserungsvorschläge
bei meinen eigenen tests lag der fps gewinn bei ca 10-50% abhängig von der event anzahl

wenn ein event immer up-to-date gehalten werden soll, benennt es einfach "update" und schon wird es immer geupdated

also happy testing

hellMinor's "Just Anti-Lag" beta v0.6
Spoiler for Hiden:
#==============================================================================
#  hellMinor's "Just Anti-Lag"
#  Version : beta v0.6
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#==============================================================================
# Um ein Event immer zu updaten, nenn es einfach - update - und schon wird
# es permanent geupdatet
#==============================================================================
 ADJUST = 2    # Bestimmt wieviele Felder außerhalb des Bildes geupdatet werden
 FRAMESKIP = 2 # Wieviele Frames sollen vor dem neu zeichnen übergangen werden
#==============================================================================
class Game_Map
#==============================================================================
  def update_events
    obere_schranke = @display_y/256 - ADJUST
    untere_schranke = @display_y/256 + 13 + ADJUST
    linke_schranke = @display_x/256 - ADJUST
    rechte_schranke = @display_x/256 + 17 + ADJUST
    for event in @events.values
      event_x = event.x
      event_y = event.y
      if event.name == "update"
        event.update
        next
      end
      event.update if event_x >= linke_schranke and event_x <= rechte_schranke and event_y >= obere_schranke and event_y <= untere_schranke
    end
    for common_event in @common_events.values
      common_event.update
    end
  end 
end
#==============================================================================
class Spriteset_Map
#==============================================================================
  alias initialize_just_antilag initialize
  def initialize
    @run_ani = false
    @skip = 0
    initialize_just_antilag
  end
 
  def update
    if @skip == 0 or @run_ani
      @skip = FRAMESKIP
      update_tilemap
      update_parallax
      update_characters
      update_shadow
      update_weather
      update_pictures
      update_timer
      update_viewports
    end
    @skip -= 1
  end
 
  def update_characters
    screen_x = $game_map.display_x/256
    screen_y = $game_map.display_y/256
    for sprite in @character_sprites
      sprite_x = sprite.character.x
      sprite_y = sprite.character.y
      if sprite_x > (screen_x - ADJUST) and sprite_x < (screen_x + 17 + ADJUST) and sprite_y > (screen_y - ADJUST) and sprite_y < (screen_y + 13 + ADJUST)
        sprite.update
        @run_ani = sprite.animation?
      end
    end
  end
 
end
#==============================================================================
class Game_Event < Game_Character
  attr_reader   :name
  alias initialize_just_antilag initialize
  def initialize(map_id, event)
    initialize_just_antilag(map_id, event)
    @name = @event.name
  end
end
#==============================================================================

alte versionen
Spoiler for Hiden:
hellMinor's "Just Anti-Lag" beta v0.5
Spoiler for Hiden:
#==============================================================================
#  hellMinor's "Just Anti-Lag"
#  Version : beta v0.6
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#==============================================================================
# Um ein Event immer zu updaten, nenn es einfach - update - und schon wird
# es permanent geupdatet
#==============================================================================
# Bestimmt wieviele Felder außerhalb des Bildes geupdatet werden
 ADJUST = 2         
#==============================================================================
class Game_Map
#==============================================================================
  def update_events
    obere_schranke = @display_y/256 - ADJUST
    untere_schranke = @display_y/256 + 13 + ADJUST
    linke_schranke = @display_x/256 - ADJUST
    rechte_schranke = @display_x/256 + 17 + ADJUST
    for event in @events.values
      event_x = event.x
      event_y = event.y
      if event.name == "update"
        event.update
        next
      end
      event.update if event_x > linke_schranke and event_x < rechte_schranke and event_y > obere_schranke and event_y < untere_schranke
    end
    for common_event in @common_events.values
      common_event.update
    end
  end 
end
#==============================================================================
class Spriteset_Map
#==============================================================================
  def update_characters
    screen_x = $game_map.display_x/256
    screen_y = $game_map.display_y/256
    for sprite in @character_sprites
      sprite_x = sprite.character.x
      sprite_y = sprite.character.y
      sprite.update if sprite_x > (screen_x - ADJUST) and sprite_x < (screen_x + 17 + ADJUST) and sprite_y > (screen_y - ADJUST) and sprite_y < (screen_y + 13 + ADJUST)
    end
  end
end
#==============================================================================
class Game_Event < Game_Character
  attr_reader   :name
  alias initialize_just_antilag initialize
  def initialize(map_id, event)
    initialize_just_antilag(map_id, event)
    @name = @event.name
  end
end
#==============================================================================

hellMinor's "Just Anti-Lag" beta v0.4
Spoiler for Hiden:
#==============================================================================
#  hellMinor's "Just Anti-Lag"
#  Version : beta v0.4
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#==============================================================================
# Um ein Event immer zu updaten, nenn es einfach - update - und schon wird
# es permanent geupdatet
#==============================================================================
# Bestimmt wieviele Felder außerhalb des Bildes geupdatet werden
 ADJUST = 2         
#==============================================================================
class Game_Map
#==============================================================================
  def update_events
    for event in @events.values
      event_x = event.x
      event_y = event.y
      if event.name == "update"
        event.update
        next
      end
      event.update if event_x > (@display_x/256 - ADJUST) and event_x < (@display_x/256 + 17 + ADJUST) and event_y > (@display_y/256 - ADJUST) and event_y < (@display_y/256 + 13 + ADJUST)
    end
    for common_event in @common_events.values
      common_event.update
    end
  end 
end
#==============================================================================
class Spriteset_Map
#============================================================================== 
  def update_characters
    screen_x = $game_map.display_x/256
    screen_y = $game_map.display_y/256
    for sprite in @character_sprites
      sprite_x = sprite.character.x
      sprite_y = sprite.character.y
      sprite.update if sprite_x > (screen_x - ADJUST) and sprite_x < (screen_x + 17 + ADJUST) and sprite_y > (screen_y - ADJUST) and sprite_y < (screen_y + 13 + ADJUST)
    end
  end
end

hellMinor's "Just Anti-Lag" beta v0.3
Spoiler for Hiden:
#==============================================================================
#  hellMinor's "Just Anti-Lag"
#  Version : beta v0.3
#  Created by : hellMinor
#  Do NOT redistribute without my permission
#==============================================================================
# Um ein Event immer zu updaten, erstelle auf der Eventseite einen
# kommentar an !! erster !! stelle im event und schreibe "update" hinein
# Dieses Event wird nun permanent geupdatet
#==============================================================================
class Game_Map
#==============================================================================
  def update_events
    player_x = $game_player.x
    player_y = $game_player.y
    for event in @events.values
      event_x = event.x
      event_y = event.y
      if event.list != nil && event.list[0].code == 108 && event.list[0].parameters[0] == "update"
        event.update
        next
      end
      event.update if event_x > (player_x - 11) and event_x < (player_x + 11) and event_y > (player_y - 9) and event_y < (player_y + 9)
    end
    for common_event in @common_events.values
      common_event.update
    end
  end 
end
#==============================================================================
class Spriteset_Map
#============================================================================== 
  def update_characters
    player_x = $game_player.x
    player_y = $game_player.y
    for sprite in @character_sprites
      char_x = sprite.character.x
      char_y = sprite.character.y
      if char_x > (player_x - 11) and char_x < (player_x + 11) and char_y > (player_y - 9) and char_y < (player_y + 9)
        sprite.update
      end
    end
  end
end
« Letzte Änderung: November 18, 2008, 20:17:24 von hellMinor »
Verborgen in der Dunkelheit
Ich kenne nur die Einsamkeit
Auf das kein Gott mich sieht, ich bin ein Eremit


Mega Man Battle Engine


Re: hellMinor's "Just Anti-Lag"

Offline xelawebdev

  • Eventmeister
  • ***
  • Beiträge: 306
  • Webdeveloper, Designer
    • [Nicht fertig - Testseite]
Re: hellMinor's "Just Anti-Lag"
« Antwort #1 am: Oktober 15, 2008, 12:11:02 »
coole sache hM, dankeschön, werd gleich mal testen, vllt kann ich dann doch damit mehr als 20 fps erzielen xD

Re: hellMinor's "Just Anti-Lag"

Dainreth

  • Gast
Re: hellMinor's "Just Anti-Lag"
« Antwort #2 am: Oktober 16, 2008, 14:19:31 »
Klasse, das erste Anti-Lag Skript, dass bei mir auch Wirkung zeigt. Ist zwar nicht viel, aber bei mehr Events ists im Vergleich doch sehr nützlich, vielen Dank!

Re: hellMinor's "Just Anti-Lag"

Offline Gilgamesch

  • IRC-Fraktion
  • Mr. MACK-Tile
  • ***
  • Beiträge: 245
  • Live Free or Die
    • Irgendein Blog
Re: hellMinor's "Just Anti-Lag"
« Antwort #3 am: Oktober 18, 2008, 13:35:43 »
Das Skript funktioniert bislang einwandfrei. Kein Lag mehr und im Gegensatz zu Anaryus Anti-Lag-Skript habe ich auch noch nirgends eine Fehlermeldung bekommen. Ich werde das Skript also wahrscheinlich verwenden, vielen Dank!


Gilgamesch
Mein Haus.
Mein Auto.
Mein Blog.

(Zugegeben, an zwei von dreien arbeite ich noch.)

Re: hellMinor's "Just Anti-Lag"

Offline Gaara

  • RTP-Mapper
  • *
  • Beiträge: 43
  • Trauerzug der Wüste
Re: hellMinor's "Just Anti-Lag"
« Antwort #4 am: Oktober 18, 2008, 14:57:23 »
Mahlzeit

Bei mir funktioniert es fast einwandfrei.
ich hab das kleine problem, das wenn ich irgendwelche gegenstände, menschen, tiere usw. als event hinsetze und en helden per bewegungsroute laufen lass, oder den bildschirm scrollen lasse, dass diese events sich alle samt mitbewegen.
Kann man das irgendwie blockieren bzw. verhindern?
Ich hab auch das "update kommentar" ausprobiert aber in dem fall hilft das auch nicht.
« Letzte Änderung: Oktober 18, 2008, 14:58:09 von Gaara »

Mein ist das Wort
und das Wort ist das Wissen.
Das Wissen ist Macht
und Macht ist entrissenes Recht...

Re: hellMinor's "Just Anti-Lag"

ERZENGEL

  • Gast
Re: hellMinor's "Just Anti-Lag"
« Antwort #5 am: Oktober 19, 2008, 12:55:13 »
Ist ja eigentlich das Grundsystem jedes Antilag-Skriptes, aber je kleiner desto weniger Inkompatibilität mit anderen Skripten.
Du könntest übrigens einfach den Namen des Events auslesen anstatt der Event command list.. wär schneller ^^

Gute Arbeit!

Re: hellMinor's "Just Anti-Lag"

Offline Gaara

  • RTP-Mapper
  • *
  • Beiträge: 43
  • Trauerzug der Wüste
Re: hellMinor's "Just Anti-Lag"
« Antwort #6 am: Oktober 19, 2008, 18:27:11 »
klingt nach ner vernünftigen lösung aaaaber wie kann ich das ding "auslesen" ? ^^
ich bin für jeden zeit- und arbeitssparenden vorschlag offen =D

Mein ist das Wort
und das Wort ist das Wissen.
Das Wissen ist Macht
und Macht ist entrissenes Recht...

Re: hellMinor's "Just Anti-Lag"

Offline Onkel Hell

  • Sol Invictus
  • Administrator
  • VX-Kenner
  • ****
  • Beiträge: 562
  • You can't shoot me, I'm AIDS !
Re: hellMinor's "Just Anti-Lag"
« Antwort #7 am: Oktober 19, 2008, 21:44:24 »
habs mal bissl verändert und ich les jetz auch den event namen statt dem kommentar ,für die allgemeine masse dürfte das besser sein
ich hatte das mit dem kommentar gemacht weil der eventname bei mir teilweise schon in benutzung war^^

@gaara probier mal die neue version, ich benutz jetz nen sinnvolleren bezugspunkt

edit : so wieder drin , hatte grad noch nen fehler gefunden
« Letzte Änderung: Oktober 19, 2008, 22:04:38 von hellMinor »
Verborgen in der Dunkelheit
Ich kenne nur die Einsamkeit
Auf das kein Gott mich sieht, ich bin ein Eremit


Mega Man Battle Engine


Re: hellMinor's "Just Anti-Lag"

Offline Onkel Hell

  • Sol Invictus
  • Administrator
  • VX-Kenner
  • ****
  • Beiträge: 562
  • You can't shoot me, I'm AIDS !
Re: hellMinor's "Just Anti-Lag"
« Antwort #8 am: Oktober 21, 2008, 00:49:29 »
zwar doppelpost aber ich habs nochma verändert, vllt funzts jetz besser , in der 0.4 hatte ich noch nen fehler drin^^
Verborgen in der Dunkelheit
Ich kenne nur die Einsamkeit
Auf das kein Gott mich sieht, ich bin ein Eremit


Mega Man Battle Engine


Re: hellMinor's "Just Anti-Lag"

Offline Gaara

  • RTP-Mapper
  • *
  • Beiträge: 43
  • Trauerzug der Wüste
Re: hellMinor's "Just Anti-Lag"
« Antwort #9 am: Oktober 21, 2008, 19:12:56 »
so meistro es funktioniert wirklich wunderscheen =D
jetzt klappt alles und es werden auch kene events mehr verschoben^^

Mein ist das Wort
und das Wort ist das Wissen.
Das Wissen ist Macht
und Macht ist entrissenes Recht...

Re: hellMinor's "Just Anti-Lag"

Offline Redeemer

  • Database-Verunstalter
  • **
  • Beiträge: 179
Re: hellMinor's "Just Anti-Lag"
« Antwort #10 am: Oktober 22, 2008, 08:12:20 »
Also bei mir funktionierts auch einwanfrei.

Und es bringt wirklich eine Steigerung der fps bei vielen events wo es vorher
15 - 23 fps hatte sind es mit dem patch 50 -60 fps.

Also super Patch^^
thx hell

Re: hellMinor's "Just Anti-Lag"

Offline CaK

  • Database-Verunstalter
  • **
  • Beiträge: 104
  • Promenadenchamp
Re: hellMinor's "Just Anti-Lag"
« Antwort #11 am: November 18, 2008, 19:05:23 »
Mich würde interessieren, auf welchem Gedanken dieses Script aufbaut. (bitte kurz und leicht verständlich, ohne RGSS Wörter ^^)
Wenn es nämlich auch Lags verhindern würde auf Maps mit sehr vielen parallel processes, ohne diese in ihrer Funktion und Abfrage zu beeinträchtigen, wäre es für mich sinnvoll.



Re: hellMinor's "Just Anti-Lag"

Offline Lanari

  • Panty Lover
  • Database-Verunstalter
  • **
  • Beiträge: 124
  • FAIL BLOG!
Re: hellMinor's "Just Anti-Lag"
« Antwort #12 am: November 18, 2008, 19:10:56 »
Probiers einfach aus! Eigentlich leicht geasgt auf maps wo viele events sind kann es leicht zu lags kommen hiermit werden sie Sehr gut Gemindert
15 fps zu xx fps usw :) und wenns nicht gut is schmeiß es raus btw mir gefällts 1a ^^


Re: hellMinor's "Just Anti-Lag"

Offline CaK

  • Database-Verunstalter
  • **
  • Beiträge: 104
  • Promenadenchamp
Re: hellMinor's "Just Anti-Lag"
« Antwort #13 am: November 18, 2008, 19:19:24 »
Naja, das ist ja nun keine Antwort auf meine Frage ;)

Soweit ich es selbst verstehe (und das ist mehr geraten, als verstanden), hilft das Script nur bie größeren Maps als 17x13:

  def update_events
    obere_schranke = @display_y/256 - ADJUST
    untere_schranke = @display_y/256 + 13 + ADJUST
    linke_schranke = @display_x/256 - ADJUST
    rechte_schranke = @display_x/256 + 17 + ADJUST

Dann würde es auf einer kleinen (17x13) Map mit vielen Events ja nichts bringen. Das Ding mit dem Ausprobieren ist auch weniger sinnvoll, da es bei mir, auf meinem neuen, schnellen PC eh nicht lagt, aber vielleicht auf älteren Modellen, die mein Spiel spielen wollen.

Deswegen bleibt meine Frage nach der genauen Wirkungsweise bestehen :)



Re: hellMinor's "Just Anti-Lag"

Offline Onkel Hell

  • Sol Invictus
  • Administrator
  • VX-Kenner
  • ****
  • Beiträge: 562
  • You can't shoot me, I'm AIDS !
Re: hellMinor's "Just Anti-Lag"
« Antwort #14 am: November 18, 2008, 20:06:40 »
takte deinen prozessor runter dann kannstes testen^^

der sinn besteht dadrin alle events außerhalb des aktuellen bildes + adjust wert nicht zu updaten
die abfrage ob man ein event updaten soll oder nich kostet bei vielen events weniger zeit als ein event zu updaten da viele events teilweise auch einfach nichts machen bzw nur reagiert wenn man neben dran steht
ich hab noch ne neue version davon hier die bringt auch was bei kleinen karten, aber ich kann die version nimmer so gut testen weil ich jetz ebenfalls neue hardware hab^^

ursprünglich wollte ich alle events in seperaten threads laufen lassen ,hat auch funktioniert und man hatte quasi konstant 60fps aber das ruckelte trotzdem^^
multi threading hatte nich den gewünschten effekt, das system is darauf auch nich so ausgelegt vom maker denk ich mal


EDIT : ich hab die v0.6 mal nach oben gepackt
diese version sollte auch auf kleineren karten einen effekt haben, je höher man den frameskip einstellt je mehr leistung werden ihr kriegen weil weniger frames pro sekunde gezeichnet werden
bei meinen tests war das maximum beim skippen ohne das es zu stark auffällt bei ca. 4
könnt ruhig weiterhin eure ergebnisse posten
« Letzte Änderung: November 18, 2008, 20:19:44 von hellMinor »
Verborgen in der Dunkelheit
Ich kenne nur die Einsamkeit
Auf das kein Gott mich sieht, ich bin ein Eremit


Mega Man Battle Engine


 


 Bild des Monats

rooftop party

Views: 3581
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal