Ultra Mode 7

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
848
Reaction score
349
First Language
English (USA)
Primarily Uses
RMMV
Try running your game with the plugin disabled as well. It would be a good idea in general to actually try to isolate which plugin could be causing the issue.
Which I did enough of already based on the most essential plugins that I have in my setup, many of them being essential to game features or serving as part of the presentation itself e.g. prize wheel, slots, yanfly battle, yanfly save, minimum damage and of course a few that provide bugfix addendum structs upon the base package. There are a few plugins that I had to switch off in the process of moving the project to run off 1.5.2 for this to work properly; however, those I had to switch off were but a few of the overall setup.
 
Last edited:

Oscar92player

Veteran
Veteran
Joined
Jul 26, 2012
Messages
497
Reaction score
219
First Language
Spanish
Primarily Uses
RMMV
Which I did enough of already based on the most essential plugins that I have in my setup, many of them being essential to game features or serving as part of the presentation itself e.g. prize wheel, slots, yanfly battle, yanfly save, minimum damage and of course a few that provide bugfix addendum structs upon the base package. There are a few plugins that I had to switch off in the process of moving the project to run off 1.5.2 for this to work properly; however, those I had to switch off were but a few of the overall setup.

I'll check this without some of the bugfix material but that's about all I can think of.

EDIT: Even after checking without the most probable plugins (and stripping out a number of scripted events relevant to game progression) it still seems to be a bit of a pain right now. Not that it's a big deal until I give word because paywall, but it'd be good to know if performance can be improved further. What's notable here is that everything else runs okay - apparently it's ultra mode 7 that's pushing it the most right now. I am clear for WebGL on my development machine because it obviously works there (and of course there's obvious fallback in cases that don't quite work but at least run at a minimal level for basic mode/canvas render). Even then it's annoying as **** when it's just the one plugin for which you just started to run trials that wants to up and give you off the burning halls of the nightmare from hell itself. The only other potential bottleneck I can think of is at the system level, or if there's anything related to performance adjustments in general. Also, it's primarily a matter of delay - didn't check what size you have the demo set for but in my case it's a flat 256 squared when out in the field. And seeing that I'm not 100% sure if map size has anything to do with this either, maybe some refinements in that department would be of use in that respect.
Out of curiosity... what version of RPG Maker MV are you using? Because if you are using the v.1.6.1 "Stable release", it is not that stable. With AMD Graphic Cards and Integrated CPUs, you can have problems with framerate. And even if the game runs smoothly for a while, if something like a plugin of this kind (that uses some resources from your computer) is enabled, it can give you some problems.
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
848
Reaction score
349
First Language
English (USA)
Primarily Uses
RMMV
For what it's worth, this is actually on 1.5.2 and I just recently updated the project files accordingly (I was previously using one of the original RTP configurations and don't remember which one). Also this is off a GTX 1070 so the only AMD I have to worry about is my Ryzen CPU.

Also, I just checked and 1.6.1 provides a hint of improvement upon the performance, however it could potentially come at the cost of feature inclusions (I'd have to debug run using the respective Yanfly extension to know for sure as the 1.6.1 base isn't as forgiving on this).
 
Last edited:

bblizzard

Veteran
Veteran
Joined
Nov 6, 2017
Messages
340
Reaction score
343
First Language
Croatian
Primarily Uses
RMMV
I don't think it's the GPU. I'm running a GTX 1060 on my laptop and have no issues. I tested it on an Intel HD 630 as well and there were no problems either. As far as processing, UM7 is actually light on the CPU. The worst it does is recalculating the world matrix and uploading it to the GPU which happens once per frame max and it's a consistently complex between frames ie. it should take about the same CPU time every frame. The only thing I can think of that could cause any issues is that the clipping planes don't properly cut off the vertices outside and that it renders them anyway, but this is such a basic feature, I doubt that the driver would have issues with that. I'm not saying it's impossible, but I highly doubt UM7 is the causing the performance issues.
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
848
Reaction score
349
First Language
English (USA)
Primarily Uses
RMMV
And based on all the comments I'd say now that I've got it to a minimal delay the only thing left I think is to check against map loop mode - it's gonna temporarily break my progression but it's worth analyzing in case there's anything that can be improved with that portion and I'm not in a testing position with my save file anyway.

