设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 74|回复: 0

[转载发布] SkipUpdate - A targeted notetag plugin that significantly eases the processing l

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    5778

    主题

    864

    回帖

    3万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    25563
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    32235

    灌水之王

    发表于 3 天前 | 显示全部楼层 |阅读模式
    Introduction:

    This plugin was a collaborative effort between myself and SnakekillerX, who is my custom plugin programmer, and buddy.

    The core principle of this plugin is very simple: It suspends the Game_Event.prototype.update function on any event that you have given the notetag <SkipUpdate>. The reason this has been created is that some plugins, notably Visustella Events Movement Core MZ, add notetag features that are checked for in a way that is tied to that function's process.

    It does not matter what the content of the event is: so long as those features are tied to that function, they are constantly checking every single one the map for the full list of possible notetags. On maps with high event volume (hundreds), you can begin to have seriously noticeable framerate/overall performance issues.

    This is a well documented phenomenon, and the common advice up until now has been to chop your maps up, reduce eventing, or change your plugins. Not anymore! There was no way to natively, or with VS plugins, filter out events that don't need to be checked by Game_Event.prototype.update, so it had to be created.

    Link to the plugin (This will always be the most up-to-date one):



    RPG-Maker-MZ/X_SNK_SkipUpdate.js at main · SnakekillerX/RPG-Maker-MZ

    Plugins for RPG Maker MZ. Contribute to SnakekillerX/RPG-Maker-MZ development by creating an account on GitHub.

                                            github.com                               





    Proof of Concept:

    I am including an example of it functioning in a zip file.

    This is a new project, with two 140x100 maps - each having a block of 620 default (Blank image, no data, action button, below characters, etc) events at the top left. One map has all of these events with no notetag, and the other has all of these events with <SkipUpdate>.

    There is one extra event for transferring between the two maps. I have added Plugin Common Base, Visustella MZ Core Engine, VisuMZ 1 Events and Movement Core, and SkipUpdate. All have been enabled with no parameters changed. There are no other alterations from a fresh project outside of writing LAG and NO LAG with the RTP tiles. The results of this are a massive difference in FPS on one map vs the other. For my hardware, it's ~30fps on the lag map and ~144 (capped) on the no lag map.

    The ZIP file has screenshots and a video of this, and the project (sans the visustella plugins). You have to install them yourself, to test the project and see how much framerate chug is mitigated on your own hardware when Visustella Events and Movement Core is running. I've included a link to the Visustella Sample Project in the ZIP file as well, as line four of their terms of use forbids me from redistributing their plugins. Note also that the version of the plugin included here is out of date.



    Project1 Without VS

    MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single place so you can access them anywhere and share them everywhere.
                                            www.mediafire.com                               




    I will also include the screenshots, and two frames from the video, attached to this post itself. Snake also put the video on his Youtube page.


    https://www.youtube.com/embed/avuWqD9IBvk


    Use Cases:

    If you're like me and:

    -Rely on the functionality of a plugin that has this issue/provides event notetag features
    -Refuse to chop up your larger maps
    -Often use events like they're tiles, with static image character sets, and with no intention of moving them, and/or sometimes displacing them to achieve an effect similar to modified parallax mapping
    -Often use events when you've run out of tile layers and use events when you want to put an additional tile graphic on top
    -Often use decorative events with multiple pages, with conditions that are dependent on things (in universe) like the passage of time
    -Often use blank events to modify passability of a tile without creating a new tile
    -Have a high volume of action button, player touch, or event touch events that are never subject to a movement route

    You may be not only my soul brother, but could very well benefit in a massive way from utilizing this plugin, when it comes to your game's performance. You may even get relief for framerate issues without having a plugin that causes issues, if you have extreme event volume.

    The use case that motivated this plugin was a 140x100 map with 300 events (in my game) bringing Snake to ~30 FPS. This only occurred while Events and Movement core was active. Using this plugin, and labelling all compatible events with the <SkipUpdate> brought him back up to the FPS cap (144) without changing anything else.


    Important Information:

    An event with the <SkipUpdate> notetag has significantly reduced functionality compared to one without, but myself and other developers with a similar design philosophy make use of a great number of visually static events that do not appear to be disturbed in any way by suspending Game_Event.prototype.update for it. This plugin does not modify any event that lacks the notetag, so you can very specifically target ones that benefit from a lack of processing.

    Plugin order is unlikely to matter for this plugin, but please do let us know if there's an issue.

    Please CAREFULLY read the information below. What is written appears to be accurate to our testing, but is likely incomplete and might not be perfectly correct in all contexts.


    =Rules of thumb=


    -This notetag is suited for visually static (unanimated) events that do not need to move in any way, outside of automatic turning toward activation direction and then resetting, and/or use 'one-and-done at render' type notetags.
    -This notetag is not suited for events that move in any way, events that use Parallel or Autorun triggers, do anything autonomously, or have separate, dynamic notetag features.



    =Specifics of our testing=


    This plugin's notetag seems to be compatible with events that have these properties, or these event properties themselves:

    -Events with 'Below characters' Priority
    -Events with 'Same as characters' Priority
    -Events with 'Above characters' Priority
    (Collision and layer placement from this setting, on all 3 options, still seems to function without issue)

    -Events with Conditions to appear
    (This appears to not cause issues here, regardless of condition type)

    -Events with the "Direction Fix" option, on or off.
    (This appears to not cause issues here)

    -Events with the "Through" option, on or off.
    (This appears to not cause issues here)

    -'Action Button' Trigger Events
    (Functionality seems unchanged, and event image is still capable of turning and resetting at/post interaction)

    -'Player Touch' Trigger Events
    (Functionality seems unchanged, and event image is still capable of turning and resetting at/post interaction)

    -'Event Touch' Trigger Events
    (Basically becomes the same as player touch, as <SkipUpdate> events can no longer move)

    -Events that initiate a movement route on a DIFFERENT event that has no <SkipUpdate> tag.
    (This appears to not cause issues here)

    -Events with multiple pages, with conditions.
    (This appears to not cause issues here, even if the images, direction fix setting, orientation, and trigger mechanism are different between them.)

    -Events that transfer the player.
    (This appears to not cause issues here)



    This plugin's notetag will either partially or entirely break events that have these properties:

    -Events with the "Walking" option on.
    (Will prevent the event's movement entirely, so this does nothing. It won't break the event to turn this on, it just won't walk because it can't move.)

    -Events with the "Stepping" option on
    (Will prevent the stepping animation entirely, so this does nothing.)

    -Parallel Events
    (Will never, ever initiate)

    -Autorun Events
    (Will initiate only once, ever, even if you leave and come back to the map it will not fire again.)

    -Events that are the target of a movement route of any kind, autonomously or from any other event
    (Will brick the movement route entirely, doesn't matter what's in it.)

    -Events with any automatic pathing.
    (Will brick the movement entirely)




    You can use  <SkipUpdate> notetags on events that have SOME other notetags, without impairing their functionality. Others will no longer become functional if you place  <SkipUpdate> alongside them.

    Unimpaired Visustella Notetags (This list is certainly incomplete and might not be fully tested to all use cases):

    -Sprite Offset
    (This appears to work without issue, still displacing the event as instructed. That function is probably not tied to Game_Event.prototype.update)

    -Activation Radius/Square/Circle/Whatever
    (This appears to work without issue, still triggering event and player touch events from the instructed distance. That function is probably not tied to Game_Event.prototype.update)

    Confirmed Impaired Visustella Notetags (This list is certainly incomplete):

    -Ambience SFX:
    (Will prevent the SFX from being played entirely)

    -A whole host of others that we haven't tested.
    (You can assume that anything dynamic will be broken by being on the same event as  <SkipUpdate>)




    This plugin could have some otherwise unforeseen and undocumented issues, so please comment any that you come across so that they can be addressed.




    License:

    MIT License. Open Source.


    The MIT License

    Copyright <YEAR> <COPYRIGHT HOLDER> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software…

                                            opensource.org                               




    Attribution is nice, but not necessary. If your format prefers to credit one person, I myself prefer that you credit SnakekillerX and not me.


    本贴来自国际rpgmaker官方论坛作者:NinefoldSpirit处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/skipupdate-a-targeted-notetag-plugin-that-significantly-eases-the-processing-load-of-compatible-static-events.178429/

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-7-26 04:51 , Processed in 0.081753 second(s), 56 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表