this post was submitted on 29 Mar 2024
595 points (95.4% liked)

Technology

59429 readers
2813 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 98 points 7 months ago (6 children)

All this text, yet nowhere its mentioned whether it runs Doom. Clearly the most important thing to run on any device

[–] [email protected] 10 points 7 months ago (2 children)
[–] [email protected] 1 points 7 months ago

Do we even have anything that can run Crysis yet?

[–] [email protected] 5 points 7 months ago (1 children)

Asking the real questions. Anything can run Doom nowadays. I've seen it run on a pregnancy test.

[–] [email protected] 4 points 7 months ago

yep, doom runs on literally anything. On Fridges, Toasters, Pregnancy Tests, and more.

but Crysis.. thats a litmus test.

[–] [email protected] 1 points 7 months ago (1 children)

At this point I'm convinced Doom can run on anything

[–] [email protected] 3 points 7 months ago

There's a real challenge out there for the Cray 1. On paper, it appears fast enough, but the architecture makes it difficult to impossible in practice.

[–] [email protected] 15 points 7 months ago

Nowadays I've been seeing lots of people porting Super Mario 64 as the challenge, as Doom is honestly beyond trivial at this point. I'm totally onboard, SM64 is a fantastic game, it shows off traditional shaded polygon and rasterization performance pretty well, and it's just plain fun to spite Nintendo.

[–] [email protected] 52 points 7 months ago (2 children)

OG Doom does not support (or need) hardware 3D acceleration. It's not a polygonal rendering engine.

Relatedly, and probably not to anyone's surprise, this is why it's so easy to port to various oddball pieces of hardware. If you have a CPU with enough clocks and memory to run all the calculations, you can get Doom to work since it renders entirely in software. In its original incarnation -- modern source ports have since worked around this -- it is nonsensical to run Doom at high frame rates anyhow because it has a locked 35 FPS frame rate, tied to the 70hz video mode it ran in. Running it faster would make it... faster.

(Quake can run in software rendering mode as well with no GPU, but in the OG DOS version only in 320x200 and at that rate I think any modern PC could run it well north of 60 FPS with no GPU acceleration at all.)

[–] [email protected] 23 points 7 months ago (1 children)

OG Doom engine uses pre-built lookup tables for fixed point trigonometry. (table captures the full 360 degrees for sine and cosine with 10240 elements)

[–] [email protected] 12 points 7 months ago (2 children)

Tons of software did this for the longest time. Lookup tables have been a staple of home computing for as long as home computers have existed.

[–] [email protected] 2 points 7 months ago (1 children)

I really like reading people talk about how better programmers in a more civilized age could do things.

[–] [email protected] 5 points 7 months ago (1 children)

Anyone who has ever had to maintain old code will tell you that this more civilized age is right now and that the past was a dark and terrible time.

Seriously, there were no standards, there was barely any documentation even in large organizations and people did things all the time that would get you fired on the spot today. Sure, you had the occasional wunderkind performing amazing feats on hardware that had no business of running these things, but this was not the norm.

[–] [email protected] 5 points 7 months ago

I didn't have to maintain it, actually I haven't ever worked as a programmer. But I've patched a few FOSS things abandoned around 15-25 years before that to work as a hobby activity, some kind of digital archeology.

I think people also do things now for which they'd be fired on the spot 20 years ago. Everything changes.

I suspect what you call "no standards" means in fact "different standards", but that's just a cultural difference. Some project from 1995 may use "Hungarian notation" in variable names, well, that was normal then.

That adequate version control and documentation are, eh, a bit more of a norm now, - yes.

[–] [email protected] 4 points 7 months ago

And CPUs still do it to this day. Nasty, nasty maths involved in figuring out an optimal combination between lookup table size and refinement calculations because that output can't be approximate, it has to work how IEEE floats are supposed to work. Pure numerology.

[–] [email protected] 9 points 7 months ago (2 children)

Interesting, learned something new from my silly comment!

[–] [email protected] 12 points 7 months ago* (last edited 7 months ago) (2 children)

Also, this'll blow your mind too, Doom wasn't actually 3D. It was a clever trick involving the lack of the ability to look up and down. They used some sort of algorithm (I forget how it works exactly) to turn the 2D walls, doors, and platforms that appear from the top-down view in the map into vertical stacks of lines that "look" like 3D objects in front of you. The sprites are also all just 2D projections overlayed onto the game.

This system introduced all kinds of wierd quirks in the game, like the trippy effect you get when you activate no-clipping and clip through the edge of the map.

[–] [email protected] 4 points 7 months ago (1 children)

Most notably perspective only gets calculated on the horizontal axis, vertically there is no perspective projection. Playing the OG graphics with mouse gets trippy fast because of that. Doom doesn't use much verticality to hide it. Duke Nukem level design uses it more and it's noticeable but still tolerable. Modern level design with that kind of funk, forget it.

[–] [email protected] 3 points 7 months ago (2 children)

I learned recently that the Jedi Engine for the original Dark Forces had an additional trick. You could have a hallway over another hallway--which Doom cannot--but you can't see both hallways at the same time. So there might be a bridge over a gorge, but the level design forces it so it's a covered bridge, and you wouldn't have an angle where you could see inside the bridge and down into the gorge.

[–] [email protected] 1 points 7 months ago* (last edited 7 months ago)

Doom64 accomplished this by adding a silent elevator sector type, so it could have bridges that appear to be floating "over" an underpass that you could walk through but you could also cross over the top. This, of course, immediately got turned into marketing bullshit trying very hard to imply that "Doom64 was fully truly 3D, and the Doom engine could now do room-over-room."

