I am instantly taken back to a time where we literally planned to lug big tower computers to my friends house just to be able to play CS 1.6 together. Thank you for sharing!
Still some of the best (pseudo-) random dungeon generation I've ever played. That functionality alone probably accounts for over 90% of the time I spent replaying it.
It's strange to me that so few games in the genre seem to do this as well, over 25 years later. Hades is supposed to be good, but for some reason it doesn't look like something I'd enjoy. Maybe I'll pick it up on sale at some point and find out.
Have you tried Diablo 3 yet? After the real money auction house fiasco, Blizzard did a 360 and completely turned the game around and continued to grow it over the years. It is an excellent game now.
Path of Exile is another really good one, more like D2, whereas D3 was more streamlined (plays very well, but less customization).
Hades is excellent but the procedural generation is not one of its main selling points, IMO. For me it’s the story (elevated mainly by incredible characters) and the combat. The procedural generation is simply a means to funnel you to combat scenarios in randomized orders, but it’s less like diablo where entire levels are created but just a series of interconnected handcrafted rooms that are randomly connected. There is no real exploration, each room basically funnels you to the next by giving you a choice of upgrade and a different door for each. The main gameplay loop is basically - enter room, kill everything, get upgrade, go to next room, restart when you die.
So if you’re looking for a diablo-clone, hades is not it - I would recommend Grim Dawn (but this doesn’t have procedural generation lol). Hades is still excellent but it’s Roguelite through and through, and one of the best ones at that.
The dungeon and item generation randomization is great. The real time isometric view, gameplay, and atmosphere, while groundbreaking, would not have been enough to get me to replay more than a handful of times. Without the randomization, the game would have had to have many more expansions.
I have played Diablo for far too many hours to count. On the other hand, Baldur's Gate is a game I replay about once every 5 years due to the atmosphere being so good.
One thing I loved about this game was the vast amount of fan pages dedicated to it in the early years when I was learning how to play. I have spent some time compiling links to those sites, that are still hosted or archived, at my website https://mgpat-gm.github.io/links.html. If you want a trip down memory lane, click away.
Wow, I grew up during the mid-90s when the internet was just starting to consume the world. Diablo (Battle.net) and QuakeWorld were my jams at the time. After that came the MMORPGs of the late 90s, Ultima Online and Asheron's Call. Good times.
I was recently reading Masters of Doom and this fits right in with the vibes of that book. Incredible seeing the lasting impact of the games of that time.
Asheron's Call was my first MMO. Played it for like 6 years before moving to WoW where all my friend's were. One thing I loved about AC is you could run from one side of the world to another without zoning(for the most part). This was pretty unique back then. Another was the skill based system. No classes. It still holds a special place in my heart.
Still need to get around to trying the server emulator but I'm on Linux.
What happened to the source code ? Or was it Diablo 3? I can't remember. I remember they released the symbol files by mistake or something. I was under the Impression that we would be playing Diablo on every toaster in town by now.
It links to https://github.com/diasurgical/devilution. WHich explains it:
Climax Studios was contracted to make a Playstation port. And it ended up being shipped with the debug symbols still in the game executable. The pc version also has a lot of debug information still in the game files. So reversing engineering the source was made a lot easier.
I remember going to a talk by David Brevik at NZGDC where he not only explained that the majority of Diablo was written in assembly, but that it was originally turn based, and his staff kept whining and whining about how good it would be if it were real-time. So in one weekend he made the necessary changes (ie run 1 turn/x time), ran over to a skeleton and hit it with his sword; he was sold!
I'm sure he tells the story in that format a lot but it was still awesome hearing it from the man himself.
I've been teaching myself POV-ray with an eye towards using it to render 2D sprites for indie games. Thinking about how 3D rendered scenes could be tile-ized lead me to an epiphany last night about a difference between Diablo 1 and later Diablo's that I could never put my finger on before what I was seeing.
When a game uses the same bitmaps for terrain tiles at the edges of the screen as at the center, it necessarily emulates an orthographic camera. Put another way, if you render a scene with the default non-orthographic 3D camera, terrain elements at different positions on screen will be seen at slightly different angles. The effect is minimized if you use a far-off camera with a narrow field of view, but it never goes away completely.
(The same effect applies to sprites, but it would be less noticeable than with architectural elements.)
Diablo 1 used true 2D graphics whose tile bitmaps don't change no matter where they fall in the field of view - therefore, orthographic. Diablo 2 was a 2D/3D hybrid that painted the visible landscape onto a single giant triangle mesh (used in a non-standard way). And Diablo 3 and later of course were simply 3D graphics.
I always felt there were things about the mood and atmosphere of Diablo 1 that were lost when another team made Diablo 2, and then further left behind with Diablo 3. I now realize it's also analogous to the difference between the 2D Zeldas and the 3D Zeldas in an almost literal way.
(The use of 3D tech in the original Diablo 2 engine was weird. I don't know if it's because the programmers misunderstood how 3D meshes are "supposed to" be used, or if it was an optimal way to do it given the hardware and APIs of the time. Most 3D engines would use a dedicated, usually unchanging, mesh object for each chunk of terrain and load/unload these chunks as needed thus loading/unloading meshes. The developers of Diablo 2 seemed to consider generation of their terrain mesh expensive (it shouldn't be) and changing their terrain mesh less expensive (not true for VBOs). What the did was generate only one mesh, one time for the entire visible playfield, and just vary the vertex height and UV map of the entire thing as you walk around the level. The algorithm is rather like draping a sheet over the ground and dragging the sheet over rocks and bumps as you walk around.
This had the side-effect that the graphics would go crazy in Diablo 2 if you used a mod to set the screen resolution higher than ~ 1440x900. The problem was that they used 16-bit indices for the triangle list, and using one giant mesh of tiny triangles overflows the available number of unique indices representable with a 16-bit int. (Investigating this problem is what led me to figure out everything in the previous paragraph. I worked all of it out from first-principles once I realized the cause of the screen resolution problem.)
[+] [-] 00s_enthusiast|3 years ago|reply
[+] [-] BossingAround|3 years ago|reply
[+] [-] slfnflctd|3 years ago|reply
It's strange to me that so few games in the genre seem to do this as well, over 25 years later. Hades is supposed to be good, but for some reason it doesn't look like something I'd enjoy. Maybe I'll pick it up on sale at some point and find out.
[+] [-] solardev|3 years ago|reply
Path of Exile is another really good one, more like D2, whereas D3 was more streamlined (plays very well, but less customization).
Both do random dungeon generation.
In a different genre, but Deep Rock Galactic has super cool underground cave systems procedurally generated... it's just an excellent game throughout: https://www.ghostship.dk/blog/procedural-level-generation
[+] [-] rubyist5eva|3 years ago|reply
[+] [-] ghastmaster|3 years ago|reply
I have played Diablo for far too many hours to count. On the other hand, Baldur's Gate is a game I replay about once every 5 years due to the atmosphere being so good.
One thing I loved about this game was the vast amount of fan pages dedicated to it in the early years when I was learning how to play. I have spent some time compiling links to those sites, that are still hosted or archived, at my website https://mgpat-gm.github.io/links.html. If you want a trip down memory lane, click away.
[+] [-] princevegeta89|3 years ago|reply
Incredible game with an amazing value for almost infinite-replayability
[+] [-] philliphaydon|3 years ago|reply
I posted this if anyone is interested. It's Ultima Online in a browser, allows you to connect to official server or private.
All written in C#.
These different games in browsers are incredible. Always blown away at the cool stuff people do.
[+] [-] npigrounet|3 years ago|reply
[deleted]
[+] [-] nsoonhui|3 years ago|reply
[+] [-] johnny_canuck|3 years ago|reply
I was recently reading Masters of Doom and this fits right in with the vibes of that book. Incredible seeing the lasting impact of the games of that time.
[+] [-] djitz|3 years ago|reply
[+] [-] Soulsbane|3 years ago|reply
Still need to get around to trying the server emulator but I'm on Linux.
[+] [-] pjgalbraith|3 years ago|reply
[+] [-] lawgimenez|3 years ago|reply
[+] [-] unixhero|3 years ago|reply
[+] [-] trissylegs|3 years ago|reply
[+] [-] howon92|3 years ago|reply
[+] [-] htk|3 years ago|reply
[+] [-] drooopy|3 years ago|reply
[+] [-] fennecfoxy|3 years ago|reply
I'm sure he tells the story in that format a lot but it was still awesome hearing it from the man himself.
[+] [-] smcl|3 years ago|reply
[+] [-] easeout|3 years ago|reply
[+] [-] kubatyszko|3 years ago|reply
[+] [-] jambalaya|3 years ago|reply
[+] [-] whartung|3 years ago|reply
It got to the point that I hurt my hand, it never really recovered from it.
I never got very far in D1, but played a lot of D2 and boatloads of D3.
I go back to D3 once or twice a year when a new season hits.
[+] [-] phaedrus|3 years ago|reply
When a game uses the same bitmaps for terrain tiles at the edges of the screen as at the center, it necessarily emulates an orthographic camera. Put another way, if you render a scene with the default non-orthographic 3D camera, terrain elements at different positions on screen will be seen at slightly different angles. The effect is minimized if you use a far-off camera with a narrow field of view, but it never goes away completely.
(The same effect applies to sprites, but it would be less noticeable than with architectural elements.)
Diablo 1 used true 2D graphics whose tile bitmaps don't change no matter where they fall in the field of view - therefore, orthographic. Diablo 2 was a 2D/3D hybrid that painted the visible landscape onto a single giant triangle mesh (used in a non-standard way). And Diablo 3 and later of course were simply 3D graphics.
I always felt there were things about the mood and atmosphere of Diablo 1 that were lost when another team made Diablo 2, and then further left behind with Diablo 3. I now realize it's also analogous to the difference between the 2D Zeldas and the 3D Zeldas in an almost literal way.
(The use of 3D tech in the original Diablo 2 engine was weird. I don't know if it's because the programmers misunderstood how 3D meshes are "supposed to" be used, or if it was an optimal way to do it given the hardware and APIs of the time. Most 3D engines would use a dedicated, usually unchanging, mesh object for each chunk of terrain and load/unload these chunks as needed thus loading/unloading meshes. The developers of Diablo 2 seemed to consider generation of their terrain mesh expensive (it shouldn't be) and changing their terrain mesh less expensive (not true for VBOs). What the did was generate only one mesh, one time for the entire visible playfield, and just vary the vertex height and UV map of the entire thing as you walk around the level. The algorithm is rather like draping a sheet over the ground and dragging the sheet over rocks and bumps as you walk around.
This had the side-effect that the graphics would go crazy in Diablo 2 if you used a mod to set the screen resolution higher than ~ 1440x900. The problem was that they used 16-bit indices for the triangle list, and using one giant mesh of tiny triangles overflows the available number of unique indices representable with a 16-bit int. (Investigating this problem is what led me to figure out everything in the previous paragraph. I worked all of it out from first-principles once I realized the cause of the screen resolution problem.)
[+] [-] Arrath|3 years ago|reply
So in essence the character just stood in the middle of a singular big mesh and the world was rendered to that viewport as you moved it around?
[+] [-] epicureanideal|3 years ago|reply
[+] [-] misterflibble|3 years ago|reply
[+] [-] nottorp|3 years ago|reply
https://github.com/diasurgical/devilutionX/releases
Native Diablo 1/Hellfire for a lot of platforms. Probably much easier on your battery if you're playing on a laptop.
[+] [-] damethos|3 years ago|reply
[+] [-] llaolleh|3 years ago|reply
[+] [-] TuringTest|3 years ago|reply
[+] [-] metadat|3 years ago|reply
Or DII, I'm craving it.
[+] [-] avyeed_desa|3 years ago|reply
[+] [-] grimgrin|3 years ago|reply
I'll say this: archive.org is quite the trove for things of this nature
[+] [-] siva7|3 years ago|reply
[+] [-] truemotive|3 years ago|reply
[+] [-] beprogrammed|3 years ago|reply
[+] [-] badpun|3 years ago|reply
[+] [-] hoten|3 years ago|reply
Oh, do you mean between game areas? I didn't actually play it yet!
[+] [-] kurupt213|3 years ago|reply
[+] [-] Inviz|3 years ago|reply