Diablo 4 Set Item

0 views
Skip to first unread message

Ariano Waiker

unread,
Aug 5, 2024, 3:28:23 AM8/5/24
to misrecipci
Itemsare in-game objects that characters can carry in their inventory. They are the driving force of Diablo II more than anything else. Besides advancing the story, much of the game focuses and revolves around finding better and better items to equip your character with.

One of the many strengths of Diablo II has always been its multitude of different item options, and the number of items that are present in the game which the player can choose from. As the game has developed, new forms of customizing one's character have arrived in patches, and the many mods developed for the game often increase the range of items and item customization greatly beyond what was originally included.




This is a rough drawing that hopefully describes what I am after. The item spawn point would be in the center of the Player and the item actor will have no collision with him at until it hits the ground.


Another thing regarding this that I do not understand is how in the mentioned games, the Items slam into the ground rapidly after moving a bit from the Player. I tried tweaking mass values but it always falls kind of slowly.


I checked it out and its really similar to what I currently have, for the drop I mean. Not exactly what I was looking to implement. A fixed curve from A to B would be the closest to what Im looking for.


What I thought was when I generate this end point, I spawn the item actor in the middle of the Players mesh and use that as the starting point of the drop. The end point being the one generated from the box collision function. I wanted to try to implement a way where the item goes from the start to said distance over a curved-like path.


Insert in the cube the item to be augmented + 3 flawless royal gems + legendary gem of at least the minimum required level. Press transmute and the item is augmented with STR/DEX/INT. The normal gems define which main stat gets applied (rubies = STR, emeralds = DEX, topazes = INT) and the legendary gem level will define how much main stat you get (5x gem level).


I've read on diablo wiki that a rare item can have between 2-6 affixes with a maximum amount of each 3 suffixes and prefixes. I know from experience that a magic item can have 1-2 affixes and pools from all rare affixes, but can have it's own unique affixes, that can never happen on a rare. My goal is to see what items are worth picking up and I need to know how many affixes it can get. Does it depend on characterlevel or itemlevel or something else? Where can I read up on this? Thanks in advance!


The item suffix and prefix ALWAYS depend on the item level, never the character level. To find out what the item level table is, you need to look at the monster level to find out what the item pool is.


The number of affixes on an item is completely random. Like you said, magic items can have 0-1 prefix and 0-1 suffix on them. Rare items can have 1-3 prefix and 1-3 suffix. The only other rare item that does NOT pertain to this rule are rare jewels, which are limited to 4 total affixes (2 and 2 respectively) as of patch 1.09. You'll probably be on 1.14d if you've updated at all in the last decade, but I thought I'd mention this anyway.


Basically i want to create an item/equipment system that works similar to the systems in Diablo or Path of Exile.

The main idea would be to have equipment types (Weapon, Armor) and these types are separated in base types. For example, an iron helmet could have 5 different base types. These base types differ in the level requirement and the base (armor) value.

Simple Helmet: Lvl 5, Armor: 10

Normal Helmet: Lvl 10, Armor: 20


Every equipment item can also appear in a different rarity. The rarity types can be common, uncommon, rare and legendary. The rarity decides which properties are added to the item. The higher the rarity the more properties an item can get. Path of Exile uses an affix/prefix system, which means a rare item can get 3 affixes and 3 prefixes.


Now my question is: What is the best way to implement such a system?

Would xml be a good way to create a database for the base types? And how are the properties added? I would want to create a random item. That means it would have to choose a random base type, a random rarity and then add random properties to the item depending on the base type. The properties (affixes, prefixes) can also have a random value in a certain range.

I would be very glad if anyone could guide me in a good direction.


If you know your way around with ECS then realising this is somewhat easier.

Cause then you can just decorate entities with whatever you want.

So if you want the system to randomly create a helmet gear piece with epic rarity and have it enhance your luck stat by a 100. you just decorate the entity and attach a Helmet tag with Epic rarity tag and the luck stat to that entity.


