What's up, RMers?
Anyone with RMXP wanna give this anti-lag a try?

Part1 - The mostly Custom Code
Part2 - Mainly Game_Map's update edited
Part 3 - Mainly Spriteset_Map's update edited

Just tinkering with it, but I personally get at least a FPS of 38 out of 40 with the 900+ events in the anti-lag demo I cobbled together for the Zeriab posts. Faster than Near Fantastica's or Amaranth's too it seems.

It doesn't have all the bells and whistles (ie defining certain events that are always/never updated, enable/disable antilag).... But its a start, and its pretty much not altering the RMXP game variables.

DO NOTE: It does rewrite the update methods for "Game_Map" and "Spriteset_Map". But I sure as heck identified where the changes are made. And I kept with RMXP SDK names for the methods that cycle through and update the events/characters.



Rather than repeatedly re-acquire the minimum and maximum x/y coordinates where your player character is standing (typical with 'in_range?' like methods), it only grabs the coordinates IF you moved. So instead of it performing a dozen calculations just for the boundaries before even testing if the event(s) are in/outside the area, it runs a test to see if the player's X, Y and/or Map had changed... much less processing if you're not moving at all.

I kept values marginally unique with prefixes of @antilag of al (short for anti-lag) in variable names.



EDIT: Oh, gawd. I added two lines so I could have an RMXP switch to turn on/off anti-lag; one simple line in the config system, and one line for the simple 'if its on' bypass.

Turning the Anti-Lag off in that ridiculous 900+ map dropped the 38Frame rate down to 23!!! Yeah, I know without a DOUBT the anti-lag is working.

EDIT 2: Oof. Well, I added a sort of name tag for events so they can always be active on the map even outside your view when all others are limited by the anti-lag system. It seems to start dropping the FPS when you hit 200 events. Quite confusing to me. But... 200 events being fully active no matter when when everyone else is limited by the anti-lag is still a lot.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)

[Image: QrnbKlx.jpg]
[Image: sGz1ErF.png]    [Image: liM4ikn.png]    [Image: fdzKgZA.png]    [Image: sj0H81z.png]
[Image: QL7oRau.png]    [Image: uSqjY09.png]    [Image: GAA3qE9.png]    [Image: 2Hmnx1G.png]    [Image: BwtNdKw.png%5B]
  Above are clickable links
Reply
Okay, I have a consistent 38/39 frame speed with the anti-lag I'm working on. 

It only gets borked when you use commands to flag over 100+ events to either "IGNORE" the antilag system and be active outside of view or "INACTIVE" which means that they don't update and are essentially glorified tiles.    I mean, you have to actively flag these... and I am saying you need to have over 100 flagged events before you may notice a frame rate reduction.  Though... hitting 500 events being flagged and there will be more noticeable drop in the FPS.  Comically, its worth turning the anti-lag off by that point.

By flagging, you can add a special character to an event's name.

EV001
EV002[Bork]
EV003[Bork]
EV004

Yep, you can add a custom phrase or special character IN the name. It doesn't need to replace the whole name as some others.

And unlike Near Fantastica's, I now have it recognize when an event has been given a "Move Route" by way of an Event Command.  If it is given an event command, it will move about regardless of being within the visible area or not. Do know I mean the [Set Move Route] event command within the "List of Event Commands" and not a cursory [Fixed/Custom/Random/Follow] route setting.

I saw another script do something similar, but it did not consider (1) that the event must update at least 'once' for the move route to take effect, and (2) to deactivate the feature when the route is done (repeat-when-done notwithstanding).

It might not be as Frame Rate saving as a couple I know, but it doesn't change, alter or (gasp) bypass/erase either the Game_Map @events nor Spriteset_Map @character_sprite variables.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)

[Image: QrnbKlx.jpg]
[Image: sGz1ErF.png]    [Image: liM4ikn.png]    [Image: fdzKgZA.png]    [Image: sj0H81z.png]
[Image: QL7oRau.png]    [Image: uSqjY09.png]    [Image: GAA3qE9.png]    [Image: 2Hmnx1G.png]    [Image: BwtNdKw.png%5B]
  Above are clickable links
