Quick answer: Pygame anti-aliased text looking blurry on a low-res game? AA fights crisp pixel art — render with antialias=False and use a pixel-style font.
A 320×240 pixel-art game renders dialog with antialias=True and the text looks like wet ink. The AA pixels blend with the background unpleasantly.
Toggle Antialias Off
surf = font.render(text, False, color)No AA: pixels are pure font color or transparent. Pairs naturally with crisp pixel-art UI scaling.
Use a Pixel Font
Fonts designed at the target pixel size (8x or 16x grids) read clean without AA. Most TTF fonts are vector and rasterize to fuzzy edges at small sizes.
Integer Scaling
Render text at 1x to a logical buffer, then scale the whole buffer to display by an integer factor with nearest-neighbor. Preserves the pixel feel.
Verifying
Text reads sharply at the target zoom. No grey halos around glyphs.
“Pixel-art games want non-AA text. Antialias = False + pixel font.”
For multi-language pixel games, host a pixel font with the glyphs you need — default OS fonts in non-AA look terrible for non-Latin scripts.