Lower Resolution?

Discussion in 'RGSSx Script Support' started by Rikifive, Jun 1, 2016.

  1. Rikifive

    Rikifive Bringer of Happiness Veteran

    Messages:
    1,442
    Likes Received:
    676
    Location:
    Poland
    First Language:
    Polish
    Primarily Uses:
    Other
    Hello everybody!


    In one project I'm using Double Pixel to simulate lower resolution, but that leaves unnecessary pixels, where the game has to do maths in, not mentioning, the extra size (weight) of maps and such. ~Ace's performance just loves that.


    I'm trying to lower Ace's resolution to 320x240 in order to optimize the performance and lower the game's weight, but of course here comes silly RM stuff ~ It looks extremely terrible, because it leaves these black borders all over the place. In my opinion, the resolution feature in Ace is a mistake.


    Is there a way to make it look and work properly?


    Thank you!


    Project in Question:


    [​IMG]
     
    #1
  2. Andar

    Andar Veteran Veteran

    Messages:
    28,131
    Likes Received:
    6,372
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV


    That has absolutely nothing to do with Ace or it's engine - you can see proof of that because the borders vanish when going to 640x480.


    The problem is the graphics driver. Most graphic drivers are only programmed for the official Windows-based screen sizes - 640x480, 800x600, 1024x768 and so on.


    They cannot calculate the displays for different, non-standard screensizes and always have to fill up the rest of the screen with black until they get to the next official screen size.


    There are a few better drivers who can calculate with other sizes and display those without borders (and usually have a setting in the display properties to allow the user to choose how to display non-standard resolutions), but even if you have one of those cards and drivers, the black borders will be there for all people without such a graphics card.
     
    #2
    Rikifive likes this.
  3. Rikifive

    Rikifive Bringer of Happiness Veteran

    Messages:
    1,442
    Likes Received:
    676
    Location:
    Poland
    First Language:
    Polish
    Primarily Uses:
    Other
    I see ~ Hmmm ~ so there's no way to get around that?


    Like resizing the game itself, so that I wouldn't have to use double-pixel images?


    For example when you have Emulators for old console games, they have even lower resolution than the one I'm aiming for and they can 'resize' the stuff inside, which basically gives the effect I would like to achieve.


    Can I 'zoom' the graphics efficiently? If that would work, then I could even just use even numbers.


    To make everything less complex, I'm not aiming for any magical resolution ~ just simple reducing by 50% (zooming X2).


    Ace doesn't handle physics/gravitation conditionals/maths very well, so getting rid of Double pixels would reduce the memory usage by 50%, thus improving the performance very nicely.


    How I should go about this?


    Thank you for your time.
     
    #3
  4. Andar

    Andar Veteran Veteran

    Messages:
    28,131
    Likes Received:
    6,372
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    There are scripts for Ace that zoom the display, and that is also how other programs work - but it always only increases the original size.


    So yes, you can go down to a lower screen size in Ace and then use a zoom script to bring it up to 640x480 - but that will require you to change everything in Ace ot that size, including all menu screens. Search on the master script list for a zoom script (I think there are two - one at minimum I know for sure)
     
    #4
    Rikifive likes this.
  5. Rikifive

    Rikifive Bringer of Happiness Veteran

    Messages:
    1,442
    Likes Received:
    676
    Location:
    Poland
    First Language:
    Polish
    Primarily Uses:
    Other
    Mhm, okay~ I'll look around.


    Since Ace uses 640x480 resolution and it scales up with the monitors, then I assumed it could be possible to do the same with 320x240.


    I'm not using any default stuff, so it won't be a problem ~ All I will have to do is to just resize all my images to original size and redo some maths in hitboxes and such.


    Thank you for information and your time~


    [​IMG]


    Welp, I can't find a working one. =/


    [​IMG]


    Found one by Vlue, but it didn't work well.
     
    Last edited by a moderator: Jun 2, 2016
    #5
  6. Sixth

    Sixth Veteran Veteran

    Messages:
    2,122
    Likes Received:
    792
    First Language:
    Hungarian
    Primarily Uses:
    RMVXA
    Will you give a free magnifying glass to all people who play your game as well? 


    I never understood why would anyone want a resolution so small in this age and era. Even mobile phones got bigger resolutions than that (not necessarily modern mobile phones), and I can hardly see the stuffs happening on them in many games.


    I suppose one could use the magnifier function of Windows to make it bearable, but still, I surely wouldn't do that to my players.


    Anyway, just my opinion, don't take it too seriously, I just love to rant about these stuffs. :p


    If you want to optimize your game's performance, you should first optimize your code, because if it kills the FPS that much on 640x480, your code can almost certainly be improved. If not, well, as you wrote, Ace is a lackluster in this regard because of no GPU support. The best thing to do would be to switch to a more... well, timely engine.


    I love Ace, it was the first game making engine I really got into, but nowadays I get these issues from not having GPU support more and more often, making it pretty much impossible to code anything which looks a bit better than a game from the '80 with some more complex and not so old timer features included (such as pixel movement, better collision system, real-time battle scenes, more complex animations, and so on). Unfortunately, Ace just doesn't cut out to do these things in most cases, and even if the code is good, you will most probably end up with pretty bad FPS in your game (not necessarily all the time, but still, unstable FPS is bad for any game), at least on lower/average specs PCs (with less CPU power - but that is not the only thing which can lower the FPS).


    If you are worried about the size of your graphics (but I wonder why you do, I never got any problems regarding this), you can always pre-cache them (you know, that is what most games do, that is the whole point of loading screens), use them when you need, and discard them when you don't need them. It might get tricky to load and discard them at the right time, but generally, the best thing to do is to just change them during map transfers (and/or depending on your battle system, during battle transitions). 


    This won't solve the lack of GPU support, but it can increase your performance a bit for the cost of a bit more memory usage (depending on the situation it is used in).


    Btw, what's that game? Looks like Contra, so I guess, it is a 2D side-scroller shooter?


    Seems good, but depending on the collision check, it might run poorly on some PCs (just my personal experience in making a 2D shooter engine on Ace - it works well until the screen gets loaded with lotsa enemies/projectiles, especially if they are rotating or if their zoom level is changed). If your issue is related to this, you might as well try to convert your code to a more appropriate game engine now, before it gets too big. My code for my 2D shooter engine is well over 15,000 lines (written from scratch, and it is not entirely finished yet), and even though I want to try it out in a different game engine (to compare the difference in performance mainly), I just can't seem to force myself to re-do the code on a different coding language. >.>
     
    #6
    Rikifive likes this.
  7. Rikifive

    Rikifive Bringer of Happiness Veteran

    Messages:
    1,442
    Likes Received:
    676
    Location:
    Poland
    First Language:
    Polish
    Primarily Uses:
    Other
    And that's my problem.


    If I'm not mistaking, NES games had a resolution of 256x240.


    ~ As you have noticed, I'm aiming to make a retro-looking 2D platformer shooter game, so the resolution needs to be lower to make these pixels visible and stuff. (also because pixel art is what I'm much better at, comparing to normal digital art)


    I sincerely agree, that the tiny windows and such are a pain ~ Personally I hate playing games on Windowed Mode ~ for me game needs to have fullscreen mode.


    And that's my question ~ I want to lower the resolution, but scale it to make it look good ~ preferably fullscreen. What I exactly want to do is to lower the resolution by 50%, then upscale it back so that, I can even still look like 640x480 ~ but in the scripts and files I'd be using half of it (320x240) ~ Something like in NES emulators ~ upscaled, so that every single pixel yells at you.


    There I agree ~ I coded ALL of this within a week due the deadline ~ so I was coding pretty quickly and in kinda messy way. ~ Though I know the code can be optimized, I still think that Ace will not handle it that well anyway. Sadly you're right ~ That's what bothers me for a long time ~ RPG Maker is not powerful for a developer apparently (they lied to me D:) and I think I have to look up for something else then...


    Agree ~ Whatever I'll do in Ace ~ every single feature decrease FPS ~ and that's not my fault ~ simple things may lower performance, which is ridiculous.


    Since it's a 2D game ~ all images are loaded between levels, so the loading time isn't really that bad, but each level has about 10000-20000 pixels width, so imagine having tons of these images for each level ~ it's all about filesize and possible issues with moving these images to simulate scrolling ~ unless they're not making any problems performance-wise, then I didn't know about this and that would be good ~ If I'd load multiple images with 20000x480 dimension and move them around by scrolling - will that be kind of heavy for the engine? Or besides loading time it doesn't matter?


    That's my latest project I'm working on ~ that was my entry for 'Indie in a Week 4' ~ and it's exactly something like Contra indeed.


    I'm entirely sure, that all FPS drops are related to collision detection, because on singleplayer it runs pretty well ~ but when played on 2 Players mode, which basically doubles the maths and conditionals ~ the performance gets kinda choppy. That's why I want to lower the resolution ~ I'm using double pixel for everything, so half of the pixels are basically not used, but I still have to put them into maths for hitboxes ~ width/height. I'll do my best to try to optimize collision detection, but my mind literally explodes due to amount of maths and all that geometry. =P


    Enemies and projectiles aren't an issue ~


    Enemies have simple AI and there aren't many of them displayed at once. They 'spawn' when you'll get close enough to them like ~100 pixels beyond right border of the screen ~ otherwise, if they're far away, they're simple not being updated, besides scrolling them with screen of course ~ but I'm 100% sure that they aren't a big deal.


    Projectiles are perfectly fine ~ amount of bullets existing at once is limited, just like in retro games (think of Contra) ~ you can shoot few bullets and then have to wait for them to get disposed beyond the screen.


    Nothing uses zoom/rotation ~ there's absolutely no need for that.


    My 2D engine is actually much shorter ~ collisions, gravity ~ player/enemy sprites and everything took less than 2000 lines in total at the moment. (also from scratch, since there's almost nothing I could use from default scripts besides these related to system ~ I've removed all window and scene scripts besides the BASE ones.)


    ~  I have a similar problem ~ A different engine would be perfect for me, since RM absolutely doesn't fit my needs and it's ... to be honest silly in general (sorry for saying that though). All the time I have a feeling, that I'm wasting my time here ~ but on the other hand ~ I can't afford buying another engine and even if ~ learning stuff from the beginning (libraries etc.) is what I'm afraid of. I'm not a professional scripter ~ All I know about scripting I've learned here ~ within a year. ~ So.. I don't know other scripting languages. =/


    I so badly would love to make stuff in RPG Maker, but it sincerely tries to get rid of me. =/


    (I've posted The Alpha Demo of this game here on the forums ~ if you're curious)
     
    Last edited by a moderator: Jun 2, 2016
    #7

Share This Page