Fun Diablo 1 technical discussion thread. There's some Any Forums stuff in there (programming) and maybe /sci/ (math). But I thought I'd get most enthusiasm on this board. I've been tinkering with the reverse engineered Diablo 1 source here: github.com/diasurgical/devilutionX Got it to compile and run under MacOS Monterey. Can single step through it in VS Code with the debug build. Been making simple modifications, mostly silly stuff for now. I had some questions and wanted to ask for help and/or ideas, but I'll see where the thread goes. I'll ask those in separate posts in the thread.
I wanted to continue the experience curve up to level 100 at least. Maybe 200. I wanted the progression to fit the existing one but haven't been able to find the formula the original devs might have used, so I decided to look for a curve fitting to derive one. Anyone have an idea how to continue the experience progression nicely?
I plotted those experience values to see what kind of curve might be a good fit. I have tried the most obvious regression models on Wolfram Alpha already, but all of them give either terrible fits for the lower levels or the upper levels, so I was wondering what to do here.
Have you looked at the classes stat caps and judged how many hard stats you can spread across the four attributes up to max level?
Blake Bell
I've never beaten Diablo 1 on even Nightmare difficulty, but I imagine that level scaling needs to take monster xp into consideration if you're going to just scale such a steep exponential further. The thing with character level in Diablo 1 is that items and spells don't have level requirements except to the extent that your level limits your main stats (which isn't much; you can have 255 Magic pretty easily by the end of Normal difficulty as a Sorcerer).
If this thread archives too quickly (most people here were probably born after D1's release) you try the response on /vr/.
Juan Martin
You raise a great point. I have taken a cursory glance. 100 levels or so might very well exceed the total sum of points I can distribute. I'd probably need to make adjustments to those, too. Also, there are some places where a hard level cap of 50 is apparently hardcoded. I do not know if that is just sloppy coding or not, because the original author of the code has a #define constant, which he uses in most places, but I have noticed at least one exception in player.cpp.
Maybe there are other problems I will run into. For example, there are a few sanity checks the code performs before allowing a player onto Battle.net / Multiplayer.
>that level scaling needs to take monster xp into consideration if you're going to just scale such a steep exponential further You're right. I'll probably whack some other aspects of the game out of place by doing this. The original devs probably fiddled with it long enough and did a better job that I could, especially me messing with it in such silly ways. But if pulling on this thread unravels other parts of the game, I thought it might just be fun to see what pieces one would need to touch next and so on. I don't mind this turning into a longer term project that I can do on and off, as long as it doesn't get too serious. I don't want to screw up the game so much that it's not fun anymore, though, so I'm prepared to touch other parts of the game if people have fun ideas and good inputs like yours.
Aiden Collins
There’s some really popular Diablo 1 mods: The Hell 1 and 2 and Diablo HD. I haven’t played either extensively but I imagine they both have tackled what you are describing to some degree.
I know nothing about coding, but I imagine expanding the power cap of Diablo would include expanding the already existing tier progression of normal -> nightmare -> Hell.
This would mean adding a 4th and possibly 5th tier. These difficulties use the same monsters (I believe) and simply scale their stats up even more. I don’t think you’ll have problems running into max stats for monsters but player characters yeah maybe.
The classes have stat caps implemented as ways to balance the characters. My understanding is that these caps applies only to attribute points you get from level ups and permanent stat increasing items thst you can buy. Attributes from items could push you above your class cap. But I could be wrong and don’t know what the actual caps are.
Another cap would be the spell level cap which is level 9. Spells leveled up in Diablo 1. Again, magic items may be able to push that number past 9.
Items also have ‘caps.’ But these are moreso a question of “how strong do items get” and how powerful the modifiers are. Aka, you may need to add more items or at least higher modification levels to existing prefix/suffix database.
Diablo 1 is best Diablo. Very underrated game. The simplified magic item system is much preferable if you ask me. You know what an item is before you pick it up because it’s limited to 2 modifiers as opposed to Diablo 2s 6 or so with rare items.
Jaxson Watson
Maybe see if you can do something esoteric with fudging monsters. If you can have acid spitters fire more than a single projectile at once, or possibly speed up certain monster movement rates, or the like so it isn't just a straight damage, HP, armor class, and resistance boost to the next difficulty. I'm unsure how feasible some of those parameters could be adjusted, or if they're even within the scope of what you are setting out to do.
Jose Taylor
imo the main thing D1 would benefit from is just more/expanded content. Not that it isn't plenty replayable as is, but the new difficulties don't add as much as D2's did. Dungeons don't get larger, monsters don't gain new traits, there's no new skills to unlock, item suffix/prefix probability doesn't even change. All that changes iirc are base item drops, monster HP, monster damage, and xp-related things. The original plan from the Diablo devs was to operate a proto-DLC system where you'd buy expansion packs in floppy disks off the counter of a hobby store, which would have a random assortment of a few new random uniques, and enemies, quests, etc, and gradually flesh out the content. That plan obviously faded, and the devs despised Hellfire for changing the tone of the game which probably made them even more hesitant, but there's still a lot of space content-wise when considering that you attain basically all content by level 20 or so.
The DevilutionX discord has a guide on how to use Tiled to make new D1 preset maps, e.g. for quest areas, for example. AI could also be useful for generating vintage-looking D1 items or tiles in a high-throughput manner; pic related are AI-generated D1 helmets via Looking Glass, and while some are obviously jank, it wouldn't be difficult to make the occasional neat looking item with almost no human effort.
>play co-op d1 with wife who only ever played D3 >she gets progressively morepissed off every time she dies and has to go back to loot her corpse >tell her to stick with it >fight through, beat the game. she's happy, actually feels like she accomplished something >fuck wife, no condom, shoot 5 ropes into her cunt >let it soak >baby >>thanks Diablo
Andrew Rivera
Oh, nice. I knew it was the right choice to come here, instead of /sci/ or Any Forums. They would have probably just told me that what I'm doing is boring and tell me to fuck off. People who have been enthusiastic about the game think about all of these details. It's fine that you don't know much about programming or stats. You can probably all tell that I suck at it myself.
I'll think about that. I am adding these suggestions to a notebook. I might start coding some ideas after this thread is dead or tonight and make new threads whenever I have an update.
Just a second ago, I figured out what I did wrong with my curve fitting. I have been able to come up with the following graph, using exponential regression and some StackOverflow.
So, whether the original devs intended it or not, or whatever way they came up with those levels, a somewhat decent formula for experience level requirements in Diablo 1 appears to be:
72680 * e ^ (.2 * LVL)
It looks pretty, doesn't it? Also, I couldn't find any other sources on the Internet that I have done it quite like this. I have found plenty of tables, sure, but maybe we are some of the first to approach it this way, which would be a neat little addition to Diablo 1 nerd fandom.
Love D1 but don't have any insight to contribute, have a bump
Nicholas Mitchell
So, if higher levels means we need to scale items further, maybe Any Forums can think up new prefixes and suffixes and such. I thought it might be funny if they could pick things that fit with Any Forums, such as "Pepe's Longbow of Shitposting" or something.