Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 21

Thread: Resolution and Aspect Ration Independent 2D Game Engine Design

  1. #11
    Quote Originally Posted by SilverWarior View Post
    Now as for using different resolutions (DPI's) you should use several instances of your graphics optimized for several different resolutions. Using only graphics optimized for high resolutions and scaling them donwn will make them look blured an lose some importand detailes. (slowly scale down any of your photos in your popular photo editing tool and you wil quickly inderstand what I mean).
    Below in your post you suggest using vectored graphics. Now, if the artwork is rendered using vectored approach in the first place (e.g. Flash, 3D Studio Max, Maya, etc.), then using proper downsampling/multisampling will not make the graphics blurred. In fact, an antialiasing technique that is properly made should work with the image in such way that you will not perceive any visual artifacts or even realize that the image has been downsampled.

    Putting cheap/crappy editing software (which may include popular software products such as Photoshop, by the way) as an example does not support your argument.

    There is an entire area of sciences that deals with such issues, called Colorimetry. The proper downsampling needs to be made in perceptually uniform color spaces, including but not limited to CIELAB, CIELUV, DIN99, ATD95, CIECAM among many others.

  2. #12
    Speaking of vector graphics, has anyone ever used AggPas to do a game? (Sorry, for being slightly off-topic ...)
    Best regards,
    Cybermonkey

  3. #13
    Quote Originally Posted by Lifepower View Post
    You may not be able to change game world presentation, but you can use it in different layouts (e.g. world on top, hud on bottom, etc.). You can also design HUD with dynamic elements so that it can be presented in a variety of shapes to accommodate for different world positions.


    DPI and PPI are exchangeable, so it's the same thing really. One issue is that not all high-DPI displays are properly configured in Windows, so you can see poor users reading tiny text on their 14'' laptop with 1920×1080 resolution, which is mainly due to poor application support. Properly handling different DPI scenarios requires having images in different sizes, or as you said, using larger images and downsizing them on the fly while drawing (use proper mipmapping and antialiasing settings for this). You don't need to create separate layout rather than using a dynamic layout where you automatically specify the size for each of the layers and the elements inside each layer are also automatically accommodated.
    Ok, I think we're on the same page then. I like this concept as it tries to eliminate the problem (which is basically what the link in your previous post was about). It may require some more work in the design phase of the game but at least this tackles the multiple aspect ratio problem.

    Quote Originally Posted by SilverWarior View Post
    I don't think there is an easy solution to this.
    I do think that you should design the game engine acording to targeted audience. So you should optimize your game engine acording to the most comon aspect ratio used on your targeted platforms.
    I don't think making different UI's for different aspect ratios is a solution. For instance if you make a bigger UI for users with widescreens you won't achive the same gameplay expirience with those who use standard monitors and would have smaler UI. Especialy if widescreen UI contains more information. So becouse using differen UI won't offer the same gaming expirience showing more world would be much easier solution to do.
    But if you do intend for all of your players to have the same gaming expirience then you should lock your games aspect ratio so that only resolutions of that aspect ratio are posible. Also in this case you should take care so that all ingame object are drawn the same size regardles of the screen resolution.
    As I see it UI is not the only thing that can be changed when using different layouts (though I wrote that in my previous post). If you commit to using several layouts you'll also commit to to think about if anything in your game can change across different layouts.
    E.g. when writing console games you have the full tv screen area you can draw on. However there's also a safe area. This is the area all important gameplay and huds should be placed in. This is due to the fact that some tv sets covers up parts of the screen border. The safe area is guarenteed to show up on all tv sets. Likewise you could possibly define a "safe area" in your game that must be displayed exactly the same across all screens. The area outside can then be used differently for each layout. Some will show extre gui stuff. Others will maybe just show extra parts of the game world that doesn't have influence on gameplay.

    The point about ensuring the same display size of assets across resolutions is however a good point.

    Quote Originally Posted by SilverWarior View Post
    Now as for using different resolutions (DPI's) you should use several instances of your graphics optimized for several different resolutions. Using only graphics optimized for high resolutions and scaling them donwn will make them look blured an lose some importand detailes. (slowly scale down any of your photos in your popular photo editing tool and you wil quickly inderstand what I mean). Also using grapphics optimized for small resolutions and caling them up will make them look pixelated (each pixel will look like smal square).
    Offcourse you don't have to make graphics optimized for every posible resolution, you should make your graphics optimized for most oftem used resolutions and then scale them for other always using the one wich are the closest to the target resolution (les scaling means better results).

    The best way is to use vectored graphics but as it has been sad not all of the graphics can be vectorised. So this means that the grephics must be developed acordingly from the verry start.
    I believe that you can use just one asset and then downscale and still get good results. Sure if you're porting a pc game to a smartphone then it could make sense to create new assets optimised for smaller screens. But it all depends on the game in then end. For a pixel perfect result downscaling obviously wouldn't be a good way to go.
    Regarding vector art. Yes in some cases vectors will do, but in many cases it won't.
    Imagine I've written something clever here inspiring you to make something awesome. If that happens give me credits

  4. #14
    Quote Originally Posted by pstudio View Post
    I believe that you can use just one asset and then downscale and still get good results. Sure if you're porting a pc game to a smartphone then it could make sense to create new assets optimised for smaller screens. But it all depends on the game in then end. For a pixel perfect result downscaling obviously wouldn't be a good way to go.
    Have you tried what I sad in my post about downscaling (slowly scale down any of your photos in your popular photo editing tool and you wil quickly understand what I mean).
    You should understand that highres graphics would use much more memory for storing them. So if you have a lot of graphics you could soon find out that your game won't be able to run on most older computers, becouse they would lack the necessary graphic memory to store all of those highres graphics in it. Also using higres graphics requires more procesing power from the graphics card especialy when using scaling as this requres even more procesing. So it is posible that many older computers wont have graphics cards wich would be capable of renderning your game with decent FPS.
    Yes you could downsample your graphics at the verry start of the game, but this will increase the games loading time quite a bit. And noone likes wating long for the game to load.

    Anywhay if it would be so easy ass you think everyboddy would be using this aproach. How many games have you ever seen using this aproach. I don't recal any of them.

  5. #15
    Quote Originally Posted by SilverWarior View Post
    Have you tried what I sad in my post about downscaling (slowly scale down any of your photos in your popular photo editing tool and you wil quickly understand what I mean).
    This is only going to cause an issue if an image is repeat-ably down-scaled, thus reducing the quality by lots. Only being down-scaled once is going to be just fine.

    Quote Originally Posted by SilverWarior View Post
    You should understand that highres graphics would use much more memory for storing them. So if you have a lot of graphics you could soon find out that your game won't be able to run on most older computers, becouse they would lack the necessary graphic memory to store all of those highres graphics in it. Also using higres graphics requires more procesing power from the graphics card especialy when using scaling as this requres even more procesing. So it is posible that many older computers wont have graphics cards wich would be capable of renderning your game with decent FPS.
    Yes you could downsample your graphics at the verry start of the game, but this will increase the games loading time quite a bit. And noone likes wating long for the game to load.
    I can see the memory and loading times being an issue, but it might work...

    Quote Originally Posted by SilverWarior View Post
    Anywhay if it would be so easy ass you think everyboddy would be using this aproach. How many games have you ever seen using this aproach. I don't recal any of them.
    How could you tell if a game used the down-scale approach anyway?

  6. #16
    Quote Originally Posted by paul_nicholls View Post
    How could you tell if a game used the down-scale approach anyway?
    I have a tendacy to dig trough the games files to see which components do they use (sometimes can be easily seen from various dll files wich ship with game). I try to identify resource files containing graphics, sounds, etc. Many times I need to use various unpackers so I can actualy see ingame resources like graphics and sounds.
    Do mind that I don't do this with intention of stealing any of theese resources, but seeing them can usualy tell you a lot about the way how game works. This is actialy the way how I learned most about game mechanics up till now.
    And NO I don't do revesre enginering of the games code.

  7. #17

  8. #18
    Quote Originally Posted by SilverWarior View Post
    I have a tendacy to dig trough the games files to see which components do they use (sometimes can be easily seen from various dll files wich ship with game). I try to identify resource files containing graphics, sounds, etc. Many times I need to use various unpackers so I can actualy see ingame resources like graphics and sounds.
    Do mind that I don't do this with intention of stealing any of theese resources, but seeing them can usualy tell you a lot about the way how game works.
    Note that if such game content is encrypted, you'll be breaking the law in some countries just by using the quoted approach. In either case, you are not making a sound argument here. Many 3D games (FPS/RPG/etc) use rather huge textures, which are later downsampled.

    In addition, if you load all graphical resources to system memory, even legacy computers with 256 Mb of RAM (plus another 1 Gb of swap file) will handle it since graphics typically has relatively low footprint compared to sound, music and video files. Nowadays, a typical low-end machine will have at least 1 Gb of RAM, so you don't need to worry about loading hi-res graphics at all. If you are worried about video memory, then you should know that both Direct3D and OpenGL load/unload managed resources to/from video memory on the fly, so only the stuff that is being drawn is usually stored in video memory.

  9. #19
    Quote Originally Posted by Lifepower View Post
    Note that if such game content is encrypted, you'll be breaking the law in some countries just by using the quoted approach.
    Yes I know that. I never bother decryptic any content, if I can see some content by using some easy unpacker (usualy found on the web) I do otherwise I don't bother too much.

    Quote Originally Posted by Lifepower View Post
    In either case, you are not making a sound argument here. Many 3D games (FPS/RPG/etc) use rather huge textures, which are later downsampled.
    Yes but most of them requires computer with quite powerfull hardware to run.
    Also 3D graphic engines sometimes use huge textures wich are actualy colections of smaler graphics (theese are not to be considered as high resolution graphics) and then only portions of theese are used as different 3D models textures. This aproach is usualy used to speed up the thexture lodaing into graphic memory. Also if theese colections are properly organized they can use les graphic memory that it would be used if all of the small textures would be loaded one by one.

    Quote Originally Posted by Lifepower View Post
    In addition, if you load all graphical resources to system memory, even legacy computers with 256 Mb of RAM (plus another 1 Gb of swap file) will handle it since graphics typically has relatively low footprint compared to sound, music and video files.
    256 Mb of ram won't alow you to load much graphics in it especialy if we're talking about some highres graphics.
    As for the swap file it's size varies a lot. On Windows based system the size of a swapfile or. pagefile as named by Microsoft is 150% of the size of RAM by default. So if you have computer with 256 Mb of RAM the size of the swap file would be 384 Mb. Loading any graphics from the swapfile to graphic memory would be werry slow due to slow hard drive acces. This will result in lots of slowdowns or some graphic content not being drawn when it is suposed to.
    Take GTA San Andreas as an example. If you play this game on a low end computer and do some flying with the planes you could sinply crash into the tree before it would be even rendered (texture for the tree isn't loaded into graphic memory fast enough).
    Also you should take into consideration that you would ned RAM for other data to. So unless you have smal levels, a few of ingame objects, you can forget about having any higres graphics on pre mentioned computer with only 256 Mb or RAM.

    Quote Originally Posted by Lifepower View Post
    If you are worried about video memory, then you should know that both Direct3D and OpenGL load/unload managed resources to/from video memory on the fly, so only the stuff that is being drawn is usually stored in video memory.
    Partly true. But nowadays when there is posible to exploit graphics card processing power to do other things besides just drawing graphics you should note that theese operations also use video memory.

  10. #20
    On topic of aspect ratio, not sure how much of this is said already, but many games let user himself choose how he wants to scale the UI. Most 3D games support this now. For example imagine someone with imaginary 2400x1800 resolution. You can't know how big or small he wants the UI to look. Maybe he is used to look small things possibly because his display is huge. So just because resolution is big, it's not *always* the right choice to scale things up. Depends on what you're drawing...

    Also as i mentioned OpenGL earlier, even if it's 2D game its all vector graphics (polygons). Texture size doesn't matter (well, low/med/high settings for performance can be good always), bi-linear filtering is smooth to look at. They can also be drawn pixel-perfect without scaling. Vector graphics have speed benefit where you don't have or need your own doublebuffer, to get effect of "stretching" graphics.

Page 2 of 3 FirstFirst 123 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •