Ultimate Inventory System WIP

@Dragonflame @Photonic
Thank you for your enthusiasm! Once we make further progress and have at least all the launch features more or less working, I'll discuss with Justin about how we will get alpha/beta testers from the community.
Until then I'll make progress updates posts where you can give us some feedback on the direction we are taking.

Hello @Sangemdoko,
I just wanted to make sure I am still in the queue for alpha/beta testing ;-)
... would not mind paying in advance
Did you have a talk with @Justin on that matter?
Cheers
 
@Sangemdoko , Hi there!

Sorry, patience of a gnat, as I say....

How goes the demo scene?

Have you kept to the same basic framework still?

What is the UI/UX looking like now? (he says fishing for an update...)
 
Last edited:
Hi @Photonic @Duffer123 ,
I just mentioned this in the discord so I'll copy-paste my message here:

"we've briefly discussed the beta planning with Justin. I think we reached the conclusion that we won't be making a free beta. It'll be more like an early access that will be released on the Opsive store just a few weeks before it will be available on the asset store. Of course, we'll announce the release date of the early access and the full release in advance. It will be around Q1-Q2 2020."

In terms of what the UI looks like in the new demo so far, I'll have to ask you to wait a little bit more... sorry. I worked on it for the past week and the functionality is pretty much done for the main inventory menu. But there is no art yet just placeholders. We plan to add the final art as we go during the next few months. I'll try to show something once I get the new demo to the same point as I was with the draft demo.

I'm trying to make the UI very customizable, such that all items that share the same category can behave and be displayed in similar ways. Example a Weapon will show how much attack power it has while a Consumable will show how much health it can restore. I use some scriptable objects that links categories to prefabs so that you can easily remove, add or modify the dynamically instantiated parts of the UI.

That being said there is no way I can make a UI that will work for all possible games, so depending on your needs it might make more sense to create your own inventory UI from scratch. You may find some of the demo components quite useful though since everything is very modular you can easily pick the parts you like.
 
@Duffer123 We started remaking the editor from scratch a bit more than two weeks ago. It's going to be amazing! ... but for now it's making the demo scene unplayable until we finish it.
As soon as it is done we'll put screenshots and gifs in here. Then we'll be able to finish the demo, add the art and finally polish everything. There are still some features that need quite a bit of refactoring (saving, item upgrades and some others) but it's getting close.

Here is a sneak peek of the new editor, I hope you like it.
Note that it still needs some styling improvements, but it's much cleaner and easier to use than before.
1578755242257.png
 
It looks really great! I'm really curious how well it integrates with UCC. I hope it's not a wrapper but shares the common base classes. ^^
 
@Sangemdoko ,

I have to admit that UI is far neater!

Very nice indeed!

With attributes, are we still free to associate a wide variety of Variables/Types? Also, as a particular 'Type' are you allowing for socket items or other attachments (affixes,/refixes/suffixes)? Also, container items still?

What for you are "Item Upgrades"?

Sorry, gotta ask...
 
@chrisk We are still working on the integration, we'll do everything to make it as seamless as possible.

@Duffer123 Thanks to Justin's magic, you can create attributes of any type you want. Simply click on the "Change Type" button and it shows up all the types in the assembly (There a setting to hide the ones that are not wanted), and then once you select it, it wraps in an Attribute<SelectedType> on the fly, so no need to create your own Attribute classes.

socketed, name add-ons, item containers and item upgrades are a little tricky because you could implement them in many different ways. The demo will showcase one way of doing it. It's up to you if you want to do the same thing or take another approach
 
Because of the flexibility of the above system and the beautiful sort-of multiple inheritance, and given I can leverage my own classes, I can actually see this system being really easy to turn to, ironically, things like RPG classes, races, abilities, even stats, as well...

[edit]

p.s. hope you are implementing some sort of loot tables too?
 
Last edited:
@Duffer123 @Dragonflame Could explain in more detail what you are looking for in a loot table?

I have a random inventory pickup component that lets you create a probability table using an inventory by using each item amount in the inventory as a probability index. You can also set what range of item amounts you want. Does that suit your needs?

If not then I can consider adding something more in the first or second update. If possible we do not want to add any new features until after release. We need to focus on polishing what's already there and making sure everything works as it should.
 
@Duffer123 @Dragonflame Could explain in more detail what you are looking for in a loot table?

I have a random inventory pickup component that lets you create a probability table using an inventory by using each item amount in the inventory as a probability index. You can also set what range of item amounts you want. Does that suit your needs?

If not then I can consider adding something more in the first or second update. If possible we do not want to add any new features until after release. We need to focus on polishing what's already there and making sure everything works as it should.
@Sangemdoko , yes, as you suggest so long as you can put weighting on the chance to receive any particular item (or stack of the same item) or indeed nothing...

As a later release thing it would be neat perhaps to have loot tables for additional weighted attributes to attach to an item too. ie. so you could semi-randomly (in a weighted manner) create complex items at runtime too... hope that makes some sense?
 
Last edited:
@Sangemdoko , these are more really dumb questions, sorry, but in runtime can you put together an entirely new runtime item by 'assembling' item categories, definitions and attributes on the fly? All still saveable and loadable?
 
@Duffer123 That's a good question, The answer is yes you can create ItemCategories, ItemDefinitions, Items and Attributes on the fly. But currently, I haven't found a good way to save dynamically created ItemCategories and ItemDefinitions. Dynamically created items are saved in the Inventories... but I am inclined to change the current saving system so that it saves everything in a "dynamic database" this way I'd only have to save the item IDs in the inventories instead of the entire items data.
The tricky part is having both a saved database and the editor database... when they become unsynced what happens, non-compatible save data? For now I'm not too sure.

The save system is the last big feature that we haven't completely figured out because we made some pretty big changes in those last few months. It may take a few tries until we get it right.
 
@Sangemdoko , to be honest I was really only wondering about runtime items created on the fly from pre-generated item categories and definitions... maybe just that for first release?
 
@Duffer123 Oh that XD.
That's the whole point of the inventory system. Items are always created dynamically.
That's how you create items:

C#:
public static Item Create(ItemDefinition itemDefinition, IReadOnlyList<AttributeBase> attributeOverrides = null)
   

public static Item Create(Item item, IReadOnlyList<AttributeBase> attributeOverrides = null)

You can either copy another Item or create a new one from an ItemDefinition. And you can pass in attributes if you wish to override any of the default ones specified in the editor.
You're not allowed to add completely new attributes, that would defeat the purpose of having ItemCategories define the Item properties (attributes).
But you can change attribute values, inheritance properties, etc.. As long as the attributes name and type match one on the default item then it will take its place.
 
Top