How DOOM fire was done
fabiensanglard.net
fabiensanglard.net
http://www.pouet.net/prod.php?which=15071
Old discussion:
https://news.ycombinator.com/item?id=15828773
More info here:
http://www.iguanademos.com/Jare/wp/?p=2756
https://www.hanshq.net/fire.html
https://www.gamedev.net/articles/programming/graphics/simple...
I’m impressed!
For a time I considered writing only one-pager that would entirely fit on an iPad screen without need to scroll (like an actual granite tablet). It is unpractical but keeps coming back to me every times I scroll down.
Wolfenstein 3D, May 1992 -> Doom, December 1993 -> Quake 1, June 1996 -> Quake 2, December 1997
In the span of five years, they went from:
Wolf: https://i.imgur.com/1gGewDp.png
Doom: https://i.imgur.com/6CqvrLg.png
Q1: https://i.imgur.com/6wZg8NG.png
Q2: https://i.imgur.com/4Lxtg4f.jpg
The leap forward between the release dates of Doom and Quake 2 in just four years is particularly impressive.
I remember some years after quake 2 was out (99ish ?) a friend showing off his new computer by actually playing quake 1 with all the bells and whistles turned on.
So yes the engines did develop quickly. Much quicker than the PCs of the day in fact.
*being school kids, these weren't gaming PCs, these were for 'homework' and 'research'.
Still, Q2 was perfectly playable even on below-average PCs at the time of release, if you were willing to stick to the same resolution as Doom (i.e. 320x200).
When Wolf3D came out in May 1992, its minimum spec targeted the installed base of 286s, and a 50Mhz 486 was bleeding edge. When Doom was released in Dec 1993, you could buy a Pentium. (And if you kept it till '96, that Pentium could manage Quake at 320x200).
I agree there was a bifurcation in the late 90s when 3D hardware acceleration arrived (see the colored lighting and texture filtering in the Q2 screenshot). Quake 1 was getting patched with hardware rendering up until Quake 2's release, likely the bells and whistles your friend showed off :)
Wolf, 1992: 386, 4 MB memory, 8 MB disk
Doom, 1993: 486, 8 MB memory, 40 MB disk, Sound Blaster Pro/compatible
Q1, 1996: 75 MHz+, 32 MB memory, 128 MB disk, SBP/c, GeForce 6200 LE / Radeon Express 1200
Q2, 1997: 90 MHz+, 32 MB memory, 32 MB disk, SBP/c, 4x CD-ROM, GeForce 6200 LE / Rage 128 Ultra 16 MB
Which isn't to knock the awesome folks at id at all! Just, it was a heady time on both the hardware and software sides.
Most of those are on the other side of the pre-internet chasm though, so not much accurate info.
Thanks for correcting!
https://slm-assets1.secondlife.com/assets/8685509/lightbox/N...
For me, it came after I was already hooked, but it certainly added a whole new dimension, in a sense that you could now achieve impressive things in one-two evenings of coding that could be shown to others. I remember making the nails bounce off the walls, for example.
In some ways it reminds me of Slime World - mapping the world in your head becomes an important feature.
This does not seem to be the case with newer games, as if most players didn't like "finding their way back" to a place they have visited before, and prefer a linear progression instead.
This does not seem to be the case with newer games, as if most players didn't like "finding their way back" to a place they have visited before, and prefer a linear progression instead.
People don't mind the backtracking so much -- the "Metroidvania" genre has never been so popular! Exploration is, generally speaking, fun.It's the tedium of making one's own maps (either mentally, or on paper) that gamers generally don't have a lot of time for these days.
Descent's 6dof control system rather counted against it in the days when people had keyboard, mouse and two axis joysticks. I remember struggling with it a lot, even trying two sticks at one point.
DOOM was also more memorable in its black metal aesthetic - the music and gory graphics. The E1M1 theme will stick with me while I can't remember a note of descent.
I'd love networked descent with voice chat (if that even exists!)
(For those who haven't heard of it https://playoverload.com/ , it's a well-regarded spiritual successor to Descent from the original Descent creators.)
I may go back to it the developers ever allow for community created multiplayer levels, allow folks to join multiplayer games in progress, or begin to execute of their backlog of other multiplayer feature requests and fixes from the community.
Check out the Descent Champions Ladder[2] if you're interested in heads up 1v1 play. If multiplayer anarchy (like the glory days of Kali) is more your thing, check out the Descent Rangers[3], who play organized multiplayer games nearly every day. The best way to meet up with folks committed to playing multiplayer Descent is to hop on to the Rangers' mumble[4] server and start chatting.
Descent Overload[5] is a modern, fun, updated version of Descent by some of the same creators, but the focus is not on multiplayer, and as a result the experience suffers somewhat.
[0] https://www.gog.com/game/descent
[1] https://github.com/CDarrow/DXX-Retro
[2] http://descentchampions.org
[4] mumble.descentrangers.com:6370
Once joysticks with a twist axis were a thing the twist became roll and up/down moved to Q/E).
Multiplayer Descent was _way_ more fun that DOOM, in my opinion (specifically because of the 6dof... you could sneak up on people from any direction).
But Wolfenstein had lower requirements by not supporting the same amount of geometry variation.
Hovertank/Catacomb were released even earlier than the two and done with some of the same tech as Wolfenstein I believe.
I’d haul my 486 box on a train to the next city just to play it, for hours into the night.
Descent never did that to me.
It was technically fantastic, but didn’t have the atmosphere, or the multi-player. And after playing for a while, it also made me nauseous. ;-)
"Hoo ta ta" "Ay eeeeeeeee!"
I may not remember what I had for breakfast this morning, I can remember sound effects for a computer game I havent played in 20 years :)
Edit: Thought you meant Wolfenstein 3d when you mentioned original Wolfenstein. I cant remember the sound effects for original Wolfenstein.
Was it more fun?
If Descent was an SUV loaded with feature and cup holders, Doom was a sports car focused on raw performance and driving pleasure.
Both impressive but Doom is just a visceral blast in ways that few games can match.
Also, I personally found myself getting lost and turned around way more often in Descent than I did in Doom. That last part of the mission where you had to fly back to the exit before the reactor exploded was always the hardest part.
Doom scared the hell out of me. It changed my life.
I think between these two, some barrier in believability was crossed. Part of it was technical, but the art and the darkness of Doom also made a big difference.
Doom was and still is unique. Very simple to play, fast and dark.
Later I loved to play Terminator Future Shock. The first game with such large and open levels for me. It was 3D and great to play. But it was slower and so the gameplay was very different.
To be technical better is just "technical better" and not "all better".
Search for "descent speedrun" on YouTube and then do the same for Doom. The dynamics make a completely different game.
Doom's gameplay was better. Regardless of the graphics, Doom was more fun to play. Doom is actually blazing fast: not as for just rendering but for gameplay and player movement. You can zip around the levels at inhuman speeds, and this allows you to handle more enemies, swarms of them, at once. Doom is really a scary shoot'em-up in 2D while Descent was of a completely different nature.
The "real" 3D and the "real" 3D controls in Descent made moving around more difficult. Thus, the levels were created differently for Descent and it was also played differently.
Unlike Doom you wouldn't have large open spaces to contain dozens or hundreds of enemies. Instead, you would encounter a small handful of enemies at a time. Much of Quake and Doom 3 also suffered from the lack of this as the player speed is more realistic, preventing the fun inhuman maneuvres which could create a lot more fun.
Similarly the gameplay, due to moving around in 3D, meant more work at the controls of Descent. Doom is basically a 2D game which allows for faster movement as only having two axis is more easily mastered. Being unrealistically fast enabled a lot more tactics to be used in Doom. Also, most people played Doom keyboard-only back in the 90's which only served to give Doom a lot more edge.
Nailed it. I remember thinking about the movement options in Descent and thinking this was the pinnacle of gaming.
... but Doom was more fun. Descent was hard to play, I remember thinking a joystick would fix all my problems of crashing into a wall and having to turn around, it didn’t.
Of the two though, I miss Descent more. We have many 3D fps land fighting games and far fewer 6dof ones. Still waiting for the reboot Descent Underground[0] to get released. Avoiding all the early release stuff to savour the surprise.
This is what I cared to see.
The rest was not a mystery and seems like a pretty simple math/logic problem.
Although, now that I type this out, I am thinking the wind would be simple too...
Can anyone explain why the interest? I imagine there are college kids who do this type of logic.
anyways, you see that "dst = src - randIdx + 1" line? that's what the "reader" needs to play with. right now "randIdx" is 0, 1 or 2. when it's 0, "dst" is one pixel to the right of "src", when it's 1 "dst" is at "src", and 2 is to the left. also remember we are placing it "below" because we are moving up, so we do "firePixels[dst - FIRE_WIDTH] = ...". hope that helps.
this article has renewed my interest in demo scene effects. canvas2d seems very friendly now. last time, i had a hard time with the animation boiler plate, manipulation of the canvas element and colors. colors manipulation seems to still be awful. i see Fabien had to write 15 lines of code for palette conversion. but that createjs library makes many things easier. hope Fabien can go through other popular effects... or maybe i should lol : )
Even Claybook is based on Unreal, just with heavily customized rendering and physics systems.
Lead developer: https://twitter.com/SebAaltonen/status/977195448132775936
That you're using a handrolled engine is fine, I'm sure your company knows what they're doing. But in the context of this post, and for people who'd like to start game development/design, saying that most devs write their own engine is in my opinion damaging, as I really don't think that most smaller studios do. It increases the barrier to entry, and perpetuates a certain amount of elitism, which really considering the make up of the industry is no help at all.
A great amount of indies do. Super Meat Boy was built with a hand rolled engine. Same for Cave Story, Binding of Isaac, Terraria, Stardew Valley, Dwarf Fortress, Celeste and many other memorable titles.
It's more intense on the Japanese side though. Loads of -doujin- game developers, like the many Touhou spinoffs games handroll their own stuff.
I'd say, using a prebuilt engine ecosystem has become more common with the appearance and growth of Unity but it hasn't stopped people doing their own thing and it certainly hasn't been a solely positive contribution, you criticize elitism in the days when the Steam store pages are flooded by trashy asset flips and barely working early access games that sometimes never truly get finished. A little bit elitism would in fact not hurt if we don't want to hit another video game industry crash.
I mean, I posted 'cause he was wrong, but this is Bad Boss garbage.
An engine like unity basically provides utilities such as physically based rendering, camera systems, visual editors, scripting environments, a scenegraph editor, preview windows, io, asset import and conversion, audio, etc. Some games are of course easier to make than others in such engines, but they aren't that prescriptive.
What you're missing is that these big engines are also game development environments with extensive tools and integrated market places to purchase assets and features.
Learning Unity is learning an entire platform. It's a marketable skill.
Generally smaller developers don't have the development resources to roll custom everything. But modern platforms have enough spare hardware resources that the inefficiencies of Unity are worthwhile.
However I believe this will change in the future and we will go full circle back to people rolling their own for real world use... why? because modern real-time rendering engines are an amalgamation of hacks on how to get beleivability out of triangles and shaders, they are necessarily complex - to the extreme - and you cannot compete as an individual. However the future is clearly path-tracing or some form of ray based rendering (it's sustainable, the hardware has a future there - it's parallel), path tracing being a simpler unified model for rendering makes it's completely within the grasp of individual developers, this would open up a whole world of creativity.
Also https://www.dwitter.net/ uses canvas + JS as the basis for it's code golfing. It's surprising what you can fit into 140 characters, and forces you to think more mathematically when creating effects.
http://slicker.me/javascript/fire/fire.htm
(not mine)
There are similar demos out there using particle effects.
With audio, on the other hand, everyone will just look for fmod or an equivalent. There's rarely much time budgeted for audio and there's much less shared experience in doing it ground-up.
I don't think it matters if the randomness is not applied symmetrically and the fire moves slightly to the left. I also can't comprehend the part about the framebuffer being initiated yellow and not black.