Ultra Mode 7

huanggaole

Warper
Member
Joined
Feb 29, 2020
Messages
4
Reaction score
0
First Language
Chinese
Primarily Uses
RMMV
Hi, I really like your job.
I want to make a game with orthogonal maps with your Ultra Mode 7.
However, it seems that the direction of this script is wrong. Is this a bug?
 

huanggaole

Warper
Member
Joined
Feb 29, 2020
Messages
4
Reaction score
0
First Language
Chinese
Primarily Uses
RMMV
Hi, I really like your job.
I want to make a game with orthogonal maps with your Ultra Mode 7.
However, it seems that the direction of this script is wrong. Is this a bug?
Hi, I think I have fixed the rendering problem by setting the @param CHARACTERS_ADJUST_SPRITE_DIRECTION false and the @param PLAYER_ADJUST_MOVE_DIRECTION false.
However, the problem of tapping makes roles walk the wrong way is still unsolved.
 

bblizzard

Veteran
Veteran
Joined
Nov 6, 2017
Messages
307
Reaction score
321
First Language
Croatian
Primarily Uses
RMMV
Yes, I was going to mention that you need to change these two parameters.#

Hm, you are right. When using orthogonal projection, the touch coordinates are messed up. I'll fix it and upload a new version.

EDIT: @huanggaole There you go. I fixed it in v1.5.4.
 
Last edited:

huanggaole

Warper
Member
Joined
Feb 29, 2020
Messages
4
Reaction score
0
First Language
Chinese
Primarily Uses
RMMV
Yes, I was going to mention that you need to change these two parameters.#

Hm, you are right. When using orthogonal projection, the touch coordinates are messed up. I'll fix it and upload a new version.

EDIT: @huanggaole There you go. I fixed it in v1.5.4.
Thank you for your reply!

And it seems that the current version also has some bugs in parallaxes pictures.
I want to make an isometric view game with Ultra Mode 7 and parallaxes pictures.
However, there are 2 bugs:
① The player and events' start positions related to parallaxes pictures are wrong with Ultra Mode 7, which are right without the script plugin. I think this may be a bug?
② The parallaxes pictures move in a wrong direction when the player moves. As the map has an isometric view, the parallaxes pictures should also move in an orthogonal projection direction, I think.

Thank you for your work. I like it very much.

 

bblizzard

Veteran
Veteran
Joined
Nov 6, 2017
Messages
307
Reaction score
321
First Language
Croatian
Primarily Uses
RMMV
These two issues are actually symptoms of the same problem.

Are you using parallax mapping? Because if you are, it won't work with UM7. The parallax is a fixed 2D background while UM7 renders the map as a 3D object. Interaction in space between these two is very problematic because it's ambiguous. You should use actual isometric mapping instead: https://forums.rpgmakerweb.com/index.php?threads/creative-eds-isometric-solution-alpha-0-2.98725/
Alternatively you can try to find a plugin that handles isometric movement on a normal map (so it also works with parallax mapping) since this is what you are actually trying to do right now.
 

huanggaole

Warper
Member
Joined
Feb 29, 2020
Messages
4
Reaction score
0
First Language
Chinese
Primarily Uses
RMMV
These two issues are actually symptoms of the same problem.

Are you using parallax mapping? Because if you are, it won't work with UM7. The parallax is a fixed 2D background while UM7 renders the map as a 3D object. Interaction in space between these two is very problematic because it's ambiguous. You should use actual isometric mapping instead: https://forums.rpgmakerweb.com/index.php?threads/creative-eds-isometric-solution-alpha-0-2.98725/
Alternatively you can try to find a plugin that handles isometric movement on a normal map (so it also works with parallax mapping) since this is what you are actually trying to do right now.
Thank you very much.
You helped me a lot.
 

KaYsEr

Koruldia
Veteran
Joined
Mar 14, 2014
Messages
222
Reaction score
452
First Language
French
Primarily Uses
RMMV
Hey Bblizzard, hope everything is fine.
I’ve made further progress and recently used the plugin, check it out:


On Twitter if it doesn't work/load, or the other way around..

It’s GREAT to have the new “border limits” we can manually set, it will allow us to make bigger maps without worrying too much about performances.

On that matter, what is your “maximum map size” recommendation today? I remember when the plugin was still young that we had to be careful about this, is it a thing of the past and we can now do whatever we want? (Since you made a lot of updates and even rewrote some stuff.)


I was also thinking about something, would it be possible to have an option (in the game menu for example) to change the “quality” of the 3D render, something like “Mode7 quality: Normal/High”, and “normal” would be the current and default quality.

Right now it’s pretty good, especially for that kind of “low-res dungeons” I do sometimes (more explanation in the update’s text) it adds some charm to it or at least it’s consistent as a whole, but I wonder how it could look with an extra “pass” (idk if it’s correct to talk about a number of “pass” here, but that’s what I remember from old Mode7 scripts on RMXP/VXA where we could change that value), tell me if it’s something possible or if there’s a part in the code we can modify to tweak those numbers a bit.