EDIT: And it wasn't noticeable enough. Again, this is a 256 square map size and I'm not sure what that has on anything.
 

bblizzard

Veteran
Veteran
Joined
Nov 6, 2017
Messages
340
Reaction score
343
First Language
Croatian
Primarily Uses
RMMV
They way I implemented looping is to extend the map's borders by enough to cover all configurations of the current FOV, near and far clipping planes so that the vertices don't need to be recalculated during normal usage. The only the map coordinates are looped and that's it. I tested it with the profiler by going over the map border and I didn't notice any spikes either. So that shouldn't be an issue either.
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
848
Reaction score
349
First Language
English (USA)
Primarily Uses
RMMV
Well I at least got it to where it's only but a few moments worth of delay so I'm going to go based on what I have for now.
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
848
Reaction score
349
First Language
English (USA)
Primarily Uses
RMMV
And I checked twice against two different systems now and it appears to be a slight bit on performance as further testing has given notice that it works as expected on another system so I'm definitely going to run this again with some of the background apps turned off at the main development station.

Only thing I have left now before I consider adding UM7 to the roadmap (with advance notice per OP) is to cross check tilesets to see if there's anything I can visually improve on. I'll have a video clip or screenshot to show you what I mean in due course.
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
848
Reaction score
349
First Language
English (USA)
Primarily Uses
RMMV
And here's my final issue. Not sure what causes this (perhaps a code thing or calculation or whatever) but there's an unnecessary gap in between tilesets where there shouldn't be. Not sure if it's just me or if something else is up but I'd like to have this cross-examined before I consider giving word as an official part of my project roadmap.



EDIT: As a workaround you can copy/paste 2x2 tileset assets to a 3x4 large character sheet from which you can then select the intended structure. More info further down.
 
Last edited:

Chef

yeet
Veteran
Joined
Oct 13, 2017
Messages
286
Reaction score
131
First Language
Dutch
Primarily Uses
RMMV
Yeah that depends the angle of where you're standing against the perspective of each seperate event. For now it's the best to make 1 character out of that building (with the normal size intact both size would be clipable).

Or it's something you did with the charactersheet.