In a wide-ranging interview with Windows Central, Blizzard's general manager of Diablo, Rod Fergusson, said that they launched Diablo IV under "the assumption that D4 was meant to be more D2-like." That meant, in part, increasing the length of time required to discover the game's most valuable items after post-Auction-House Diablo 3 made rare item drops much more common.


"One of the assumptions was that people were going to be okay with the long grind for the Unique or an Uber Unique in particular, because in Diablo II, it can go years," Fergusson said. "You can go three years before you find the Uber you're looking for... and so we were like, okay, this is what people love about the progression of D2, that idea of that very long chase."


To help calm those upset players, subsequent Diablo IV updates have made it easier to earn Resplendent Sparks, which those players can use to craft high-end Uber Unique items they've been unable to find from random item drops. Having that option to skip the randomized item search helped satisfy the desires of modern players, Fergusson said.


"It's just a kind of recognition of how much players have changed in 20 years," he said. "You know... that consumptive nature of a live service and that time is money and I don't have much time, so let's go, right? And so that idea of like, oh, you're going to get a unique every six months."


That recognition of "how much players have changed" reflects how much the mere passage of time has changed the Diablo audience over the years. A 16-year-old who was sinking all their free time into Diablo II when it launched in 2000 is pushing 40 these days. That means the core, nostalgic audience for the series is now very likely to have a career, family, and/or other responsibilities eating into their playtime. There's nothing like a few decades of aging to make the prospect of sinking hundreds of hours into a loot grind seem less appealing.


With Diablo III, Blizzard initially assumed that players with more money than time would simply bid up the game's best items in the game's real-money auction house, where players who had more time to grind would benefit from selling their rarest random finds. Instead, Blizzard soon acknowledged that the auction system "short-circuited [the] core reward loop" of the game, making it trivial to buy high-level loot that quickly made the entire late-game feel kind of irrelevant.


With Diablo IV, Blizzard seems to have struck a better balance for players who simply want a more reliable reward for any time investment they can make. With Resplendent Sparks, players willing to put in the in-game work can be confident that they'll eventually get the top-level items they're seeking. That consistency can be much more appealing for time-limited players than simply crossing your fingers for a low-odds virtual dice roll or opening your wallet to skip the gameplay grind process entirely.


The evolution of Diablo's item progression system is an important reminder of how the relative value of a player's time can change as those players move between different stages of life. Who knows, maybe in 25 years Diablo VI will find success with ultra-rare item drops that soak up all the free time for a core audience of retirement-age players with nothing better to do than spend 500 hours grinding for a digital sword.


Diablo 2 has a very sophisticated item system and I want to create something similar. But I am having a hard time getting the architecture right. In Diablo 2 most different kind of gear has different kind of attributes and they can all hold X amount of modifiers depending on the quality.


However my server creates items randomly based on several factors. And each item is pretty much unique. To lower the amount of records a player can only have X amount of items. I tried to get some thought on "paper" and would like some insight in how this can be done properly. These are my findings:


Having all my different kinds of gear separated since weapons have damage, boots alter speed and armor, shield give armor and block rate, etc. A modifier table holds all the modifiers and has a FK to weaponId, bootsId, shieldId and only one should be set where the others are null. I could add requirements in the main tables as well but in the diagram below I opted for a separate 1 to 1 relation table.


To clarify table modifiers, the column modifies should hold something like undead and percentage could hold 10 to make the armor or weapon 10% more effective to undead. Or strength & 5 to increase strength by 5.


But I might be over complicating things. I could have a single item class that defines the type, damage, armor, etc and keep them null if that attribute does not belong to the item. I could even throw in the requirements since thats a 1 on 1 relation anyway. The modifier relation would stay the same where a single item can have more modifiers. Something like this:


Now I can show the player what the base damage of the weapon is and how much the bonus is. Heck, I could even handle the item name and description using this and combine them all by coding in there proper classes. This would make it really flexible where a stat like strength in code is just a String and an int.

3a8082e126
Reply all
Reply to author
Forward
0 new messages