Jump to content
  • Advertisement

2D Is there a working resolution...?

Recommended Posts

Hello, I am rewriting my pixel art game program and have decided to support the following resolutions:


1920 x 1080

1280 x 720

1024 x 768



I think they all look fine on the different sized monitors.  Does anyone have an opinion of any other needed resolution to support?

When I started this research I seem to recall a general response of it might be just important to have the aspect ratios.  What does this mean exactly?  Why?

Thank you,



Edited by Josheir

Share this post

Link to post
Share on other sites

I have screens that are:

  • 3840 x 2160
  • 2880 x 1800 <-- 16:10, some people just letterbox down to 16:9
  • 2560 x 1440
  • 2560 x 1080 <-- this is the bitchy one, at 21:9
  • 1650 x 1080

I would want to be able to play on those in some sensible fashion, whether it's resized or whatever.

Share this post

Link to post
Share on other sites
4 hours ago, Josheir said:

might be just important to have the aspect ratios.  What does this mean exactly?  Why?

You can always scale up and down, that's trivial. Yes, things get pixelated when you scale up too far, but someone with honking great monitor probably expects that a large subset of 2D games will do that, and lives with it.

It's harder to deal with ultra-wide or ultra-tall monitors. You can just scale to the minimum dimension and put giant black bars on the other two sides, but... Promit most likely didn't buy an expensive widescreen just so that he can stare at black pixels all day.

Also, the mobile world has a lot of different aspect ratios, and folks there don't expect to see black bars on the sides of their games - the screen on a phone/tablet is small enough already.

Share this post

Link to post
Share on other sites

What are you going to do on other sized screens? Run in windowed mode with a non-resizable window? Draw black borders on the edges? Rescale from one of your supported resolutions to the screen resolution? That last one would require care around aspect ratios. 

Share this post

Link to post
Share on other sites

