[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Best practices for creating multiple resolution 2D pixel-art games?



On Thu, Apr 5, 2012 at 18:24, Santiago Romero <sromero@xxxxxxxxxxx> wrote:
[...]
> - Game graphics (pixel-art, not vector or 3d graphics): What's the best way
> to create the graphics? Do them "high-res", try to ask always for the
> highest resolution and downscale if not (losing quality)? Do them "mid-res"
> and upscale / downscale depending on the resolution? Create them in 2 or 3
> different sizes to minimize quality losing in scaling?
>
> - Game engine: when creating the scoreboard, menues, inventories, position
> items in the screen, define sprite-speeds ... should I use "percentages"
> instead of pixels? ( % ). Should I, instead, work in a "base resolution"
> (640x480) and scale all (pixel-speed for sprites, on-screen text and
> scoreboards positions, etc) according to the relation base-resolution /
> real-resolution? And what about the ratio (16:9 <-> 4:3) change (it's not
> just an "scaling" problem)?

As others have noted, it all depends on your visual style and
the kind of game you are making. There are some possible solutions
from which you can pick depending on what your goals are and what
works for your particular case:

1. Upscale the pixels to huge blocks. This works if you aim for
    retro feel, although it is really getting old.
2. Downscale to match the screen size. This works especially well
    when your game already does scaling, like zooming and such.
3. Scroll the playing area. Some games will only show you a part of
    the playing area at a time, and either let you scroll freely or
    scroll automatically following the player character. In such games
    it often works to just show more of the playing field on
    higher-resolution displays, allowing for more comfortable play but
    not really changing the artwork or game rules.
4. Fill the remaining portions of the screen with the user interface.
    For example, in a low-res version the inventory can be accessed
    by entering the inventory mode, when the menu will replace the
    normal view. In hi-res mode the menu may be displayed at all times
    on the side of the screen. This is easiest if you only target a few
    selected resolutions.
5. Make your game run in a window of fixed size. Let the players have
    their music player, twitter client, text viewer with game's walktrough
    or whatever they want opened side-by-side with it. Or even have several
    windows, like Angband does -- then it becomes like 4.
6. Completely re-do all of your graphics for several different resolutions.
    This is usually an insane amount of work and unless it's very important
    to you, I wouldn't recommend it. Or you could have some ready graphics
    that already comes in many sizes -- like the Tango icons.
7. Run full screen and force switching to the mode you want. This may look
    very bad on displays with fixed native resolution and with different aspect
    ratio than what you expect.
8. Scale the parts that can be scaled easily (like the map), but leave the rest
    at constant resolution (like the icons on the map).

You will usually want to mix and match these in your actual games.
-- 
Radomir Dopieralski