Live data from Hacker News

Making Graphics Like it's 1993

staniks.github.io

91–100 of 169 posts

Re: Making Graphics Like it's 1993

#92
We randomly chose magenta as our transparent pixel for shareware games too!

I consider 1993 the last "good" year of the pre-internet age. The web didn't go mainstream until around 95, and 94 felt like a liminal year (dunno why). In 93 one could still wrap a plaid shirt around one's waist without fear of ridicule. Grunge and alternative music hadn't quite landed in rural America yet, although we didn't know what we were missing. The Telecommunications Act, Digital Millennium Copyright Act (DMCA), Gramm-Leach-Bliley Act, USA PATRIOT Act, and so many other regressive/draconian laws hadn't passed yet to create the wealth inequality consuming the American Dream today. Although the Grand Upright Music vs Warner Bros decision had happened in 91 in an attempt to destroy hip-hop for racist reasons under the guise of protecting copyright. The Rodney King beating had happened the year before, but the OJ trial was still 2 years away. We were blissfully ignorant of the very ignorance and hate that would put us on this alternate timeline. It was like living in the Shire before the War of the Ring.

I can't stress enough how games like Wolfenstein 3D and DOOM completely blew our minds. They came out about 6-7 years before The Matrix, so the closest conceptual framework we had for it was probably The Lawnmower Man. Virtua Racing and Virtua Fighter came out about that time, but somehow couldn't compare. I remember using a drafting program on a 33 MHz PC with a 16 color monitor in drafting class, and DOOM revealed that even then, computers were running hundreds of times slower than they were capable of (millions of times slower today).

If I could go back to any time with what I know now, it would be spring of 93.

Re: Making Graphics Like it's 1993

#93

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…

At least with SDL3, you don't even need the renderer or the texture anymore. SDL_GetWindowSurface to get the surface and SDL_UpdateWindowSurface to present. That's the more software-graphics you can get from my understanding of the library. SDL still does the double-buffering for you.

Re: Making Graphics Like it's 1993

#94

There is nothing wrong with using AI. What I don't like is to see claims like "no AI slop" And yet it's riddled with emdashes and language "by hand" Seeing the skills of the writer, he definitely should be able to, but then I don't understand the claim.

From the article they list a bunch of arbitrary constraints... > If this sounds unreasonable to you, that is because it is. Those listed, are tame. I don't understand this kind of faux modesty. > My goal was to build a complete, shippable first-person shooter using techniques that were common in the early 90s Goes on to explain how they used 3D blender...which wasn't available until 1998. A vanity cat project being t…

>Goes on to explain how they used 3D blender...which wasn't available until 1998.

In the early 90s, there was enough money in this kind of software that you could have hired a specialist 3D artist to use the software that was available at the time, e.g. LightWave 3D. When it's only a single-person project, I think it's reasonable to stick with what you know.

Re: Making Graphics Like it's 1993

#96
So refreshing to have this NOT read a few pageS IN; words to the effect of.. “and the I asked Claude to build most of it for me then set to tweaking a few parts at the edges before asking Claude to write up this blog post”

Re: Making Graphics Like it's 1993

#97
The last real graphic programming¹ I’ve done was in the late 80s targeting the Tektronics graphics mode of the Kermit terminal software on the PC.² It was all pretty much clear the screen and draw solid rectangles in 1-bit black and white. One of these days I’m going to join the twenty-first century.

1. I suppose some hand-written PostScript code might count as well, but I wouldn’t really count things like doing a simple function graph in python to explain something to my son as graphics programming.

2. This was for a DVI previewer running on an IBM mainframe running VM/CMS. As far as I know, this code is completely lost, which is probably a good thing.

Re: Making Graphics Like it's 1993

#98

Great article. I particularly enjoyed the approach to creating gibs. Although it was a tech demo, I created something like this around the mid 90s. One thing I did that I don't see mentioned in this article was I used 8x8 (or 16x16) light maps on the textures, which allowed me to easily have things like flickering torches and rockets that lit up the hallways as they shot down them. Lightmaps can also be used to "bake…

> I used fixed point math which optimized well. I feel like the idea of fixed-point is under-utilized and very under appreciated. There are loads of applications where this is a better choice, let alone more performant.

This was the choice that Knuth made in TeX and Metafont although it’s also at least in part because floating point implementations in the late 70s/early 80s were so inconsistent from one platform to the next that using native floating point couldn’t satisfy his requirement of identical output on all platforms (likewise, the variations of Pascal implementations meant that he also used a highly restricted subset of Pascal features and no dynamic memory allocation).

Re: Making Graphics Like it's 1993

#100
post #86

Earlier quoted context omitted.

With regard to floors, afaik even DOOM didn't do them correctly. With vertical walls, the perspective divide needs to be done only once per column of pixels for a given wall segment. For floors, unfortunately there's no such luxury, and if I remember correctly DOOM subdivided floors into patches, and only did proper perspective at the corners, and interpolated inbetween.

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).
Post reply on HN