From what I can see after many tests on a large number of machines (including weak laptops) it seems we could go a bit further, even a 100x100 map full of events still gives me nice performances.
 

Espilonarge

Veteran
Veteran
Joined
Apr 24, 2016
Messages
128
Reaction score
59
First Language
English
Primarily Uses
On that matter, what is your “maximum map size” recommendation today? I remember when the plugin was still young that we had to be careful about this, is it a thing of the past and we can now do whatever we want? (Since you made a lot of updates and even rewrote some stuff.)
Personally, I currently have maps with UM7 active on them that are 256x256 with doodads that seem to stay well above the 60FPS margin (the primary issues that caused FPS stuttering/lag were resolved quite some time ago). I'm also using Galv's Layer Graphics plugin and Khas's Ultra Lighting plugin to provide weather/time to maps but I do have to impose personal limits so not to cause FPS problems or drive up resource usage (eg = a limit of 10 "active" layers).

Of course, having good hardware and a monitor that supports high refresh rates helps but you should always remember that not everyones systems/devices will handle your game in the same manner or keep a stable FPS (my current rig which has had a GTX1070 and I'm using a MSI OPTIX AG32C that supports 165Hz).

Mind you, there is still an issue regarding MV's engine design. Specifically maps that are larger than 256x256 would "snip" the bottom end of the map with black tiles (eg = 512x512 which some of my "old" maps from VXAce were before they were converted). There's most likely a limiter in place to keep the FPS stable because MV prefers to load the "whole" map rather than split it in to "sectors" which makes "world maps" virtually impossible (you have to split them in to separate maps to pull this off). If someone knows a "fix" regarding this, I'd love to know.
 

bblizzard

Veteran
Veteran
Joined
Nov 6, 2017
Messages
307
Reaction score
321
First Language
Croatian
Primarily Uses
RMMV
@KaYsEr That looks awesome. :D I love that panning effect when you enter the map. It's trippy. xD

I have no idea what a sensible limit could be. I'm running a 50% down-scaled map of 400x350, 2 layers at a resolution of 1280x720 just fine at 60 FPS: https://gyazo.com/ccef0937ae7a1a6f11a60b78f2530f66
I recorded this video on my home PC with an RTX 2080 Ti (GPU utilization in task manager is about 13% on the title screen and jumps between 20 and 26% on that special world map mock-up.), but it ran at unstable 75 FPS (was jumping around at times, but I didn't really notice any stutter in the actual game) on my work PC on a 75 Hz monitor with an Intel HD 630 (even before I outfitted it with a Radeon RX 580 about a month ago).

I don't think you have to worry too much about it as long as you don't go mobile. Fact is that even the weakest GPUs today are capable of rendering millions of polygons easily if you don't use any special effects. (I just watched a video about how the PS1 was technically actually capable of rendering up to 120k polygons at 30 FPS) A 400x350 map with 2 layers is 400 * 350 * 2 * 2 = 560k. (Well, actually it's much closer to 280k since I have barely anything on the second layer there, but let's say it's 560k for the sake of the argument.) So that's "only" half a million polygons. Plus, that's not what's actually being rendered. Hardware optimization cuts off all the polygons that are outside of the camera view frustum so the actual rendered polygon count is far lower. And VRAM usage isn't too bad either. I think the tilemap uses 9 floats for every vertex. That means 560 * 3 * 9 * 4 bytes = 60.48 MB of VRAM for all the vertex data. Most GPUs nowdaays have several GB of VRAM so it shouldn't be a problem (again, unless you want to go mobile).

@Espilonarge You could use TileD for the big maps. I, myself, use a custom made editor as well. The thing with MV's maps is just a relatively needless size limit of 256x256. MV's default tilemap renderer only renders the tiles that are visible on screen and about 2 tiles around. As you move, the tiles disappear and IDs are switched around. It only loads all the map data in memory so it can quickly do this kind of render data streaming. MV doesn't actually need a map size limit because of this approach as larger maps don't impact rendering performance, only RAM usage.

EDIT: @KaYsEr My employee has a laptop with an AMD A8 7410 and a Radeon R5 M335. That overworld map mock-up runs at about stable 40 FPS he says, but he has way more issues with the battle screen which runs at 15-20 (I have to profile and optimize this >_>). Normal maps that have more layers (2-3 usually) at the same time and events run at 25-30 for him. So events and multiple layers definitely change how it behaves. I'd still say that the GPU impact is minimal here though. Especially seeing as the battle screen seems to have much lower FPS than the map.

EDIT: I just want to clarify my mobile comment earlier a bit: A few years ago while I still worked at Cateia Games, at one point I had this weird issue with the credits screen where the last part would completely glitch out on certain Android devices. I realized that the issue is a 65536 unindexed vertex count limit for a single draw call (that would be around 22.5k polygons) so I split that into multiple render calls. Now, I remember during that time that some older phones would struggle a bit with that credits screen to keep things at 60 FPS, like a Samsung Galaxy S2 we had at the office. Smartphones have obviously come a long way since then, but performance is still not comparable to desktop GPUs or probably even consoles. That being said the Nintendo Switch does use a smartphone GPU so I guess newer phones are quite powerful. Still, not all people have the newest phones. So if you want to go mobile, you definitely have to rethink your whole approach to resource management and map size in the game. I'll be facing the same problem for my game.
 
Last edited:

KaYsEr

Koruldia
Veteran
Joined
Mar 14, 2014
Messages
222
Reaction score
452
First Language
French
Primarily Uses
RMMV
Thanks for your feedbacks you guys, good to see everything looks fine too.

@Espilonarge

I can think of a visual trick to bypass the limit (map size) you talk about but it’s a bit complicated to explain, and the result would be “seamless” but in a Zelda 1 (NES) kind of way (when the map only scrolls when you touch the border), to put it simple it would involve careful planning at the limits of a map to show a big picture, a screenshot of “where you are” (boundary of one map stitched to the boundary of destination map) then you scroll that picture and do the teleportation right after that scrolling.

Told you it was hard to explain.. It’s easier to do than to explain with text. Hope it can help anyway.


But yeah, good to know you have great performances too with this plugin, I also tried on weak devices just like you did, the weaker one is an integrated Intel GPU, HD3000.. And the plugin is still fine with that, I realize the real performance issue I can experience (especially on weak mobile stuff, still ok on that HD3000) is with Terrax Lighting system.

You might ask why I don’t use Khas just like you? Well that one is quite dangerous I’m afraid. Many people on integrated GPUs report error messages (crash) with that one and I’ve seen it myself, same with the other companion one (for the cool procedural fog, what a waste I loved it), that one crashes the game on start on the HD3000, probably something to do with the shader support of old GPUs like that one (and/or the way Khas did those plugins), in my opinion it’s better to trade good performances with compatibility and avoid Khas unfortunately. Maybe we can hope for some rewrite/optimization of Terrax one day.


@Blizzard

Thank you for this extra information, great in-depth analysis!
(Ha yes I almost forgot now you implemented some kind of “culling” of the mode7 maps, haha it’s even better than the 2D vanilla ones in a way since MV loads the entire map even when the majority is off screen. Great feature.)

Your employee runs the battle screen at 20fps?? You mean the vanilla MV battle system thing? Wow that’s weird, whenever I playtest something on a weak machine if there’s a thing I’m pretty sure I’ll get a solid 60fps, it’s the battles. (Or maybe you talk about something custom, like a mode7 implementation in battle or something like that. Good luck with the optimization!)

Oh you forgot to tell me if an option to change the quality (internal resolution?) of the 3D render would be possible, you talked about a down-scaled map at the beginning of your message but it’s a bit unclear. The goal would be to use the extra power (since it seems we’re good) to have a cleaner render of the ground and more stable scaling of the sprites, they tend to jitter a little bit when we move (especially if we move slowly) so I was wondering if it could help (or something like Mip Mapping maybe), out of curiosity at least. :)
 
