Live data from Hacker News

Making Graphics Like it's 1993

staniks.github.io

101–110 of 169 posts

Re: Making Graphics Like it's 1993

#102

This is so great. Another fun trick we used in the 90s was palette animation -- by swapping the palette you can create incredibly cool effects at a low runtime cost.

I recall that Diablo 1 (and 2) has a lot of enemies that are essentially the same sprite but different palette. Is it the same trick?

Re: Making Graphics Like it's 1993

#103

If you want to play with software rendering, here's probably the shortest code that will get an ARGB8888 2D array from main memory to the screen efficiently for all platforms using SDL2 in C https://gist.github.com/CoryBloyd/6725bb78323bb1157ff8d4175d... you'll need to do the translation from a 320x200x8-bit palletized framebuffer to ARGB yourself ;) If you want to get inspired by what can be done with palletized fra…

Thank you for sharing this. There's a handful of very popular Quake forks already, but Planimeter publishes a Quake-VS2026 fork that doesn't introduce changes. The team is working on x64 builds, which requires replacing the old SciTech Mult-platform Graphics Library (x86 only) with SDL3 (or port scitech-mgl to x64, which I don't think will happen) and the last I understood, the software renderer may be dropped.

But maybe a software renderer and SDL_Texture could preserve it?

Re: Making Graphics Like it's 1993

#105
Maybe the recent final update to Destiny has already taken over my brain but if Marko is a Destiny fan, he has a great GitHub username.

This is an extremely detailed article on every level and I can’t wait to deep dive into it. Marko really nailed the “old” look but it still looks fresh and new.

Re: Making Graphics Like it's 1993

#107
Cool project! How hard was it to get the z levels (height) ??

I made a very similar project [0] in C 2 years ago, a chunked ray caster that could handle multiple height levels. Was one of my first C projects, pretty crappy but was fun.

Anyone have any ideas how to make it more memory efficient?

It’s full of bugs was just a for fun project

[0] - https://github.com/con-dog/chunked-z-level-raycaster/blob/ma...

Re: Making Graphics Like it's 1993

#108
post #2

This is taking a lot of inspiration from Doom, but the actual raycasting engine is more like Doom's predecessors, the most well-known of which is probably Wolfenstein 3D: perpendicular walls, constant floor and ceiling height. Wolf3D didn't have textured floors and ceilings because of performance reasons, but several other similar games had them. Doom and IIRC Duke Nukem as well used a BSP engine which was much more…

> Wolf3D didn't have textured floors and ceilings because of performance reasons, but several other similar games had them Blake Stone Rise of the Triad used later versions of the Wolf3D engine and had textured floors/ceilings > Doom and IIRC Duke Nukem as well used a BSP engine which was much more flexible Duke Nukem (Build engine) did not use BSP https://www.jonof.id.au/forum/topic-137.html#msg1548

Huh, I always thought RoTT was the first Build engine game.

Re: Making Graphics Like it's 1993

#109
post #86

Earlier quoted context omitted.

For floors the perspective divide is once per row, just like for walls it's once per column. The BSP may have led to some floor subdivisions, especially as it needs convex sectors. I don't remember if the engine would coalesce adjacent floor spans into a single one, but I hope it did.

That would only be true if a row (by which I mean a scanline) would be equidistant in view-space depth across its whole length, which is not quite true. While a column of pixels for a wall is (as long as you dont tilt the camera).

The code exists! https://github.com/id-Software/DOOM/blob/master/linuxdoom-1....

And it looks to me like we are mapping each row with a constant y, calculating the "distance" (thus scale factor) only once using just the vertical slope for the row.

Post reply on HN