In Defense of Fixed Function Pipelines...
⏲ 3 min
Every time I boot up a game from before 2002, something feels right. I'm from a generation which embraced next gen games, "Can it runs Crysis???" was the ultimate joke in my friend circle at the time. Still, I stick to older titles from the DX7/OpenGL 1.x era. I think that the visual are a lot more cohesive, like this era shaped a visual language that a modern engines did not support out-of-the-box anymore.
Yes, you can absolutely attempt to recreate the same design with vertex‑lit or unlit materials, exponential fog, low‑res textures, limited palettes, no normal/specular, dithering, mip bias, clamped UVs, retro post‑FX things (ULTRAKILL, Amid Evil, Cruelty Squad are great examples) but you are not enforced by the constraints that made such a distinctive look in my opinion.

Cruelty Squad, Steam Page - Consumer Softproducts, 2021
Fixed function pipeline enforced uniformity, every object looked the same, models too. Every pixels obeys the same rules : fog equations, bilinear filtering and gouraud shading (Drivers aside). You could attempt multi-pass techniques to cover some quirks like Unreal 1 (Go play it, it's on InternetArchive!).

Unreal, GOG Page - Epic Games 1998
Artists knew this limitation was a real problem and attempted as the best as they could by iterating on the art style. They had to pack details, mood and storytelling onto a square that gets blurry using bilinear filtering, a function which interpolate pixels. This gradient make the texture seems almost painterly.
Next time you dismiss an older pre-2002 games graphics as "dated" or "ugly" at least try to take a close look. Maybe, just maybe, you may find a visual that speak to you.
Until then, I'll drop my pink tainted nostalgia glasses with rainbow unicorns and I'll continue to mess around on modern titles.
See you next time.