Reply
Performed some minor updates to my working Anti-Lag, though I had encountered the ever loving "Step-Forward / Step-Backwards" scenario.

Trying to perform some cleaning and streamlining, my antilag went from a 38 FPS down to a 35fps rate.  While it visibly didn't affect the motion or reaction within the game map, it was still greatly unacceptable. But the thing is, the cause was rather strange.

My initial work that held an average 37-38 frame rate with 998 tiles used the following code to ensure that  Auto-Run and Parallel Process events were exempt:

    return true if obj.trigger == 3            # Permit for autorun
    return true if obj.trigger == 4            # Permit for parallel


However, I attempted the following in its place:

    return true if [3,4].include?(obj.trigger) # Permit for triggers

Who would think that one command using the include? method in the Array class would cause more lag? But it does as it comically takes more processing time than two simple if...end blocks.

It does.

Be that as it may, and some more cleaning up, I added a simple little test command.  

While you might not think it may happen, I would not put it past anyone to accidentally flag an event "ALWAYS" update even when not in the player's view and "NEVER" update which would effectively turn an event into a glorified tile.  That would be an issue indeed.

So I added a single method that will, upon entering any field map, check to see if any events contain both flags and generate a pop-up display indicating the IDs of the so offending events.



My current config setup for the script.   Blushing + Cheery

module AntiLag

  # VIEWPORT TILES
  # ==============
  # Understanding that an additional Resolution Script may be used to change
  # the game window's size, it's here where you set the size of the player's
  # viewport in tiles both width and height.
  #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  TILES_HORIZONTAL = 20
  TILES_VERTICAL   = 15

  # VIEWPORT BUFFER
  # ==============+
  # Because the player is moving across the map,  it should be accepted that
  # events should be  active and functioning  before they are visible in the
  # player's viewport.  It is here that you set how far outside the viewport
  # in tiles where event activities are permitted.
  #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  BUFFER_SIZE = 2

  # DISABLE SWITCH ID
  # ==============+==
  # This determines the RPGMaker XP Switch  that lets you enable/disable the
  # anti-lag system with a simple [Control Switches] event command.
  #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  DISABLE_ID = 4

  # EVENTS ALWAYS ACTIVE
  # ==============+=====
  # This establishes a custom tag  that can be placed within an event's name
  # allowing it to update even if off-screen. OR set to nil if there's none.
  #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  EVENTS_ALWAYS = nil #"[Alw]"

  # EVENTS NEVER ACTIVE
  # ==============+====
  # This establishes a custom tag  that can be placed within an event's name
  # preventing from ever updating.. OR set to nil if there's none.
  #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  EVENTS_NEVER = nil #"[Nev]"

  # EVENTS CONFLICT TEST
  # ==============+=====
  # Essentially, this will bring up a pop-up window upon entering a map when
  # any events contain BOTH  the "Events Always' and 'Events Never' which is
  # an obvious accidental error. It will report both the map ID and name for
  # reference and a list of all event IDs that have this issue.
  #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  EVENT_TEST = true

end

Have you seen anything more self-explanatory and understandable? 

Don't answer that.  Laughing + Tongue sticking out



And I'm contemplating two things for development

  1. Event command calls to add or remove the "EVENTS_ALWAYS" / "EVENTS_NEVER" flag while running, though it would likely reset each time you enter the map.
  2. The ability to read flag-applying comments from the Event's "List of Event Commands" page, which would allow different flag conditions per page. Though an additional script call would be needed to ensure any such event with such would be able to update.

Yep, I try to consider eventualities.  Winking
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)

[Image: QrnbKlx.jpg]
[Image: sGz1ErF.png]    [Image: liM4ikn.png]    [Image: fdzKgZA.png]    [Image: sj0H81z.png]
[Image: QL7oRau.png]    [Image: uSqjY09.png]    [Image: GAA3qE9.png]    [Image: 2Hmnx1G.png]    [Image: BwtNdKw.png%5B]
  Above are clickable links
