Recently we made a pixel based game and started testing it. One of the testers plays using a 32 inch tv. They noted it looks a little off and fuzzy on the big screen. I wanted to put the game on XBox but now im not sure. I know I can adjust screen resolution and I found this doc to detect the hardware: Unity - Scripting API: DeviceType but I’m not sure if lowering resolution would fix it on big screen? Can big screen tvs support lower resolutions. Just not sure how to solve the issue. I’m not a pixel game expert. Any suggestions on how to fix fuzzyness aside from redoing the art? Would lowering resolution on tvs fix or reduce the issue?
if you dont set the game resolution to the native resolution of the screen it will be blurry, this is a problem of the unity software.
The only way to fix this is: detect the resolution of the screen and set your game resolution to that, or
if you know the game resolution, change the resolution on your monitor to the resolution of the game
unity cant force your screen to change its native resolution like other softwares can
No, this a problem with the project, not Unity.
Yes, you need to understand the devices you’re outputting to and change your output to match or rely on the devices native scaling functions.
You cannot change the native resolution of a device full stop, that’s a physical hardware thing. No software can do that. You can ask Unity to tell the graphics layer to select an output resolution but the native resolution is fixed; if they don’t match then the graphics layer or the target device scales/clips etc. Of course, this is only appropriate for full-screen modes not windowed modes.
No it wouldn’t. Most graphics layers or display devices use a somewhat simple linear upscaling/downscaling; actually more sophisticated than that but certainly not simple pixel-scaling.
No matter what, this isn’t really a 2D sub-forum subject TBH and is probably better suited to one of the graphics sub-forums or general discussion.
lots of old games like rpg maker force your desktop into 320x180 when you run them, it even scrambles all your icons and messes up your window sizes when you go back. Can unity do this? No it cant, that is what I am referring to.
A pixel art game running on 720p will look blurry if your desktop resolution is 1080p and you cant fix that unless you change the resolution of the game to 1080p, which defeats the point of changing resolutions ingame since you always need to match the resolution of the desktop anyway.
Unity can’t change the resolution? For reference: https://docs.unity3d.com/ScriptReference/Screen.SetResolution.html
Unity doesn’t do it though, it requests it from the OS graphics layer. Also, you’re confusing concepts here. The “desktop” resolution is NOT the native resolution (your words). The native resolution is defined by the output device i.e. the monitor or perhaps the iPad etc. The graphics resolution is defined by Unity but only in full-screen modes on desktops such as MS Windows will the graphics layer change the resolution output to the device. What the device does with it at that point is up to the device in question.
Trust me, I’m well aware of the technical details of how graphics work so I’m just going to leave further comments alone TBH.
the documentation you posted changes the game resolution, not the desktop resolution, these things matter on pixel art if you are trying to get pixel perfect and you need to change the resolution on the monitor of the user ( which many games do but unity does not.
I just have one question, will Screen.SetResolution force my monitor into the input resolution?
I’m sorry if this line of questioning rubs you the wrong way as I see you want out, but I have been trying to get an answer to this problem and it seems I cant get an answer from a unity dev and this thread seems like it will end just like the others.
I just feel like its misleading to everyone if you refute my post just because my terminology is incorrect, when you know unity cant do what I’m describing and that other programs are able to do it, its kind of bad faith tbh
( In this case forcing the display into a different resolution than the one currently set on their operating system settings - for example, having 1920x1080 on a desktop and opening an rpg maker game that forces your system into a 320x180 resolution to accomodate the game, and has real effects when you close the program - the icons on the desktop are scrambled and the windows are resized to very small)
I have no idea where you’re getting this bad faith (etc) stuff from. You’re also stating that I’m somehow misleading you when I’m stating facts with links which TBH I do not appreciate when I’m actually trying to help. If you use terminology and state something with it and it’s incorrect, how would I know what you’re actually referring to? If I misunderstand something you say then please tell me rather than state that I’m being devious or misleading.
Honestly, I have no idea where you get these things from.
Are you sure it isn’t the other way around? I have directed this thread to a more appropriate forum for sure but that’s it.
So why would a game engine be used to permanently set your desktop resolution? Nobody said it did that nor should it! This is about the resolution of a game window running your app. This is how, say, DirectX works! It’s the resolution of the game window which changes the window size in the current resolution. If your window is full screen then the output resolution of the GFX device is changed; your monitor will follow that output. In fullscreen, only resolutions your GFX device + monitor are capable of displaying are available. This is how OS graphics APIs work, always have.
Also to add to this hijacked thread; the OP isn’t referring to a windowed mode set-up. It’s a TV running a full-display app (at least this is what I read and interpreted) which is known as full-screen mode and the API I referenced is completely applicable.
Any problems with icon arrangement coming out of such a fullscreen window are OS bugs, not Unity bugs. This happens a lot in Windows, especially multi-screen and it happens on lots of things nothing to do with Unity. It’s actually frustrating how long this has been a problem in multiple Windows OSs. It’s why I permanently use DesktopRestore (no affiliation with Unity or myself).
Here’s some more bad faith telling you what isn’t true. ![]()
https://www.youtube.com/watch?v=-Zwk-C0BtEU
Also: http://www.aclockworkberry.com/managing-screen-resolution-and-aspect-ratio-in-unity-3d/
So in short because big posts suck:
-
You cannot permanently change your OS desktop resolution in Unity nor does it ever try nor should you expect a game engine to do this. Most platforms don’t even have the concept of desktop resolution XBox, Switch etc.
-
You can change the game window resolution both windowed/non-windowed. Non-windowed full-screen means the monitor displays that resolution. Only resolutions capable by your GFX card and display device can be selected in full-screen mode. Windowed resolution uses a proportional area of the current display resolution.
-
Rendering in a windowed resolution means you have a fixed resolution within the window to display to but that doesn’t in itself enforce you rendering pixel-perfect; that’s up to you and pixel-perfect features.
-
Monitors asked to display a certain resolution below their native (fixed in hardware) resolution will upscale the image and often this is blurry. 1:1 with the native resolution is what you should always use.
Thank You MelvMay very helpful information.