You should probably pick a popular resolution to target, such as 1080p (1920x1080), so that your art looks optimal. And then have the actual screen resolution be fluid to whatever resolution or aspect ratio the user has. For example, some people (like myself) use 4K TVs as monitors, it which case the screen would just scale up 4x to fit (this is easy since it's a multiple of 1080p and the same aspect ratio). However, ultra-wide screens are more popular these days and (less so) multi-monitor configurations, and it would be nice to support an arbitrary aspect ratio. In that case, your game would render art to the left and right of what would normally be seen on a 16:9 screen. In any case, it would be a mistake to hard-code a few resolutions and expect that all your customers just happen to have the same monitor you do.

Share this post

Link to post
Share on other sites

I dont understand... if this is a pixel art game, then presumably the art only makes sense at a specific resolution so that the pixels are at a certain scale, right?   So why not just do like cyberpnk says and support just that resolution, and then you can scale and letterbox to support the final screen (or window) resolution?

Seems like you're just making life hard for yourself.

Share this post

Link to post
Share on other sites

Please look into actually asking the monitor what resolutions are supported, since your list of resolutions is never going to be exhaustive enough to cover everyone's monitors. It will break when you try and set it to a resolution that the monitor doesn't support, which is very easy to do, and then you will be flooded with complains about how the resolutions are messed up or how you don't support X special snowflake monitor. On Windows this is done using EnumDisplaySettings. On Linux I am not sure, you can look into XRRSizes and XF86VidModeGetAllModeLines to start.

Share this post

Link to post
Share on other sites

While less likely in a gaming scenario, some people also use their monitors in portrait mode, so a 16:10 becomes a 10:16. But if you are also targeting mobile, you may want to support portrait mode anyways.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Advertisement
  • Advertisement
  • Popular Tags

  • Popular Now

  • Advertisement
  • Similar Content

    • By Aggrojag
      I'm working on a game that is quite personal to me. It touches on my own depression, obsessions, phobias, etc. It's a narrative driven dark comedy with some small aspects of platforming and puzzle solving. The project is rather small as well. It touches on topics such as suicide, mental illness, family, corruption, free-will, and redemption. We are using Trello at this time to track tasks & progress, you will be expected to use this. We are using Discord for general conversations, you will be expected to use this. Documentation, builds, and assets are stored in GDrive. I'd say we're about 60% complete overall, including 0 animations being completed. I have prototype builds that are available upon request.
      First, I'm looking for a 2D sprite artist, not pixelated, that can compliment the style of the attached images. The player character's animations will be a bit more extensive than a typical platformer, however there are only 2 major characters that will need animation. There will be many death animations, and some other strange dealings with the character that will need animated. A full list of necessary animations is available upon request. All static pieces, encompassing most of the environment, is already being handled by a separate artist (couple images below). For a better understanding of how things will look once finalized (shaders, etc), please watch the attached video at the bottom. We plan on playing around with bump-mapping for dynamic lighting on the sprites. This may result in additional work if we carry on down that route, which is looking increasingly unlikely. If we change out mind, this would likely be by using the alpha channel to carry information about height/depth. At the bottom you will find the a reference for the type of art style I'm looking for (it's not 100% accurate, but damn close).
      We are looking to bring on a SFX designer at this time. Full list of required SFX will be available upon request, as well as a build with all elements related to sound implemented in some form (many SFXs pulled from the web for now). Will likely require some field recording, and some pretty strange SFX for when things get weird. I imagine a good portion of these will be quite fun to create.
      Lastly, I'm looking for a male voice actor, English should be your primary language. There will be at minimum two characters that will need to be brought to life through vocals. They are a very core part of the game, though they will never be shown on screen. As a reminder, this is a rather dark comedy, so be prepared for some insanity in your portrayal of these characters. The first voice is similar to Marvin from Hitchhiker's Guide to the Galaxy. A reference for the second voice would be a mix of Ren (Ren & Stimpy), and Android 21 (DragonBallFighterZ). Due to formatting, I'm not including YouTube links in the post, sorry.
      To those still interested:
      I do plan to post this on itch.io and wherever else I can put it that makes sense. I fully expect to make nothing off this project, as should you. However, in the case that money is made, a rev share model will be in place.
      This project is exercise in polish, this means some experimentation will be needed along with some reworking of assets as they're provided.
      WIP Scene with our custom shaders attached (platforms are lazily placed, as this was an asset test):

      A scene with a temporary character & dynamic lighting:

      A scene with dynamic lighting and temp character:

      Unshaded asset:

      Scene3.mp4 A WIP scene with completed shaders.
      If you made it to the bottom, thank you, and I look forward to hearing from you.
    • By CocoaColetto
      I am basically brand new to the gaming industry business wise although I have been a gamer for years. I officially started my game publishing company, and being as though I am only 20, I have no connects to the gaming industry. Of course, I'm still going to do more internet research, but I thought why not ask folks who may have business hands in the gaming community? If anyone is questioning, my game prototype is basically done (I designed it myself) and its very detailed and I am going to start searching for a team to help me build it. Thank you. 
    • By lucky6969b
      like this?

      const D3DXMATRIX robertx = D3DXMATRIX(1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
    • By bojanzarnoski@gmx.de
      I want to get into coding again by programming a 2D platformer to get started, but i don't know if i should use Java or C# with the unity engine.
      I am pretty fit with Java, but with c# i have to start from scratch. What do you recommend and why?
    • By 3dmodelerguy
      So I have this code to create a textbox ui element with SDL2 and for the most part it works:
      #include <iostream> #include "TextboxUi.hpp" #include "../Engine/Text.hpp"; #include "../Utility/SdlUtility.hpp"; #include "../Engine/Game.hpp"; TextboxUi::TextboxUi(int x, int y, int width, int height, SDL_Color backgroundColor, SDL_Color textColor) { _background = {x, y, width, height}; _backgroundColor = backgroundColor; _textColor = textColor; } void TextboxUi::setValue(std::string value) { _value = value; } void TextboxUi::handleInput(SDL_Event &event) { switch (event.type) { case SDL_TEXTINPUT: { if (_isActive) { _value += event.text.text; _cursorPosition += 1; } break; } case SDL_TEXTEDITING: { break; } case SDL_KEYUP: { switch (event.key.keysym.sym) { case SDLK_BACKSPACE: if (_value.size() == 0) { break; } _cursorPosition -= 1; _value.erase(_cursorPosition, 1); break; case SDLK_s: { if (!_isActive) { _isActive = true; } break; } case SDLK_LEFT: { if (_cursorPosition == 0) { break; } _cursorPosition -= 1; break; } case SDLK_RIGHT: { if (_cursorPosition == _value.size()) { break; } _cursorPosition += 1; break; } case SDLK_ESCAPE: _isActive = false; _value = ""; break; default: break; } break; } default: break; } } void TextboxUi::enable() { _isActive = true; } void TextboxUi::disable() { _isActive = false; } void TextboxUi::draw(SDL_Renderer* renderer) { SdlUtility::setRenderDrawColor(Game::renderer, _backgroundColor); SDL_RenderFillRect(Game::renderer, &_background); // if there is no text Text would fail to create the surface and texture (not quite sure why) if (_value.size() == 0) { return; } Text text = Text("Assets/Fonts/Vera.ttf", 12, _value, _textColor); text.display(_background.x + 5, _background.y + 2); // @todo implement visual for text cursor } The one last thing I want to do before I call this textbox done for the time being is try to figure out how to simulate a cursor. At this point just getting a solid cursor would be final (though ultimately I would like to have it blinking. I have the cursor position so I know between which characters the cursor should be however I am not sure how to calculate that.
      Is there a way to calculate the width of a given string without actually rendering said sting to the screen with SDL2 / SDL2_ttf?
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!