Reply
Finally just cracked down on getting some work done, since I'm still waiting for the QA feedback from DerVVulfman I decided it'd be best if i focused on Disk 2 and onwards. Did some small rewrites in early Disk 2, but more importantly, I started recoding the bosses. Nola was done last night. I still gotta make the Fantasia Battle Introduction for her, but the fight itself is fully recoded. Next up will be Kitsune tikes Renae and Cathy.


Remi-Chan
So, you wanna see the Nola fight after being fully recoded? Of course, of course~!

Against the Witch Hunter
The major advantages to the new tech on this fight is the players ability to shoot Nola without having to line up their shot by way of personal positioning, making the fight flow a lot better and feel less awkward. Instead of focusing on standing in the right place and facing the right way, you can instead focus on avoiding those nasty red shurikens she throws out and handling the cross-cut mechanic.


Xiie / Rune
Robin of the Fowlhunters is done, so Xiie is now working on the wing flap animations. She also got us Fatty McLarge!
Robin and Fatty
[Image: AAFJwNN.png][Image: OUombjp.png]
There will be some screenshots over in the fated place that show these sprites in-game.


Pjcr
Heard back from Pjcr, but he's yet to submit any files and has yet again been silent for a long time. My hopium is that he's just disconnected from social media to focus on work, since he now does have to do the work over. His plan was to finish the High Elven Queen and then speed run the Shadow Pixies.

But for now, that's all folks!

Reply
Okay so I kinda popped off.


Remi-Chan
Zen Aneia's recoding is done! Both with main story and optional events. This includes the following:
Nola Worthington boss fight
Cathy and Renae boss fight
Xali boss "fight"
Cathy, Renae and Lily boss fight
Zephyrra boss fight
Zephyrra obstacle course
Remira boss fight
Nanianne boss fight
Akra Olna boss fight

And that's just what I got done on Zen Aneia!

I also got the two main story boss fights on Galaxia finished with their recoding, and implemented a new key_struggle interface now including a progress bar!
[Image: cpUcUI1.png]
You'll also see Wi's summon animation for her projectile storm is upgraded.

I also entirely reskinned the versus battle screen, as what it was before looked like placeholder stuff. it now fits in line with the thematic of all the other UI elements.
[Image: bkBp4Lh.png]
It also now gives you a chance to stretch and stuff, allowing you to press confirm when you're good and ready. The sound design and all has been updated to fit the new appearance and animation.
New Versus Screen

Snazzy, right?

So, you wanna see some neat videos of all the stuff I got done? Yes yes, I'm sure~

Stella Diurna Dei
Translates roughly to 'Daystar of God'. This is indeed the first time you can fight the Immoral Messenger, as an optional boss in Day 7 of the Vahnus events during Disk 0.

Xali's Recoded Introduction
Yes, this did get some changes to make Xali hopefully feel more intimidating and also be lore accurate, as her having infinite health didn't make much sense knowing what we do now. Now she just toys with you for 30 seconds before getting bored.


Xiie / Rune
Another human and the first of the Cloud Nymphs has been done while Xiie goes through it trying to animate the fowlhunter's wings!
Fire-elemented Cloud Nymph and Kimono-wearing Human Girl
[Image: ltViEtr.png][Image: s3tgUo5.png]
There will be some screenshots over in the fated place that show these sprites in-game.


Pjcr
Radio silence since my last report.

With that, i think I've covered most of what I've gotten done!

Reply
Happy 3/14. I have MUCH to report.


Remi-Chan
Outside of the Remaster of the Tiramisa boss fight and the Inevitable City Clash Optional Event on Postmartia, the Re-Coding is done.

Behold, all them strikethroughs!
[Image: H2m5O9k.png]
But let's not distract from the main event!

Fantasia Demo 3: Steam Trailer

That's correct, my plan is to release this game in its Demo 3 state on steam under early access, and work from there. The Demo 3 that will launch on Steam will hopefully be ready by the middle of this year, and I foresee it as very unlikely it won't be ready before years end.