Which it can't. These weren't bridges, they were cleverly disguised elevators.

What you eventually notice is that you can never look at one of these bridges from below and then from above, or vise-versa, without first passing through a tunnel or building that completely obscures your view of it. When your view is obstructed, you cross over a trigger somewhere that causes the elevator to, without making any sound (because elevator sounds were hard coded into original Doom), zip up to its cross-over-the-top position or its walk-under-the-bottom position. It could only ever be in one state at a time, never both.

[–] [email protected] 2 points 7 months ago* (last edited 7 months ago)

Duke Nukem can do that, too, both it and Dark Forces use portal engines while Doom is a BSP engine. With a portal engine you're not bound to a single global coordinate system, you can make things pass through each other.

Not actually a feature of the renderer you can do the same using modern rendering tech, though I can't off the top of my head think of a game that uses it. Certainly none of the big game engines support it out of the box. You can still do it by changing levels and it wouldn't be hard to do something half-way convincing in the Source engine (Half-Life, Portal, etc, the Valve thing), quick level loading by mere movement is one of its core features, but it isn't quite as seamless as a true portal engine would be.

[–] [email protected] 7 points 7 months ago

Like for instance, monsters and other sprite objects in the original incarnation of the Doom engine have infinite height. So you can't step on top of, or over, any monsters if e.g. you are on a ledge high above them. That's because they're 2D objects, and their vertical position on the screen is largely only cosmetic. This is why you can't run under a Cacodemon, for instance.

"Actors" (monsters, etc.) in Doom do have defined heights, but presumably for speed purposes the engine ignores this except for a small subset of checks, namely for projectile collision and checking whether a monster can enter a sector or if the ceiling height is too low, and for crush damage.

This was rectified in later versions of the Doom engine as well as most source ports. By the time Heretic came out (which is just chock-a-block full of flying enemies and also allows the player to fly with a powerup) monsters no longer had infinite height.

[–] [email protected] 5 points 7 months ago (2 children)

Here's a video that explains the limitations of the DOOM engine and with it also briefly how the rendering part of it works (from 4:08 onward) in a very accessible manner:

https://youtu.be/ZYGJQqhMN1U

If you want a more in-depth explanation with a history lesson on top (still accessible, but much heavier), there's this excellent video:

https://youtu.be/hYMZsMMlubg

[–] [email protected] 1 points 7 months ago

Ooooo I absolutely want these—thank you!

[–] [email protected] 2 points 7 months ago

Here is an alternative Piped link(s):

https://piped.video/ZYGJQqhMN1U

https://piped.video/hYMZsMMlubg

Piped is a privacy-respecting open-source alternative frontend to YouTube.

I'm open-source; check me out at GitHub.

[–] [email protected] 15 points 7 months ago (1 children)

Original Doom was not GPU accelerated.

[–] [email protected] 15 points 7 months ago (1 children)

Original Doom was not GPU accelerated.

Neither was original Quake. GLQuake was a later update. The original was for DOS using only software rendering.

[–] [email protected] 6 points 7 months ago (1 children)

Yup, and most people played it at something like 10 to 15 fps on hardware of the time. Same with DOOM a couple of years earlier.

[–] [email protected] 4 points 7 months ago* (last edited 7 months ago) (1 children)

With resolution 320x240. And I do not remember how many colors. 256?

[–] [email protected] 7 points 7 months ago

I do not remember how many colors. 256?

Yes with a fixed color palette of mostly shades of brown and green.

[–] [email protected] 73 points 7 months ago (2 children)

I'm gonna go out on a limb and say if it can run Quake, it can safely run Doom as well.

[–] [email protected] 1 points 7 months ago

And if it can run Quake 3, it can likely run Jedi Knight II: Jedi Outcast.

Which would make it worth the effort for me.

[–] [email protected] 19 points 7 months ago (3 children)

I’m gonna go out on a limb and say if it can run Quake, it can safely run Doom as well.

The original Voodoo 1 graphics card could run Quake, but NOT Doom. Thanks Obama!

[–] [email protected] 11 points 7 months ago (1 children)

Only because the Voodoo couldn't do 2D at all - it had a passthrough on the back, so you'd connect your 2D-capable graphics card to it.

[–] [email protected] 5 points 7 months ago

Oh, I'm aware! It just felt funny that the very first consumer dedicated 3D graphics card prove that poster's assumption wrong. In any other case they'd be right. In fact, in those days in 1996, there was the SECOND graphics card that had a 3D processor that DID do 2D graphics too, the Sierra Screamin' 3D (with the Rendition Verite GPU). It was about 2/3ds the cost of the Voodoo 1 (3DFX) even if the Sierra wasn't quite as fast. You'd buy the Sierra because you wanted dedicated 3D but couldn't afford a high end 2D card and the high end 3D card.

[–] [email protected] 2 points 7 months ago (1 children)

As an enormous Id Tech nerd that's too young to know this, this is very interesting!

[–] [email protected] 2 points 7 months ago

IIRC the Voodoo 5 6000 also required an external power supply and people thought this was crazy at the time.

[–] [email protected] -2 points 7 months ago (1 children)

Fuck that could be interpreted very racially with regards to Obama

[–] [email protected] 3 points 7 months ago (1 children)

You're going to have to explain that to me. I'm not seeing it.

[–] [email protected] 2 points 7 months ago

Obama seen as a black person could be accused of being able to do 'black magic' or voodoo.

It's just a dumb thought, nothing more to it.