Making DIABLO's Item System in my UNITY ARPG!

  Рет қаралды 3,226

Tudvari

Tudvari

Күн бұрын

I'm a big Diablo fan but I guess my ARPG's Item System makes it a bit obvious. :D Also copied its visuals until I find an artist.
Wishlist my new game, HexLands now! ➤ store.steampowered.com/app/22...
Join our Discord community ➤ / discord
(Btw ISOMETRIC VIEW IS COMING!)
Support me on Patreon for special benefits ➤ / tudvari
Subscribe to my mailing list for giveaways, betas and news ➤ mailchi.mp/659931c62f88/portg...
/ tudvariofficial
/ portgatestudios
#gamedev #madewithunity #unity3d
Music:
• Dark Fantasy Music - T...
• Aries Beats - Synthwav...

Пікірлер: 41
@Tudvari
@Tudvari 2 жыл бұрын
These placeholder items make testing much more enjoyable! :) And what do you think about the possibility of switching back to an isometric view? Personally... I'M HYPED! :D
@calendulaprox2155
@calendulaprox2155 2 жыл бұрын
Bro nice video! I been researching Diablo's item system for my game's inventory. It was nice to watch :)
@Tudvari
@Tudvari 2 жыл бұрын
Thanks, glad you enjoyed it! :) Feel free to ask questions :D
@superheavyballet7868
@superheavyballet7868 2 жыл бұрын
Looks cool! I can see it becoming a really atmospheric piece with that sort of music.
@Tudvari
@Tudvari 2 жыл бұрын
Thanks, I searched for so long to find a royalty free track like this. :D And I could even use it in the commercial version if I wanted to, but most likely I'll make something very similar so I can I call it my own :D
@superheavyballet7868
@superheavyballet7868 2 жыл бұрын
@@Tudvari Awesome. It's tempting to use royalty free stuff, but the reward from having your own is 😋
@troglodyteluke
@troglodyteluke 2 жыл бұрын
Amazing! I remember I saw your devlogs earlier... I love diablo 2 and its inventory style much more than modern style - one item = one slot, but It is much easier to do, so in my RPG I’ve done it like that...
@Tudvari
@Tudvari 2 жыл бұрын
Thanks! I started with 1 item = 1 slot as well, but it can be improved in a few hours or so. So if you like that way better, don't be lazy :D Cheers!
@branidev
@branidev 2 жыл бұрын
I don't know where you pointing with this game but I absolutely love one of the Isometric Diablo style not forgiving indie games "Stoneshard" That game is a true gem of all Indie RPG ala Diablo style but with turn base action
@Tudvari
@Tudvari 2 жыл бұрын
Well, I've got some ideas in my pocket, and people told me they are good and got the right amount of change, so I'm hopeful. So you mean that you'd like the game to be isometric? :) Or you like to current top-down? As I see Stoneshard is a different kind of topdown.
@branidev
@branidev 2 жыл бұрын
@@Tudvari both of them are great I mean any point of view could be exciting but looking forward for your second game ;)
@322ss
@322ss 2 жыл бұрын
Pretty neat. How did you go about creating random unique items? I've usually simply created serializable item class instances that I then serialize and store to disk using json. Only issue with this is that I've had to sometimes store and handle different item kinds case by case... and same goes for serializing into Inspector for editing. Working with Scriptable Objects only would be easier and there's also SerializeReference, but that doesn't quite work with built in Json serializer AFAIK. And that grid based inventory view seems to be working pretty nicely!
@Tudvari
@Tudvari 2 жыл бұрын
Thanks! :) I just simply use ScriptableObjects. I create them, set the values, and after that I can instantly do with them whatever I want. They handle inheritance, so I can have a common base for random and fixed (i.e. Unique) items, and I put an ItemType enum on them to differentiate Gloves from Boots for example. :) Yep, I was surprised as well how well the grid inventory works. I think I got the base from a quick google search, luckily it's a pretty common feature so there are tons of tutorials, saving you a lot of brain power :D Cheers!
@322ss
@322ss 2 жыл бұрын
@@Tudvari Thanks for the reply. It still bugs me I don't quite know how you go about creating and saving those unique objects created from SOs :D. Technically if you store SOs as an asset file, you will have to save each variation as a separate asset file. And speaking of saving those items, you can serialize its instance id or whatever its called to json, but runtime instantiated SO (if one were to create variations runtime) instance ids are gibberish, so no point saving those. Of course there are ways to circumvent this, but I haven't so far found any good way.
@Tudvari
@Tudvari 2 жыл бұрын
@@322ss Oh, now I know what you mean. I use ScriptableObjects only for the timpleate on which items are created (generated if random template, and just copied if fixed template). And you are talking about saving and loading the item instances themselves from a save file, right? If that's the case: The Items are just simple C# objects which are created based on these Templates. They are all easily serializable in a JSON, then loaded as well, because they are pure C# objects and they only contain primitive values. Or have I misunderstood you?
@322ss
@322ss 2 жыл бұрын
​@@Tudvari Well that is pretty much what I was talking about. It works, but I haven't yet found a way to represent many item types easily, unlike Scriptable Objects, Unity doesn't like serializable class subclasses in lists and such as there is pretty weak support for polymorphic serialization in Unity. So I haven't yet found a nice way to streamline loading/saving/inspector editing of items that are simple serializable class based, when I have multiple item types... that is.
@Tudvari
@Tudvari 2 жыл бұрын
@@322ss I see. Yeah, it's hard to find a good design :\
@truth8483
@truth8483 Жыл бұрын
Can you PLEASE do a tutorial on how to do random affix generation on items ? PLEASE? I havn't found at tutorial on this..
@Tudvari
@Tudvari Жыл бұрын
Hi! I would, if it wouldn't be just silly dice rolling with lots of if-elses. :D Basically I just generate a random number from 0 to 1. - If the number is less than 0.1 (10% chance) it will have a minimum of 4 affixes and I will style and name it as a rare item. - Else if the number is less than 0.5 (40% chance) it will have a minimum of 2 affixes --> magic item. - Else (50% chance) it will be a normal item with a minimum of 0 affixes. After this I also generate a number from 0 to 1 and with 50% chance I add 1 extra affix on the top of the minimum. I do this 3 times, sooo: minimum + (50% chance for 1 extra, 25% chance for 2 extra, 12.5% chance for 3 extra). Or something like that, maybe I messed up the propabilities :D On the top of this you can do edge cases like only boots can have movement speed affixes, only weapon can have damage affixes, etc. You just have to write a method which returns the pool of possible affix types based on the item's type. I already have some other extra details in it, can't really remember them but can't wait to add some more! :D Hope I could help! :)
@truth8483
@truth8483 Жыл бұрын
@@Tudvari wow hey! Thanks for the fast reply. Do you have an item factory stating instance thay you just call when a monster dies like ItemFactory.CreateRandomItem()? Or how do you handle thay aspect? That's what I struggle with too is figuring out the framework in how and where to call this generate function. Also my item affixed are enums that I query from an equipment script on the player using an interface that loops through all the equipped items and asks them for a particular enum Stat like "health" and qdd these to a basestat script on the player that keeps the total sum so UI can ask the basestat script like. What is my health? Etc..
@Tudvari
@Tudvari Жыл бұрын
@@truth8483 Basically I have ScriptableObjects which describe the item generation's parameters and those are the assets I put into loot tables. Once a monster dies, I roll a schema then call its Generate() method to create the actual item. Then I'll assign this item to a "Loot" InteractableObject which has got just spawned on the floor. I handle the player's/equipment's affixes the same way, I think :)
@truth8483
@truth8483 Жыл бұрын
@@Tudvari Thank you sir. I'll be thinking about what you said and seeing if I can find a way to make this work!
@normalguy282
@normalguy282 2 жыл бұрын
Cool 😎
@Tudvari
@Tudvari 2 жыл бұрын
Thanks! :)
@johnmonty7077
@johnmonty7077 2 жыл бұрын
Isometric games are definitely making a comeback
@Tudvari
@Tudvari 2 жыл бұрын
Glad to hear that! :)
@cregliantal213
@cregliantal213 2 жыл бұрын
Te is azon ritka esetek közé tartozol, ahol évek során nemhogy javult volna, rosszabbodott az angol kiejtésed. Meg persze felviszed a hangsúlyt mondat végén, elnyújtod a magánhangzókat, illetve affektálva beszélsz. Mondjuk ezt még magyarul beszélve is megteszed.
@Tudvari
@Tudvari 2 жыл бұрын
Sajnálom, hogy elrontottam a napodat. :\
That's how money comes into our family
00:14
Mamasoboliha
Рет қаралды 7 МЛН
Alat Seru Penolong untuk Mimpi Indah Bayi!
00:31
Let's GLOW! Indonesian
Рет қаралды 15 МЛН
Wait for the last one! 👀
00:28
Josh Horton
Рет қаралды 141 МЛН
I Can't Believe We Did This...
00:38
Stokes Twins
Рет қаралды 78 МЛН
Hellblade 2 - Finalul epic e in sfarsit aici! - E5
1:31:26
Jocuri cu Edu
Рет қаралды 421
Why I’m switching from Unity to Unreal Engine
9:02
LixianTV
Рет қаралды 1 МЛН
Why Starbound Failed
15:00
RoboKast
Рет қаралды 656 М.
No Man's Sky in 2023 is... Ridiculous
17:08
MrSaviorHD
Рет қаралды 4 МЛН
How Minecraft Legends Failed less than ONE Year after Release
21:13
smallthoughts
Рет қаралды 144 М.
Drag and drop in Unity UI - create your own inventory UI!
12:47
5 Steps To Gorgeous Game Art
10:30
Thomas Brush
Рет қаралды 246 М.
I Played Every Factory Game and You're Playing Them Wrong
9:46
TotalXclipse
Рет қаралды 71 М.
I Made Diablo Clone in 1 Week
22:22
Fat Dino
Рет қаралды 3,2 МЛН
ВСЕ КОНЦОВКИ И СЕКРЕТЫ ПОУ! Bou's Revenge
35:51
Family Play TV
Рет қаралды 251 М.