OR OR (and I'm gonna try this myself tomorrow) turn the map a little bit so it angles up just right. Don't actually know if it's possible though.

Edit: Please don't double post, but edit the previous one if no one replied yet (like I did here). Getting an email everytime gets very annoying.
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
848
Reaction score
349
First Language
English (USA)
Primarily Uses
RMMV
What I did was actually based on tilesets and not buildings per se, so I am placing the respective buildings (off RTP, of course) into separate sprite sheets to not rely on tilesets which should resolve things for now.

EDIT: For what it's worth, here's what I came up with:





As a side note, there may be a few small imperfections because work in progress. In particular, the castle that I just wrote into the plot during the testing process for this implementation is slightly off its intended position as I just noticed after putting the material to screen capture. Obviously I timed the screenshots to avoid spoilers, but this is when the crew leader steps out for the first time, not yet fully aware of what he's getting into.
 
Last edited:

AdamSakuru

[Null_Value]
Veteran
Joined
Mar 14, 2014
Messages
314
Reaction score
171
First Language
English
Primarily Uses
N/A
@bblizzard

So there's a visual bug I found that occurs if you're using a smooth camera plugin on a Mode7 Map. The bug only occurs if you're switching the camera's focus to something that's over a certain distance away from it's current focus. It causes the camera to move and stay out of bounds. If the pitch is set to a low enough value the bug doesn't occur.

I've made a fresh demo for you to see the bug in action. If you have time I'd appreciate it if you could look into it. I'm also good to compensate you for it as well! https://www.mediafire.com/file/gdw833y92baw2gb/Mode7_Smooth_Camera+Pitch_Bug.zip/file

I run into this bug sometimes on my 'world map' scene that's essentially a big train line. Through testing I've noted that this has something to do with pitch value. If you set it low enough, the visual bug won't occur. So something about the pitch is making the smooth camera plugin weird out when there's a large jump in distance for what to focus on inside of a Mode7 Map.

The instructions are included in the demo, but basically place the player starting position in the center of the indicated spots on maps #1 and #2. Run the game and interact with the ship and the airship to have the camera focus on something closer and further away. And try interacting with them in different orders on each map. I hope this is helpful in illustrating the visual bug. When the camera weirds out, it shoots off in one direction at a fast speed. You can see the parallax background scrolling horizontally really fast.
 
Last edited:

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
848
Reaction score
349
First Language
English (USA)
Primarily Uses
RMMV
@bblizzard

So there's a visual bug I found that occurs if you're using a smooth camera plugin on a Mode7 Map. The bug only occurs if you're switching the camera's focus from something higher up in the map to something right by the bottom edge. It causes the camera to move and stay out of bounds. If the pitch is set to a low enough value the bug doesn't occur.

I've made a fresh demo for you to see the bug in action. If you have time I'd appreciate it if you could look into it. I'm also good to compensate you for it as well! https://www.mediafire.com/file/gdw833y92baw2gb/Mode7_Smooth_Camera+Pitch_Bug.zip/file

I run into this bug sometimes on my 'world map' scene that's essentially a big train line. Through testing I've noted that this has something to do with pitch value. If you set it low enough, the visual bug won't occur. So something about the pitch is making the smooth camera plugin weird out when there's a large jump in distance for what to focus on inside of a Mode7 Map.

The instructions are included in the demo, but basically place the player starting position in the center of the indicated spots on maps #1 and #2. Run the game and interact with the ship and the airship to have the camera focus on something closer and further away. And try interacting with them in different orders on each map. I hope this is helpful in illustrating the visual bug. When the camera weirds out, it shoots off in one direction at a fast speed. You can see the parallax background scrolling horizontally really fast.
So there's a visual bug I found that occurs if you're using a smooth camera plugin on a Mode7 Map. The bug only occurs if you're switching the camera's focus from something higher up in the map to something right by the bottom edge. It causes the camera to move and stay out of bounds. If the pitch is set to a low enough value the bug doesn't occur.

I've made a fresh demo for you to see the bug in action. If you have time I'd appreciate it if you could look into it. I'm also good to compensate you for it as well! https://www.mediafire.com/file/gdw833y92baw2gb/Mode7_Smooth_Camera+Pitch_Bug.zip/file

I run into this bug sometimes on my 'world map' scene that's essentially a big train line. Through testing I've noted that this has something to do with pitch value. If you set it low enough, the visual bug won't occur. So something about the pitch is making the smooth camera plugin weird out when there's a large jump in distance for what to focus on inside of a Mode7 Map.

The instructions are included in the demo, but basically place the player starting position in the center of the indicated spots on maps #1 and #2. Run the game and interact with the ship and the airship to have the camera focus on something closer and further away. And try interacting with them in different orders on each map. I hope this is helpful in illustrating the visual bug. When the camera weirds out, it shoots off in one direction at a fast speed. You can see the parallax background scrolling horizontally really fast.[/QUOTE]

That actually kind of sounds like what I got into when using the tileset method. Would not be surprised if it was related or at least similar to it.

Not that I am using parallax content in my case but it sounds like there are other limitations to be aware of here.

EDIT: On a semi-related note, here's the initial version of the 3x4 large sprite sheet that I built for use in my own project. As it is based on MV RTP, all standard rules apply if you wish to use it for yourself.


EDIT 2: You need to right-click/save-as, name it within img/characters with a starting $ appended ($buildings.png, $structures.png etc.) and use fixed/no-step/no-walk in event properties for this to work properly. After that, just set your map transfer and other requirements as usual, select the desired building from the sprite sheet and you should be good.
 
Last edited:

bblizzard

Veteran
Veteran
Joined
Nov 6, 2017
Messages
340
Reaction score
343
First Language
Croatian
Primarily Uses
RMMV
@AdamSakuru @BreakerZero This happens with loopable maps, yes? The displayX and displayY coordinates are usually looped when using loopable maps which would explain the sudden fast movement of the camera. I'll look into it, but there's a possibility that the bug is in the smooth camera plugin. I'm not sure why the map boundaries would be displayed since the code I used to determine how far out rendering should occur uses a mathematically correct formula so that boundaries should never be visible. I tested it thoroughly, but maybe I made a mistake somewhere or maybe I made a mistake somewhere in handling that. I'll make sure to check that out, too.
 

AdamSakuru

[Null_Value]
Veteran
Joined
Mar 14, 2014
Messages
314
Reaction score
171
First Language
English
Primarily Uses
N/A
@AdamSakuru @BreakerZero This happens with loopable maps, yes? The displayX and displayY coordinates are usually looped when using loopable maps which would explain the sudden fast movement of the camera. I'll look into it, but there's a possibility that the bug is in the smooth camera plugin. I'm not sure why the map boundaries would be displayed since the code I used to determine how far out rendering should occur uses a mathematically correct formula so that boundaries should never be visible. I tested it thoroughly, but maybe I made a mistake somewhere or maybe I made a mistake somewhere in handling that. I'll make sure to check that out, too.
@bblizzard
Oh yeah, the bug is definitely in the Smooth Camera plugin. That's why I'd offered to compensate you for a fix. I've included the camera plugin in the demo as well.

It has something to do with how it's interacting with the Mode7's pitch value, because if you set it to a low enough pitch the visual bug doesn't occur when the camera changes focus to something far away. And no, this isn't on loopable maps. Though I think it would happen if the maps were loopable too.
 
Last edited:

bblizzard

Veteran
Veteran
Joined
Nov 6, 2017
Messages
340
Reaction score
343
First Language
Croatian
Primarily Uses
RMMV
@AdamSakuru Here's a fixed version of the script:

Code:
/*:
* @plugindesc v1.0 Creates a smooth scrolling camera for the player and events.
* <Soulpour777 CameraScrollEx>
* @author Soulpour777 (improved by Blizzard)
*
* @help
/-----------------------------------------
Camera Scroll EX
Author: Soulpour777

Plugin Commands:

follow event x
where x is the event number you want the camera to follow.

example, if the event you want the camera to chase is event no. 3...
do this on the plugin command:

follow event 3

If you want to revert the camera following you,
do this on a plugin command:

follow player

Credits: Raizen
I based this plugin on how he made the smooth scrolling camera back
in RPG Maker VX Ace.

Special Thanks: KockaAdmiralac
/-----------------------------------------
*/
(function(){
    var Imported = Imported || {};
    Imported.CameraScrollEx = true;
    var Soulpour777 = Soulpour777 || {};
    Soulpour777.CameraScrollEx = {};
    Soulpour777.CameraScrollEx.playerInitialize =  Game_Player.prototype.initialize;
    Soulpour777.CameraScrollEx.slideSpeed = 0.001; // can't be changed since this is the best scroll quickness. Default is 0.001 but 0.002 works as well.
    Soulpour777.CameraScrollEx.pluginCommand = Game_Interpreter.prototype.pluginCommand;
 
    Game_CharacterBase.prototype.cameraX = function()
    {
        var tw = $gameMap.tileWidth();
        return Math.round(this.scrolledX() * tw + tw / 2);
    };

    Game_CharacterBase.prototype.cameraY = function()
    {
        return Math.round((this.scrolledY() + 1) * $gameMap.tileHeight());
    };

    Game_Player.prototype.initialize = function()
    {
        Soulpour777.CameraScrollEx.playerInitialize.call(this);
        this._cameraScrollEx_slideFocus = 0;
        this.screenFocusX = null;
        this.screenFocusY = null;
    };

    Game_Player.prototype.updateScroll = function(lastScrolledX, lastScrolledY)
    {
        if($gameMap.isScrolling()) return;
        if (this._cameraScrollEx_slideFocus === 0)
        {
            this.screenFocusX = this.cameraX();
            this.screenFocusY = this.cameraY();
        }
        else
        {
            this.screenFocusX = $gameMap._events[this._cameraScrollEx_slideFocus].cameraX();
            this.screenFocusY = $gameMap._events[this._cameraScrollEx_slideFocus].cameraY();
        }
        var scroll_xs = Math.abs((this.screenFocusX - Graphics.width / 2));
        var scroll_ys = Math.abs((this.screenFocusY - 16 - Graphics.height / 2));
        if (this.screenFocusY - 16 > Graphics.height / 2)   $gameMap.scrollDown(Soulpour777.CameraScrollEx.slideSpeed * scroll_ys);
        if (this.screenFocusX < Graphics.width / 2)         $gameMap.scrollLeft(Soulpour777.CameraScrollEx.slideSpeed * scroll_xs);
        if (this.screenFocusX > Graphics.width / 2)         $gameMap.scrollRight(Soulpour777.CameraScrollEx.slideSpeed * scroll_xs);
        if (this.screenFocusY - 16 < Graphics.height / 2)   $gameMap.scrollUp(Soulpour777.CameraScrollEx.slideSpeed * scroll_ys);
    };
 
    Game_Player.prototype.setCameraExFocus = function(value) { this._cameraScrollEx_slideFocus = value; }

    Game_Map.prototype.adjustSliderX = function() { return this._displayX != 0 && this._displayX != (this.width - this.screenTileX) && !this.isScrolling(); };
    Game_Map.prototype.adjustSliderY = function() { return this._displayY != 0 && this._displayY != (this.height - this.screenTileY) && !this.isScrolling(); };

    Spriteset_Map.prototype.updateTilemap = function()
    {
        this._tilemap.origin.x = $gameMap.displayX() * $gameMap.tileWidth();
        this._tilemap.origin.y = $gameMap.displayY() * $gameMap.tileHeight();
        if ($gameMap.adjustSliderX()) this._tilemap.origin.x += 1;
        if ($gameMap.adjustSliderY()) this._tilemap.origin.y += 1;
    };
 
    Game_Interpreter.prototype.pluginCommand = function(command, args) {
        Soulpour777.CameraScrollEx.pluginCommand.apply(this);
        if (command === 'follow') {
            switch(args[0]){
                case 'event':
                    $gamePlayer.setCameraExFocus(args[1]);
                    break;
                case 'player':
                    $gamePlayer.setCameraExFocus(0);
                    break;
            }
        }
    };

    Game_Interpreter.prototype.setCameraExFocus = function(actionNumber) { $gamePlayer.setCameraExFocus(actionNumber); }

})();
This new code also removes the shaking. The problem was that the script attempted to use screen coordinate for calculation which is actually a bad practice and violates the MVC (Model View Controller) design pattern. The "view" should always rely on "model" to calculate and display, never on other "view" data.

I also suggest you upgrade UM7 to 1.3.2 since I cleaned up some code. Especially since I noticed that you were still using v1.2.4. xD

EDIT: You might want to ask the creator to update his script. xD
 
Last edited:

AdamSakuru

[Null_Value]
Veteran
Joined
Mar 14, 2014
Messages
314
Reaction score
171
First Language
English
Primarily Uses
N/A
@AdamSakuru Here's a fixed version of the script:

Code:
/*:
* @plugindesc v1.0 Creates a smooth scrolling camera for the player and events.
* <Soulpour777 CameraScrollEx>
* @author Soulpour777 (improved by Blizzard)
*
* @help
/-----------------------------------------
Camera Scroll EX
Author: Soulpour777

Plugin Commands:

follow event x
where x is the event number you want the camera to follow.

example, if the event you want the camera to chase is event no. 3...
do this on the plugin command:

follow event 3

If you want to revert the camera following you,
do this on a plugin command:

follow player

Credits: Raizen
I based this plugin on how he made the smooth scrolling camera back
in RPG Maker VX Ace.

Special Thanks: KockaAdmiralac
/-----------------------------------------
*/
(function(){
    var Imported = Imported || {};
    Imported.CameraScrollEx = true;
    var Soulpour777 = Soulpour777 || {};
    Soulpour777.CameraScrollEx = {};
    Soulpour777.CameraScrollEx.playerInitialize =  Game_Player.prototype.initialize;
    Soulpour777.CameraScrollEx.slideSpeed = 0.001; // can't be changed since this is the best scroll quickness. Default is 0.001 but 0.002 works as well.
    Soulpour777.CameraScrollEx.pluginCommand = Game_Interpreter.prototype.pluginCommand;
 
    Game_CharacterBase.prototype.cameraX = function()
    {
        var tw = $gameMap.tileWidth();
        return Math.round(this.scrolledX() * tw + tw / 2);
    };

    Game_CharacterBase.prototype.cameraY = function()
    {
        return Math.round((this.scrolledY() + 1) * $gameMap.tileHeight());
    };

    Game_Player.prototype.initialize = function()
    {
        Soulpour777.CameraScrollEx.playerInitialize.call(this);
        this._cameraScrollEx_slideFocus = 0;
        this.screenFocusX = null;
        this.screenFocusY = null;
    };

    Game_Player.prototype.updateScroll = function(lastScrolledX, lastScrolledY)
    {
        if($gameMap.isScrolling()) return;
        if (this._cameraScrollEx_slideFocus === 0)
        {
            this.screenFocusX = this.cameraX();
            this.screenFocusY = this.cameraY();
        }
        else
        {
            this.screenFocusX = $gameMap._events[this._cameraScrollEx_slideFocus].cameraX();
            this.screenFocusY = $gameMap._events[this._cameraScrollEx_slideFocus].cameraY();
        }
        var scroll_xs = Math.abs((this.screenFocusX - Graphics.width / 2));
        var scroll_ys = Math.abs((this.screenFocusY - 16 - Graphics.height / 2));
        if (this.screenFocusY - 16 > Graphics.height / 2)   $gameMap.scrollDown(Soulpour777.CameraScrollEx.slideSpeed * scroll_ys);
        if (this.screenFocusX < Graphics.width / 2)         $gameMap.scrollLeft(Soulpour777.CameraScrollEx.slideSpeed * scroll_xs);
        if (this.screenFocusX > Graphics.width / 2)         $gameMap.scrollRight(Soulpour777.CameraScrollEx.slideSpeed * scroll_xs);
        if (this.screenFocusY - 16 < Graphics.height / 2)   $gameMap.scrollUp(Soulpour777.CameraScrollEx.slideSpeed * scroll_ys);
    };
 
    Game_Player.prototype.setCameraExFocus = function(value) { this._cameraScrollEx_slideFocus = value; }

    Game_Map.prototype.adjustSliderX = function() { return this._displayX != 0 && this._displayX != (this.width - this.screenTileX) && !this.isScrolling(); };
    Game_Map.prototype.adjustSliderY = function() { return this._displayY != 0 && this._displayY != (this.height - this.screenTileY) && !this.isScrolling(); };

    Spriteset_Map.prototype.updateTilemap = function()
    {
        this._tilemap.origin.x = $gameMap.displayX() * $gameMap.tileWidth();
        this._tilemap.origin.y = $gameMap.displayY() * $gameMap.tileHeight();
        if ($gameMap.adjustSliderX()) this._tilemap.origin.x += 1;
        if ($gameMap.adjustSliderY()) this._tilemap.origin.y += 1;
    };
 
    Game_Interpreter.prototype.pluginCommand = function(command, args) {
        Soulpour777.CameraScrollEx.pluginCommand.apply(this);
        if (command === 'follow') {
            switch(args[0]){
                case 'event':
                    $gamePlayer.setCameraExFocus(args[1]);
                    break;
                case 'player':
                    $gamePlayer.setCameraExFocus(0);
                    break;
            }
        }
    };

    Game_Interpreter.prototype.setCameraExFocus = function(actionNumber) { $gamePlayer.setCameraExFocus(actionNumber); }

})();
This new code also removes the shaking. The problem was that the script attempted to use screen coordinate for calculation which is actually a bad practice and violates the MVC (Model View Controller) design pattern. The "view" should always rely on "model" to calculate and display, never on other "view" data.

I also suggest you upgrade UM7 to 1.3.2 since I cleaned up some code. Especially since I noticed that you were still using v1.2.4. xD

EDIT: You might want to ask the creator to update his script. xD
@bblizzard
Do you have a donation link or something? I'd like to return the favour. I really do appreciate the help!

This wasn't the case when I initially started using this smooth camera scrolling plugin, but apparently the creator of said plugin got into trouble for plagiarizing or something and he's no longer active. I guess I could replace the smooth camera plugin but I've got enough done that it'd be time consuming to do.

Edit:
Also I had a suggestion to allow users a little more customization with Ultra Mode7.
A little while ago I'd asked about how to change the fading colour. You mentioned possibly adding in a plugin parameter to allow the user to set the colour by RGB.

If you're still planning on doing that, you should allow the fading colour to be changed throughout the game. By this I mean, if I have one Mode7 scene or map where the fade colour is black because I have a black parallax background, on a different Mode7 scene with a white parallax background, white would be better suited.

Perhaps by a plugin command or a script call, the fading colour can be changed in-between Mode7 maps? (Assuming having animated/dynamic changing is complicated, the change could be made while not on a Mode7 map.)
 
Last edited:

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
848
Reaction score
349
First Language
English (USA)
Primarily Uses
RMMV
@bblizzard, I was indeed having the issue with tilesets, even on looped maps (as I have mine set to switch perspective while in the overworld zone). I did the buildings sprite sheet using RTP assets as embedded prior to work around this issue. I also edited the post to mention this, but if you didn't catch it from that you can right-click/save-as to your img/characters (preferably $buildings.png but you can do whatever provided you append the $ as the very first symbolic e.g. $places.png, $structures.png etc.) if direct tileset references are giving you hell like I got. After that, select the building type from the sprite sheet, set to fixed position, turn off stepping/walking (to prevent asset rotation) and set your map transports as usual.

Additionally, I have officially finalized this aspect of my plan and will copy accordingly when I get to a point where I'm in a position to go RTM, although this will affect my system requirements on macOS - I can platform export these days, but I'll have to defer to later hardware and releases for budgetary reasons compared to my actual build device. Everything is tested functional, however, which is the important thing for me in that respect meaning that so long as it runs I don't give two ***** about the build station in terms of WebGL performance compared to what you have on your end.
 
Last edited:

bblizzard

Veteran
Veteran
Joined
Nov 6, 2017
Messages
340
Reaction score
343
First Language
Croatian
Primarily Uses
RMMV
@AdamSakuru Yes, I still have it on my TO-DO list. I was planning to make it so you can set a default color setup, you can setup an override on every map and you can change it dynamically on maps as you please. This would help people that change the map over time, e.g. a day-and-night system that needs to adapt the color.

I don't really have a donation link, but if you want, you can send me money to my PayPal boris.blizzard@gmail.com . xD

@BreakerZero If it's any consolation, driver updates often fix these issues. I played FFXV about half a year ago on my GTX 1060 laptop and it also had some weird issues which went away after I updated the driver on some point. My suggestion is (from professional experience) that you test the final build on the worst PC hardware configuration you can possibly find, preferably one that runs an integrated GPU and a weak CPU in general. Well, the actual best practice would be to test it on as many configurations as possible, but testing it just on a potato PC can be enough.

Oh BTW, I just remembered something that you should definitely check out. Back in the RMXP days some people would experience ridiculous performance issues for no apparent reason. Input would be dropped, lag would occur inconsistently, etc. Turns out their anti-virus was going haywire for some reason. Might be worth a try to disable your AV just to see if you have any positive results.

Other than that I suggest you just run the integrated profiler. It really helped me pinpoint the performance issues in UM7 which is actually how I found the memory leak bug in the default scripts.
 
Last edited:

Users Who Are Viewing This Thread (Users: 0, Guests: 2)

Latest Threads

Latest Posts

Latest Profile Posts


It's my cute little ghost~
Minecraft Dungeons is a great example of a game that's much simpler than other games in its genre but almost as equally immersive and fun to play. Lotta RPGmaker devs could learn from that lesson.
Well, it's been a while since the last time I came here... Is there a JS scripting FAQ? I'd like to know what it's capable of achieving, and how :rswt
I love the Time Fantasy tiles, but haven't played anything made with it yet. Can anyone recommend me something?
Vote for what I show more indepth on Twitter tomorrow from the MZ default resources

Forum statistics

Threads
99,373
Messages
964,564
Members
130,981
Latest member
jimmydark
Top