D3wasm 0.4 – Doom 3 in WASM(wasm.continuation-labs.com) |
D3wasm 0.4 – Doom 3 in WASM(wasm.continuation-labs.com) |
Also some of the planes in mobile Xp are terribly simplified (A320), the controls suck and the clouds render in pink on iPad Mini 6.
As your crosshair approaches the screen, it turns into a mouse cursor, and you can control the computer as you would a regular desktop PC. It just feels so natural.
I'm surprised that this wasn't copied more by other games. Probably because it doesn't work as well on consoles with a controller.
In Doom 3, you're still in control of your first person character, which is awesome.
Try it in the demo linked above, if you skip the cutscenes you can find a screen within the first minute of gameplay or so.
edit: scratch that, thing runs even on phone at 60fps
Oh man that makes me feel old. I remember first playing this on my tiny 12" powerbook from 2004... and back then It felt like a heavy weight that shouldn't quite be running on that machine.
I was an early adopter of the first Intel MacBook; and let me tell you - the difference (once we had a Universal Binary) was like riding a horse vs. driving a car.
Other than Final Cut Express and Logic Express performance, I found DOOM 3 to be one of the first major signs that Intel was meant to be and here to stay.
beautiful talk by carmack https://www.youtube.com/watch?v=Q1q49GxsPWM&t=4s&ab_channel=...
Also I wouldn't put light reflection in the list of idtech 4's achievements if we're talking more than one bounce, it literally does not do that. idtech 2 did, precalculated of course.
It was a significant leap, but it was the right time for it. In less than a year you saw other games doing the same thing or better - they had clearly been working on it as well. Doom 3 was just the first to come out, and Carmack did a lot to spread knowledge about it immediately (as he frequently does, which is wonderful).
I'm used to seeing Doom running on all kinds of platforms, but it's inspiring and humbling to see Doom 3 - a game I have vivid memories of being in awe of - running in a browser. It really highlights how far tech has come when I wasn't looking. In many ways, my old eyes don't see much different from Doom 3 high end graphics and the graphics of modern games.
I remember seeing primitive Flash versions of Half-Life, Quake and Return to Castle Wolfenstein running in a browser ten or so years ago and I thought that was amazing.
On a sidenote, I unironically love the dialogue in this game - it's so bad it's good:
Guy 1> I'm tired of running damage control every time he makes a mess.
Guy 2> Right, you're the control. And if that fails, I'm the damage.
I think Doom (2016) and Doom Eternal are far more successful as Doom games than Doom 3. Like the original 90s games, they're fast-paced, with wide-open combat areas and hordes of enemies on screen at the same time. The technical choices they made with id Tech 4 meant that a game like that wasn't really possible with the hardware available in 2004.
Maybe they just shouldn't have called it Doom? But its design as a slow-paced horror game, what with all the tedious monster closets, doesn't compare well to Resident Evil 4, which came out only a few months later.
Took a while but he was right.
WebGL warning: <Create>: WebglAllowWindowsNativeGl:false restricts context creation on this system. d3wasm.js:1:156185
Failed to create WebGL context: WebGL creation failed:
* WebglAllowWindowsNativeGl:false restricts context creation on this system. ()
* Exhausted GL driver options. (FEATURE_FAILURE_WEBGL_EXHAUSTED_DRIVERS)
Uncaught TypeError: GLctx is undefinedIt's early, but this is the future. No need for a console/native build, just pop open a browser and jump in.
What's the best version of Doom 3 these days to use on Apple Silicon?
When I think of Amazon/Tesla, I always associate it with early 2000s era science-fiction videogames.
It's certainly the use-case that received the most love.
I've personally used Sokol for a number of projects and it has been great. You get something much leaner and meaner compared to the Emscripten port of SDL, which otherwise seems to be the "default" when people do these things.
That same year Quake 4 launched using the same engine on Xbox 360.
Yeah, I always was perplexed by that tendency in Doom3… I mean, I get that lighting calculations aren’t tracing the effects of light past the first surface it hits, but does it have to be black when there’s no lights hitting a surface? Couldn’t they have done a cheap approximation of “ambient light” based on how many lights there are nearby, and use that light level as a minimum for totally occluded surfaces?
I remember reading that the choice to use black was literally a performance optimization because the renderer got to fully skip drawing surfaces that were fully occluded and it saved some render time. Then I also read that it was a design choice to give it a more panicked environment because you couldn’t see what’s in the shadows… but it always looked clunky to me, seeing fully black areas when there’s clearly a lot of reflective scattering surfaces around.
In any case, while I like Doom 3 I am glad the series didn't go in that direction afterwards. When lukewarm Quake 4 came out I was beginning to worry that id had lost its touch... luckily Doom 2016 saw a return to form.
I think it was E1M3 or something that had a large room whose lighting slowly pulsed at about half a hertz. With about 15 demons, that room was fucking unpleasant. In Doom 3, you’d just whip out your flashlight — no biggie.
As to views on the end product as a whole: opinions differ, ridicule seems unwarranted.
Couple this with the fact that developers won't have to pay a 30% fee for distribution on the web, and you have the recipe for the next big games platform that's hardware agnostic by default. Very disruptive stuff.
Not entirely accurate. Narbacular Drop, the first prototype for Portal (that caught Valve's attention and they hired the devs to recreate the tech in Source engine) was released a year before Prey, in 2005.
Doom 3 on the other hand is different; you very rarely have more than one enemy to beat at a time. That single enemy can absolutely shred you if you are not very careful, you have to consider each engagement carefully. The darkness and blood are tuned to intensify that "fear" feeling. Rooms are very small, limiting your ability to dodge, almost to the point of inducing claustrophobia.
Painkiller was released almost as the same time as Doom and was way more action oriented, even tho it contains its fair share of gore.
It might be just me being overly frightening but I clearly remember 14y old me playing Doom at night with my headphones on and begin scared as fuckin hell when something appeared out of nowhere making guttural noises.
If you know how to strafe, and get to the point that you are habitually doing it almost every second of play, Doom is an action game where you are grossly overpowered compared to your opponents, more or less. To even slow Doom guy down you need tight corridors to cut his maneuverability down and enough enemies to clog him up even so. In open space the only real threat is being plinked away by the undodgeable hit scan weapons; high level play with speedruns involves a lot of managing that and hoping for decent luck. The non-hitscan weapons for them are, to quote a popular Youtuber, super easy, barely an inconvenience, which ironically makes the "weakest" enemies actually the most dangerous in the game in most places.
If you don't know how to strafe, which was very common at the time since we were all new to 3D spaces and even the ones we had used before may not have had a "strafe" option, Doom becomes much more a horror game. As others are saying about how Doom 3 gives you the choice of "seeing" or "shooting", but not both, Doom without strafing gives you the choice of either dodging or shooting, but not both. Shooting becomes a contest of nerves because you're committed for a second or two... to dodge an incoming missile involves turning, then moving. And that move is either "forward", vectoring into the oncoming missile, or backwards, vectoring away but heading away from your field of vision.
I remember both modes now, both playing it back when Doom I was the only release and I played the shareware, and I saw the "strafe" option and had no idea what it was or why I would use it, and playing in later years when strafing was simply part of my 3D "vocabulary" and I did it instinctively. It's almost two different games.
I suspect even at the time, the developers of Doom weren't used to strafing either, and in a weird way it has contributed to its classic status. If they were it would have been balanced much differently.
The same things that make it a gaming classic that people are still playing to this day are also gross violations of the current state of the art of game design and balance... the reader is invited to conclude from that statement whatever they like.
Doom 3 plays very different to Doom 1&2.
Doom (2016) and Doom Eternal gameplay is much closer to Doom 1 and 2. Both are very "push-forward" shooters.
Descent was based on a portal and cell renderer that used a unit cube with limited orientations as the cell. This let them simplify and pre tabulate some of the rendering math.
The PVS precalculation done for quake levels is effectively a portal renderer.
Unreal's software renderer needed portal rendering to limit overdraw, so the engine was based around it.
Descent can't do that.
There's nothing particularly novel about Portal (the game) style portals in rendering. Racing simulators did the exact same thing for rear view mirrors for decades prior. It's just another transform in the scene graph clipped to a subscreen area.
I don't think I saw a game before Doom3 that was quite like that.
The other cheap trick was to make half of all maps so dark you need a flashlight, but make it so that you couldn't use a weapon while the flashlight was out. IIRC the very first Doom 3 mod was the one that fixed that, and it was called simply "duct tape".
Another gem of a game I think a lot of people overlooked that has some similarities is Natural Selection 2. This is a sort of aliens vs space marines FPS and RTS hybrid. It never really blew up but still has a community.
Don't get me wrong, it's a technical masterpiece, but one of execution rather than innovation.
It's main feature was dynamic lighting and shadows, which it accomplished with dynamic lights, normal maps and stencil shadows.
Dynamic lights and normal maps were nothing new even back then, I remember multiple titles using them, but not this well and not to this extent.
Stencil shadows were kind of unique, they worked by extruding the geometry from the light's perspective, and figuring out what was inside the light's shadow by counting front and back faces.
Unfortunately, since they used geometry, they looked really blocky and sharp, with no smooth edges unlike shadow mapping.
Imo they looked kind of bad, a step down from the beautiful pre-rendered lightmap shadows we enjoyed years before.
From memory, what Carmack was advocating for in this period was like an updated version of SGIs hardware, fixed function and able to chew through a staggering number of simple triangles per second. Complex renderings would be built up by compositing lots of passes. Stencil shadows reflected that tradeoff. But shadowmaps with an increasing number of tweaks proved much more practical, and design wise no penumbra is indeed a tough one to swallow. And then GeForce came along and pretty much ended any debate on commplex shaders vs lots of simple triangles.
Using stencil shadows today, or their shader described equivalent, might be an interesting aesthetic choice for a horror game though.
This is in sharp contrast to Half Life 2 released at a similar time, which had far more enemies and NPCs on screen at one time as well as much much larger maps to explore. I think in some ways Half Life 2s visuals have honestly dated better despite the less ambitious technology - the larger and more varied maps its lesser performance requirements permitted help a lot.
It looks nice, when you can see what's happening, otherwise it's a collection of good ideas and tech executed badly.
https://fabiensanglard.net/doom3/renderer.php at the technicql level there were some cool advances and the game in its production definitly felt like a leap forward that only a few game matched after (i could say mgs 4-5 and death stranding are close ones, final fantasy 15 while very weak story wise had others, but definitly no fps did what doom3 did)
Doom 3 as a game sure looked cool, though. The flashlight blew my mind back in the day.
It wasn't really a good setup even in Wolf3D, but it took some time for the gamers to figure that out, and for those findings to percolate as the defaults in newer games. Even Quake (1) didn't have mouse look + WASD enabled by default. I think part of the inertia was that arrow keys were so ingrained as navigation by design (they're arrows!) that abandoning them just didn't make sense.
I don’t know if that’s fair. Doom had a timer in it and was built to have speed running in mind (even if that term hasn’t yet been coined).
There are other moves that developed much later.
I'd also observe that biologically, "strafing" is fairly hard, and the idea that you can strafe at the exact same speed you can run forward, safely, for long periods of time, is absurd. What we have instead is faster turning than keyboard controls offer, and more flexibility in general, but not literally the ability to "strafe" at 90 degree angles. It's an adaptation to limited 3D environments. (Strafe + forward gives a more realistic 45 degree angle of shoot to movement. I think in reality that would still be a fairly extreme thing to maintain all the time, but it's closer to realistic. 90 degrees is just absurd.) As it is implausible, it is perhaps not surprising it took a while to become popular.
Narbacular Drop is like, literally the first 3D game ever released that allowed dynamic creation of portals at runtime.
Dynamic portals are literally the topic of this specific thread of comments. Here's the bit I originally replied to:
> [Prey] had portals before Portal.
Then you showed up conflating dynamic portals with compile-time map rendering, and now you're saying that dynamic portals, the very subject of this discussion, aren't worth talking about, because static portals, the preceding tech, existed earlier, even though dynamic portals clearly introduce fundamental design space as popularized by the critically-acclaimed game Portal.
The word "render" appears in your reply to my first comment six times, which is a lot in a discussion that is not at all about rendering.
Please correct any misunderstanding here on my part.
I did not. Reread.
"Dynamic Portals" as you term them are nothing more than the combination of a transformation matrix and a screen space clipping region in the context of a recursive approximate depth first renderer, a combination that was utilized by MANY MANY games before the one you're apparently cheerleadering. And this is exactly what I'm talking about, but you're failing to catch the specifics of what I'm actually saying out of apparent defensiveness over this one game.
You are still stuck repeating "renderer", even though rendering is still not the topic of discussion here.
No amount of recursive matrix transformations will net you the gameplay design space of actual dynamic portals.