Last edited:

bblizzard

Veteran
Veteran
Joined
Nov 6, 2017
Messages
307
Reaction score
321
First Language
Croatian
Primarily Uses
RMMV
@KaYsEr No, I have a custom battle system with up to 10 animated battlers at the same time on the screen. There's probably something wrong somewhere which is why it's running at just 20 FPS on his laptop. It's unrelated to UM7. As I said, I still have to look into that.

If you want a higher resolution, technically if you just get a plugin that lets you use higher resolution tilemaps (e.g. 96 instead of 48), there's a good chance that UM7 will just work with it out of the box.

I did manage to enable proper mip-mapping on my game, but I upgraded manually to PIXI.js v5 and I upgraded the pixi-tilemap plugin. It took me 3 days to iron out all the compatibility issues with MV and my code. Though mip-mapping only helps with rendering when a polygon is far away. Here's the difference.


You can especially see how the detailed textures in the top-right part of the screen are smoothed out by mip-mapping.

Scaling is a bit tricky. I was able to implement it in my own game, but I use a very customized version of UM7. So I don't plan on implementing it in the public version.
 

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

Latest Threads

Latest Posts

Latest Profile Posts

I was planning to release a useless plugin for april fools, but then I thought I let it be.
Tfw every dev around me is using Live2D in their MV games and make me question my skills repeatedly.

Spending the day reworking my maps, especially the first "biome". This time it's not even in the dark. :LZSwink:
Activity on the forums has increased lately, probably because of people staying home. The amount of work for moderators has increased lol.
At this point I've gotten so tired of April Fools on the internet that last year I just refused to even post anything on the RMW Social Media on April Fools in protest. Considering doing it again.

Forum statistics

Threads
95,521
Messages
929,776
Members
125,787
Latest member
PollyS
Top