That's not the only video showcasing what I've done between last post and now. I will share with you some real goodies!

Crimson Demonium // Re-Coded
It's a bit worrisome that this girl has such a strong link to pandemonium. Even hinting that she may know about Rykki (Schrodinger's Catgirl, who also flashes on screen several times for brief moments during the mini-cinematic that plays.) though the fact she says to watch out for cats implies she knows not her name or has had very hospitable dealings with her.

This fight is actually quite hard! While Remira's attacks are all able to be avoided with use of skedaddle and defend, there are just so many on screen that this becomes hard to do. She also is one of the bosses who comes with a vulnerable debuff on her regular attacks. Combine that with all of her attacks being fatal to begin with and you have a recipe for 'LOTS OF UNCONSCIOUS KIDS!'

The Court Magician // Re-Coded
Oh god so much blue and purple! Blue is don't move, purple is move. The entire fight is built more or less on that aesthetic beyond the fun mechanics unique to this two-tone lovely. Being turned into a sheep is probably the highlight, but the crystalline ward is also a cool mechanic.

Recode does make this fight a bit easier, as you can more easily hit Nanianne's warding crystal and freedom of movement is a lot higher due to not having to line up shots on the x or y axis and have direction facing the right way!

Nine-Tails Terminus // Re-Coded
This is one hell of a fight. Akra Olna's movement AI is unusually good at being evasive. Getting hits on her is tough, though admittedly easier now due to mouseaim as well as the direction of facing no longer mattering. You don't need to line shots up anymore.

It's easily one of the prettiest fights in the game, using every color except green and dark blue, the latter of which is unique to Svoli Apotropaism so far.

The Esoteric Maze of a Trillion Years is what can end an unaware or reckless player. It's best to weave between the purple SAFE zones and keep moving while on purple fill squares. You can make short cuts if need be like I did.

It's also the first appearance of the dreaded black projectiles, which knock a party member out and also make them no longer able to rejoin the fight. This is not an easy fight to do quickly. Between Akra Olna's evasiveness, her six bars of HP and the need to dodge those black projectiles which removes focus from Akra Olna, she'll definitely be one of those endurance fights.

Daystar's Wrath // Re-Coded
Daystar is one of Wi's more uncommon titles. it basically means "The Sun". Which is pretty apt when you consider all the paraphernalia and iconography that ties Wi Hellrider to such a celestial body.

The title was likely given to one who was able to observe it in her crushing radiance and passed that title on to her. For most mortals and even many immortals, an embodiment is hard to even comprehend... A burst of light or a slither of shadow may be all they see. Or some unexplained phenomenon.

The Angels of Hope can see them clearly for they are host to ENNUI who once served in their whole as a caretaker of the Embodiment's duties to the cosmos as it was before the fall of Eden.

A single dimension unhampered by the complications of the cosmos of today which harbors countless dimensions and continues to grow ever faster. This old world was called Eden. It is where the ENNUI, DENUI, The Embodiments and even some like Kyoshi began their existence.

That old world is now ironically termed the "Afterworld", and it is where that which is destroyed via the 'Hakai' command is sent. Where one may be lost to later be found. It is this realm that Yasondre was sent to by Yi's hand and later rescued from by Kyoshi's Gateway.


Xiie / Rune
Another of the Cloud Nymphs arrives, the ice-elemented one in particular!
Ice-elemented Cloud Nymph
[Image: JgqP0mZ.png]
Frosty and a cutie pie~!

But that is not all, for Xiie has gotten some massive progress done on the wing flap animations for the Fowlhunters.
Robin Wing-flappy Previews
[Image: Qmq2VSO.gif][Image: myuOMrn.gif]
I'm so utterly impressed with how well she managed these. It is four frames, but singlehandedly makes all of the XP RTP sprites look stiff and shitty.


Pjcr
Still no response. I'm a bit worried.

With that, I think I've covered all I can without doing more recordings and junk!

Reply




Users browsing this thread: 47 Guest(s)