Every Pixel Art Game Has This Problem...

preview_player
Показать описание
How I fixed Pixel Snapping / Jitter in my game using a subpixel camera to achieve smooth pixel perfect movement.

Access my Subpixel Camera files by supporting me ❤️

Join my Discord server!

Buy me a coffee ☕

Business Email ✉

00:00 The Problem
00:41 My Game
01:18 True Pixel Art
02:53 Imperfect Pixel Art
03:40 The Cause
05:36 The Struggle
07:33 The Fix
Комментарии
Автор

We develop not because it is easy but because we thought it would be easy

TheSeaspear
Автор

This video basically approaches the discussion of pixel art as a medium vs pixel art as an art style without ever outright saying it

elliottrichmond
Автор

Making a whole ass video with the Activate Windows message on is based

NourArt
Автор

To me that's part of the appeal, just like how the pixels of the character change with each frame of animation instead of just sliding around like a motion graphic vectors.

DeltaPiss
Автор

one pixel art style i love is celeste because they have pixel perfect pixel art, and then render fancy lighting at a higher scale. so neat

sixtynotch
Автор

How to make a smooth camera for pixelart in Unity:

First step: Uninstall Unity

Juan_Laurino
Автор

I think this is definitely a matter of personal preference
a smooth camera in pixelart games has never bothered me, and i think i prefer the cameras movement to be pixel perfect
but to each their own!

oh, and definitely what CitrusBlitz said, whatever works best for your game ofc!

Kthnx
Автор

For me this is more of an aesthetic feature rather than a problem, it's like the jittery PS1 graphics, it part of the charm of that era of gaming.

NourArt
Автор

I like the jittering, it's a reminder that all the pixels on screen fall into a neat grid, which is incredibly satisfying for me.

NedInYaHead
Автор

Wait... this pixel snapping thing... is a problem? I always thought it looked fine, just a consequence of it being a pixel art game in the first place. I actually really don't like the smoother camera because pixels just don't line up. Subpixels just look so unnatural to me

TheXtremeBoltGuy
Автор

You call it a problem, I call it a feature!
But yeah, I get it. There's a bunch of problems that show up when you try to fit a low resolution, 1:1 render into a modern engine with fractional positioning (needed for physics!).
You showed the issue with parallax scrolling, but showed the solution in a flat plane. This won't fly with parallax, you'll have the same pixel crawl as before in the other layers. Other fun bits are:
- jitter in actors objects the player at the same speed but at a non-integer offset
- objects moving at an angle that's not a perfect diagonal
- objects moving in a perfect diagonal while the player moves horizontally or vertically sharing one axis

also, once you perfectly lock the smooth scroll to your character, you'll find out the character itself is moving in perfect pixels, so it looks like it's jittering because it constantly falls behind then catches up to the scroll. Animation might make this less noticeable, but a ship, bullets or even an animated character at high framerate with limited animation is going to look really bad when scrolling, which is why I'd rather add a CRT shader than make scrolling look smooth.

I know about these because I write pixel art games and I wrote a Unity asset to help with a lot of the common problems, so I'll just shill it here. It's my all-in-one pixel art solution for my own projects and I add anything I need to it. It's in the asset store.

perfect-retro-tools:
it comes with: an automatic scaler (skip the guesswork, just state your virtual screen size, supports non square aspect ratio!!), a virtual camera system (place many cameras, slide between them, track objects, smooth zoom and more), subpixel screen shake, an advanced input restrictor for arcade-feel movement, layer flicker (for old-school shadows and transparency), a visibility helper, a multiplane scroll helper, a transform snapper, a particle shader for pixel-perfect particles and a pooling solution.

MadsterV
Автор

Bro showed a problem i never considered a problem, then provided a fix for something many people dont see as an issue

TheSapphireStarOfficial
Автор

On this subject there's a near universal thing 2d games miss with camera smoothing, which is that unless you build in a bit of lead the player is always running ahead of the camera and so only about 1/3 of the screen is showing where you're going. Pushing the camera ahead in the direction of movement feels so so much nicer.

marcforrester
Автор

As someone who actually played games in the 90s and early 2000s that were 320x200 VGA on CRT, the pixel snapping scrolling was the only possible way so it actually seems right to me for a game that tries to emulate that style.

mikosoft
Автор

I don't want to be mean or anything....
But personally, I'm more annoyed by the Activate Windows sign than the Pixel Snapping Effect

rgi
Автор

I, personally, don't see this as a big problem. it better emulates the original pixel games (like SNES and SEGA Genesis). But it still depends on what type of pixel art game you are making. I do like the smoothness, but it only really works (in my opinion) for modernised pixel art games (regular 2d platformers with a pixel art design), but if you are going for a retro feel (Which i like a lot), the pixel snapping is great. Plus, for your solution, there are still some issues (this sounds a bit mean, but this is still personal preference). because the camera goes off-grid, the pixels on the sides and potentially the top and bottoms don't align with the pixel art, leaving sub-pixels, which I hate in pixel art games, especially if they are really visible.

TiggerTheTiger
Автор

I've never considered this an issue while playing, but your final solution looks pretty cool and I like it a lot! Good job!

zloboslav_
Автор

This is big, I really hope more people implement fixes like these

Literal
Автор

OMG thank you so much I litterally went trough this last week and found the same tutorial but couldn’t make it work you are a hero

DylanTheEye
Автор

The snapping is actually functioning exactly how pixels in a low resolution are supposed to function. However this is a more modern problem as in the good old days:

1) Old games on all systems used mainly integers as floats were really expensive back then. Once you deal with integers the scrolling will usually be more static in speeds and there won't be any unexpected rounding to nearest pixel.
2) Sharp pixels on modern high resolution displays with ghosting artifacts multiply the visibility of this movement. On CRT displays the pixels were smoothed out and the motion clarity of CRT output did not have any kind of movement artifacts at all (even OLED motion clarity is not as good as CRT).

If you want to preserve sharp pixels the moving individual layers with sub pixel level offset is pretty much the only way to work against the problem. Though then parallax layers can have pixel offset which does not align with other layers. Though it's a small visual price to pay if everything else stays pixel perfect keeping the pixel sizes the same.

xard
join shbcf.ru