Fullscreen Mode Problems with Pixel-Perfect Game

Discussion in 'RPG Maker MV' started by CriticalGames, Jun 28, 2017.

  1. CriticalGames

    CriticalGames Veteran Veteran

    Messages:
    217
    Likes Received:
    60
    Location:
    Australia
    First Language:
    English
    Okay, so this is a bit of a weird one! I'm developing a game with pixel-perfect graphics, but I've noticed a problem when I play in full-screen mode.

    RPG Maker seems to occasionally add extra pixels to character graphics, tiles, and I think even text, but it puts them in strange places that wreck the look of the game. Now, the reason I say occasionally is because it seems to be totally random.

    I can start up the game, and immediately have this issue where there are some out-of-place pixels on a character. But then I can walk a few steps and boom - it'll be fixed. RPG Maker seems to re-decide how it wants to render a graphic in full-screen mode every time that graphic is called upon, but the process seems to be random as it approaches the rendering differently every time. At least, that's all I can assume.

    Here's a picture to represent what I'm talking about. It contains three versions of the same character.

    8Bit Fullscreen Pixel Problems.png

    The first version shows off the problem I've described - one of his eyes is thicker than the other, a row of pixels on his satchel are elongated, his hands are 1 vertical pixel shorter than they should be, etc. The second version is how the character is supposed to look; this is how he appears in Windowed mode. The third and final version is also taken from Full-Screen mode, however this is after walking a few steps and seemingly 'resetting' RPG Maker's rendering process. As you can see, his proportions are correct - no extra pixels have been added or taken away from anywhere. This is what I'm after, and obviously the engine *can* do it. I just need a way to remove the random factor.

    If anyone has any ideas about how to deal with this, I would sincerely appreciate it! This is essentially the last RPG Maker MV-related hurdle I need to overcome in terms of making the pixel-perfect aesthetic work properly =D

    Thank you very much for reading!
     
    #1
  2. Jonforum

    Jonforum Veteran Veteran

    Messages:
    1,577
    Likes Received:
    1,353
    Location:
    Canada / Qu├ębec
    First Language:
    French
    Primarily Uses:
    RMMV
    check in PIXI.settings.SCALE_MODE

    if is work

    PHP:
    The scale modes that are supported by pixi.
     *
     * 
    The {@link PIXI.settings.SCALE_MODEscale mode affects the default scaling mode of future operations.
     * 
    It can be re-assigned to either LINEAR or NEARESTdepending upon suitability.
     *
     * @static
     * @
    constant
     
    * @memberof PIXI
     
    * @name SCALE_MODES
     
    * @type {object}
     * @
    property {numberLINEAR Smooth scaling
     
    * @property {numberNEAREST Pixelating scaling
     
    */
    var 
    SCALE_MODES exports.SCALE_MODES = {
      
    LINEAR0,
      
    NEAREST1
    };
     
    #2
  3. CriticalGames

    CriticalGames Veteran Veteran

    Messages:
    217
    Likes Received:
    60
    Location:
    Australia
    First Language:
    English
    Thanks for the suggestion @Jonforum! I changed my settings to copy what you included in your post, but unfortunately it didn't seem to make a difference. I thought that'd be too easy =P
     
    #3
  4. CriticalGames

    CriticalGames Veteran Veteran

    Messages:
    217
    Likes Received:
    60
    Location:
    Australia
    First Language:
    English
    Unfortunately, I still haven't found a solution. If anyone has any ideas, I'd sincerely appreciate it! =) This is something that I really need to deal with.
     
    #4
  5. CriticalGames

    CriticalGames Veteran Veteran

    Messages:
    217
    Likes Received:
    60
    Location:
    Australia
    First Language:
    English
    I tried exploring all of the base plugins that come with an RPG Maker project, checking every mention of SCALE_MODE and trying to mess around with them, but no luck. I really have no idea how to deal with this, so I would sincerely appreciate any help. I'm sure this is something that every pixel-perfect game has to deal with, so there must be a way to get around it =D
     
    #5
  6. Andar

    Andar Veteran Veteran

    Messages:
    28,337
    Likes Received:
    6,449
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    @CriticalGames The poster above wasn't talking about plugins, he was talking about the core js files, especially pixi.js

    However, any change there will only shift the problem.
    It is technically impossible to get fullscreen pixelperfect on all computers. The only way to get any zoom pixel-perfect is to limit that zoom to multiples of 100% - you get a pixel perfect result at 200% and at 300% or so, but never for any number between.

    Just think about it with a simple example: let's assume that you have a game at 600x800 (not MV-screen size but a common windows resolution) and the computer where you play it has a TFT screen with 1024x768 pixels.
    If you want to go fullscreen, that means that for every sequence of around 4 pixels the computer has to invent a fifth pixel color. The different mathematical formula can only give a guess on that fifth pixel, they will never get it perfect no matter what you do
    And you cannot physically change the numbers of pixels a TFT screen displays (only old CRT monitors can display any resolution without distorting it)

    So you can only try to get the best compromise out of your zoom, you will never get the fullscreen pixel-perfect.
     
    #6
  7. CriticalGames

    CriticalGames Veteran Veteran

    Messages:
    217
    Likes Received:
    60
    Location:
    Australia
    First Language:
    English
    Hi @Andar,

    Thanks for the response. Yes, pixi.js, etc. were what I was talking about - sorry for the incorrect terminology (I was just referring to .js files as plugins).

    And I appreciate the explanation. I understood most of that (although I learnt a couple of new things there!), and expected it to be an issue. But RPG Maker does *seem* to find a compromise where everything is displayed pretty reasonably. Here's a full-screen screenshot from my game where everything looks correct (to my eyes, at least):
    8Bit Fullscreen Pixel Problems 2.png

    If you zoom in, there's the odd pixel added here and there to the environment, but it's pretty consistent and there are no easily discernible differences. For all intents and purposes, it *looks* right. The problem is really the characters. In the above image, the character has wider pixels, but they're consistent - it's not like the image in my first post where one eye is bigger than the other.

    So, I suppose my real question is: If there's no better way to handle full-screen mode, then how can I make RPG Maker MV consistently render character/event sprites in the best way possible? Or is that what you were saying at the end of your post - that I can't manipulate that aspect?

    Thanks again!
     
    #7

Share This Page