How can we Improve?

Sangemdoko

Moderator
Staff member
Hello Everyone,

As you all know we are working hard on making an inventory system that is extremely flexible and modular such that any one can use it to make any type of game that requires item management. With the years the system has become very big with a lot of features, which makes it a bit intimidating for new users.

Recently we received some complaints that the system was too complicated and the documentation/tutorials were not helping enough. Following this feedback we would like to improve the documentation to make things easier to pickup and get started quickly.

We would love to get your suggestions on how to improve the user experience for new users.
 
Can you consider providing a tiered product/feature offering and target users with different levels of expertise and skills? For beginners, the current system is overwhelmingly complicated. As an entry-level user, I need code examples to show how to call APIs (even don't know where to find them). Here is a good example of doing API documentation well. https://inventory-pro-docs.readthedocs.io/en/latest/

Even item category and definition can be designed simpler and I literally spent hours watching your videos and figuring out the right way to do it as a first-time user. You can also revisit your video tutorials and they contain repetitive content but didn't address my pain points... Sigh... I feel I am on the verge of uninstalling this tool now... I have been struggling with it for a couple of weeks. I feel I can implement a simpler one from scratch myself with the same amount of time... anyway, still appreciate the efforts you put in to run this forum and improve this tool.
 
Last edited:
Thank you, your honest feedback is much appriciated.
I will review the documentation and make a plan on how I could re-organize and improve API examples. Instead of giving long examples I'll try to break it down in smaller chunks.

You also said that the video tutorials didn't address your main pain points. Could you expand on that. What were the things that were painful to understand/get working?

You say that item categories and definitions can be designed simpler, what do you mean by that. Do you mean we should explain better the attribute system? Or give more examples on how to nest categories and definitions?
Was this documentation page not helpful enough? Or did you miss it, in which case we would need to make it more visible somehow:

Again I want to reiterate that we really appriciate your feedback. Our goal is to make the best Inventory system that can be used in any kind of game. And part of making it the best is to make it easier to understand and less frustrating to use when getting started.
 
Please make more videos on it. for explaining each concept with different use cases. or make a video playlist on how do you make the demo scene from scratch. it will avoid all the confusion and give a better understanding.
 
Making video tutorials is very time consuming. But it is true that some videos could be improved or put up to date.
We will be releasing a UIS version 1.2 in the not to far future. I will plan to make new video tutorials at that time to include the new features.
 
Honestly I think UIS is what it is. It's an extremely extensible system that you can use to create any sort of inventory you want. In my opinion it is as easy to use as it can be.
There are other inventory systems that are simpler and easier to use, but they just do one type of inventory that can't be extended. I think most hobbyists who use this system and find it too complicated would be better of using those other systems. But I understand this is not what you would want. ;)

Perhaps multiple different simple demos (ones that are just database and UI, no gameplay) that show all the different ways the system can be utilized? Like a basic list inventory demo, a drag & drop grid inventory demo, diablo type shape grid demo etc. Then people who can't be bothered to learn the system can just use those demos to create their project.
Personally I like it more when assets have multiple demos scenes that show one feature/use case per scene in a more detailed fashion instead of the current huge scene that's almost a small game like UIS has.
 
Noted, I'll see if I can add a few new additional minimalist demo scenes focused on a very specific use case/feature, for the next update.
 
I'd be curious to know what the percentage of users of UIS use Opsive character controllers as well. I actually think that the Adventure Kit is exactly what is needed to demonstrate real world uses.

The Deathmatch kit is such a good example of how to use Behaviour Designed and UCC, many of the 'lessons' to be learned from that kit are available elesewhere but until you actually see it put into action you don't realize the significance.

So I guess what I'm saying is just more examples of different use cases. Honestly, videos are ok but to really learn something, I find, you need to just study a working example.
 
I find this a difficult question to answer. Starting out, it took me a while to get my head around the framework, but once I did, UIS is very powerful and easy to use. It is the initial learning curve that makes it seem complicated. I don't have the answers on how to make this easier, but I can point out the areas that took me the longest to understand:

  • Recognizing the flexibility of the UI. The schemas make it easy to get up and running quickly, but this had the unintended affect of initially limiting what I thought I could do with the UI. I should have ignored the templates and built a schema from scratch. An easy to follow tutorial on how to build a schema from scratch would be great.
  • Item Collections and filters. I still struggle with these. I expect this is my fault for not reviewing the documentation enough.
  • Shorter videos. The training video's are my goto for learning, I initially watch these all the way through. But they are quite broad and so when I want to go back and revisit a minor topic it is hard to find where that was on the video. Having a greater number of shorter videos would make it easier to revisit training material.
  • API. There are lots of great code examples throughout the doucmentation. But I often need to look at the code and debug to work out how to make things happen. A recent experience I had was writing custom code to drop the equipped weapon and trying to work out what inventory slot this came from. I got the equipped item by calling GetActiveInventoryItem on the CharacterInventoryBridge, but I cannot work out how to find what container and inventory slot this is in without looping through the entire inventory. An API library that has high level functions all in one class would be very helpful. This could just be a collation of the code examples from the documentation with proxy methods that redirect the call to the various UIS class methods. Just having this in one class would make it easier to find answers.
  • ItemInfo. I still don’t really understand how to use ItemInfo. It is often instantiated as a parameter in calls to methods. Many methods return the Item, but ItemInfo is then required as a parameter, but you can’t always construct it on the fly. A detailed explanation on what ItemInfo is and how to use it be really helpful.
  • Limitations. I have come across a couple UIS limitations that are not documented or intuitively apparent. These took a lot of time to identify and then rework my code around. I think it would be good to note the known UIS limitations in the online documentation.
On a positive note. I had no problems understanding Item Categories, Definitions, Mutable, Unique, Attributes, etc. The documentation, design and UI Manager for these is exceptional!!
 
Thank you for your honest feedback Zaddo. Some of your points are things that other users have struggled with too, we will do our best to address those as fast as possible.

I'll answer each of your points individually.

  1. When the first Inventory version was released the main complaint was about the UI being too complicated to setup because there were too many components and things had to be setup a certain way. So for v1.1 we added UI Designer which made the process of creating pieces of UI automatic. But as you mentioned this caused a bit of confusion with some newer users not understanding the purpose and function of the UI Designer and the schemas. Making a video tutorial takes a lot of time so for now I'll make adjustements to the documentation which hopefully will help. I updated this page:
  2. Item Collections are the objects that store your Items within the Inventory. A unique item cannot be in two Item Collections at the same time:
    Item Info Filters are used to get a subset of the items within a list of items, they are used mostly in the UI:
    Item Restrictions are conditions which can prevent certain items to be added to an Item Collection. For example setting a limit of 50 items stacks in the Main Item Collection:
  3. I agree making shorter videos would make things easier to find, but unfortunatly it is very hard to make short videos which are useful only by themselves. Some people prefer a big video so they can learn everything there is about a certain subject, otherwise want a mini video on a single feature. it is hard to keep a balance and making video take a lot of time. Once we have a bit more time to dedicate on UIS I will be remaking some of the videos which are starting to become slightly out of date already.
  4. Our system is so massive that even having a single script with high level functions would be very big. Instead we choose to comment thouroughly the entire source code such that you can easily go through and read the parts that interest you.
  5. I added a new documenation page for ItemInfo I hope it helps:
  6. What limitation are your refering too? I'll add it in the documenation in the relevants section
I hope that clarifies certain points and hopefully the changes you suggested will help other users :)
 
Thank you for your honest feedback Zaddo. Some of your points are things that other users have struggled with too, we will do our best to address those as fast as possible.

I'll answer each of your points individually.

  1. When the first Inventory version was released the main complaint was about the UI being too complicated to setup because there were too many components and things had to be setup a certain way. So for v1.1 we added UI Designer which made the process of creating pieces of UI automatic. But as you mentioned this caused a bit of confusion with some newer users not understanding the purpose and function of the UI Designer and the schemas. Making a video tutorial takes a lot of time so for now I'll make adjustements to the documentation which hopefully will help. I updated this page:
  2. Item Collections are the objects that store your Items within the Inventory. A unique item cannot be in two Item Collections at the same time:
    Item Info Filters are used to get a subset of the items within a list of items, they are used mostly in the UI:
    Item Restrictions are conditions which can prevent certain items to be added to an Item Collection. For example setting a limit of 50 items stacks in the Main Item Collection:
  3. I agree making shorter videos would make things easier to find, but unfortunatly it is very hard to make short videos which are useful only by themselves. Some people prefer a big video so they can learn everything there is about a certain subject, otherwise want a mini video on a single feature. it is hard to keep a balance and making video take a lot of time. Once we have a bit more time to dedicate on UIS I will be remaking some of the videos which are starting to become slightly out of date already.
  4. Our system is so massive that even having a single script with high level functions would be very big. Instead we choose to comment thouroughly the entire source code such that you can easily go through and read the parts that interest you.
  5. I added a new documenation page for ItemInfo I hope it helps:
  6. What limitation are your refering too? I'll add it in the documenation in the relevants section
I hope that clarifies certain points and hopefully the changes you suggested will help other users :)
Thanks for the great response. You should be very proud of UIS, it is a great product!

The limitations are not major concerns, the ones I have hit are: You cannot assign a different attribute value to each stack of Mutable/Non-unique items and the Shape grid UI aligns from the left only.
 
As a new user who are still in reading the documentation. I have following suggestions.
1) You said this system is flexible and modular, but after several hours of reading the docs, I still not very sure about the boundary of each "modular" part. So I think "Minimal Examples" to demonstrate each part which could works independently is a good idea. I noticed there are already some _FeatureDemos there. So maybe add much explanations for these demos or Start-from-scratch part in the docs is a good idea.

2) Need more complete articles which are designed to be read sequentially. Current docs seems very detailed, it's good to be used as a manual to lookup what I don't know. But if I read them as my "Beginner Guide", I was usually interrupt by "read more by this link" and "read more by that link", in each link, there are still much links are waiting for me. I'm not afraid of RTFM. But it will be better to have lots of aritcles which is designed for "Sequenial Reading". They don't need me to jump to other aritcle to confirm some concepts,and will give an minial explanation of its mentioned things, etc.

3) about the Terminology in every article. Bold anything which is a UIS specific concept/component could help me recognize things easily. Because things like "item","view","set","category" are too common in an article which is talking about inventory system. Bold or add quotation mark for them could be very helpful sometimes.
 
Thank you for the feedback Justus. I think you made some really good points, I'll add it to the list.

The answer some of these indivicually

1) We added the FeatureDemos precisely for that reason. The FeatureDemos all come with explanations/instructions directly inside Unity.
As for the start-from-scratch. That's explained by the Getting started section of the documenetation and the video tutorials.

The Ultimate Inventory System is huge, there are a ton of features, many of which are completely optional and specific to certain types of games. That's why the documentation is structured in a way where you read more about the features that interest you particularly

2) It's true that we are missing that sort of guide. We were hoping the video tutorials would help with that but perhaps I should take the time to write a more structured guide that would go further than just the Getting Started. The main challenge is that things branch out very quickly whether you choose to use an Inventory Grid, or an Item Shape Grid. Wheteher you'll have floating panels or a main menu with you Inventory, Shop, Crafting, etc...

I'll keep it in mind for now and we'll see what I come up with

3) I think that's a good idea. I'll discuss this with Justin such that we can keep the structure consitant between the different Opsive Assets.
 
I have found that being able to start using a small or huge sized "kit" of any "engine" is daunting.

I would like to see a menu selection that allows you to start with a "bare" bones option of UIS
and
THEN add "parts" (in order of learning) UNTIL you reach the FULL version.
 
Unfortunalty that's not really possible to do with an asset like ours with so many modules. A "FULL" version does not exist. You simply pick and choose the features that are relevant to you and ignore the ones you do not need.

That's what the Feature scenes are for. It allows you to test each feature seperatly with simple instructions on how it was setup and what's its purpose. Then you can dig into the parts you are interested in, without being bloated by things you don't need. And then you mix and match the features you want.

Some feature scene are extremely simple to learn the basics, and some showcases interesting or unusual use cases which was requested by a few people.

As for the "Menu Selection" you are refering to. The closest thing we have to that is the UIDesigner. Which is a way to quickly add and edit UI in your scene. many of the video tutorials show how to use it to build the UI for your game

I hope that helps you navigate through our system a bit better
 
Hello Everyone,

As you all know we are working hard on making an inventory system that is extremely flexible and modular such that any one can use it to make any type of game that requires item management. With the years the system has become very big with a lot of features, which makes it a bit intimidating for new users.

Recently we received some complaints that the system was too complicated and the documentation/tutorials were not helping enough. Following this feedback we would like to improve the documentation to make things easier to pickup and get started quickly.

We would love to get your suggestions on how to improve the user experience for new users.
I'd appreciate with the inventory some examples on how to use gamepad controls as an alternative to using the mouse pointer. I haven't spent much time with the inventory system yet, but in general, it seems like most Unity template kits skip gamepad controls for navigating UI menus. Anyway, this would be useful for anyone working on projects for consoles.
 
@r4opsive The Inventory UI was designed in a way that allows both keyboard/gamepad or mouse and switch between the two without any constraint.
There is a component that we add by default on the Inventory Canvas that ensures there is always something selected so that the gamepad navigation nevers gets locked.
The demo scene is a good example of that.
 
@r4opsive The Inventory UI was designed in a way that allows both keyboard/gamepad or mouse and switch between the two without any constraint.
There is a component that we add by default on the Inventory Canvas that ensures there is always something selected so that the gamepad navigation nevers gets locked.
The demo scene is a good example of that.
Oh, sorry. Maybe it was a much older version I was trying last year, or I didn't look very hard. My bad...
 
  • Maybe a flow chart infographic explaining how different things tie together to make an item? I think a lot of the confusion probably stems from understanding the structure of inheritance and how it all comes together to make an item that exists in the game world (and furthermore explaining that these are being "cloned" to make multiple copies of it).
  • Maybe a way to draw attention to things better. Like making the top option just say "(Default)" for applying changes to "this object/all objects/etc."
  • Under item definitions, maybe add a header saying the top box is for "editing item values" and the second box is for "Preview Item Values" (or some verbiage to that effect)
  • Maybe some way to draw attention to the top buttons for different pages on the UI Designer and Integrations tabs. I remember being a little lost until I figured those out.
  • When looking in some areas, for example the inventory component, clicking on the colored box for the item is different behavior from clicking on the word. I think people don't expect this. Can you do a right click selection menu, instead? Then make it so clicking on the colored box OR the word just expands the item.
  • Hide the bright icons unless the person is actually using that section. For example, under "Setup->Create Templates" there is a yellow ! icon that is always present, which I think alarms people or makes them think something is wrong, even though they aren't using that section.
  • "Setup->Create Templates" Option 1: Change "Item Pickup" to "Item Pickup (single item)" sub description, add "For example, when a player drops a single item such as a weapon. The item's model can be displayed." and Option 2: "Item Inventory (a group of items or a container)" Explain this would be for grouping items together, such as a Weapon + Ammo. Option 3: Random -> Randomized
  • When clicking on colored boxes, maybe add a confirmation saying "Jump to definition? Y/N" and an option "Do not show me this again"
  • Add namespaces/using to all your example code, so it's more obvious what to add for "Using Opsive.UltimateInventorySystem... etc" when referencing support documentation
  • A list of events in documentation, like exists for UCC
  • For UCC integration, things feel a bit rough for like, in Code: Spawning an item, equipping that item, equipping that item set, starting an ability, then reversing that process. For example, if you want the player to equip a spoon while eating at a table, but then that spoon disappear when they stop eating.
  • I feel like there should be some kind of overloaded function for finding items and inventories, instead of having a bunch of functions for different scenarios that all are attempting to do the same goal. Also would be nice to have ones that work when also using UCC. For example, of signatures:

  • Code:
    //there are probably better function names than what I'm writing...
    
    var item = FindItemInInventory (ItemDefinition) // first item matching definition
    var item = FindItemInInventory (Item) // first item that matches this type of item
    var item = FindItemInInventory (Item, GameObject) // looks in that GameObject's inventory, if it exists, instead of whatever GameObject script is attached to)
    
    var inventory = FindInventory () // basically just does same thing as GetComponent<Inventory>
    var inventory = FindInventory (GameObject) // find inventory on that GameObject instead of the one this is attached to
    var inventory = FindInventory (Bool inParents) // on True, will look at parents.  Returns after finding first inventory
Might come up with more ideas, later.
 
@DavidC Thank you for the feedback! We really appriaciate it.
I'll go through your points one by one

1)
Maybe a flow chart infographic explaining how different things tie together to make an item? I think a lot of the confusion probably stems from understanding the structure of inheritance and how it all comes together to make an item that exists in the game world (and furthermore explaining that these are being "cloned" to make multiple copies of it).
I added the diagrams from the video such that it can be seen in one glance

2)
Maybe a way to draw attention to things better. Like making the top option just say "(Default)" for applying changes to "this object/all objects/etc."
I'm not sure what you are refering to. Attributes in the editor perhaps?

3)
Under item definitions, maybe add a header saying the top box is for "editing item values" and the second box is for "Preview Item Values" (or some verbiage to that effect)
Again I'm not sure what you are refering to. Are you refering to the ItemDefinition tab within the Inventory Manager window? I don't see top/down box you are refering to.

If it's in relation to the attributes, I do belive that it is clear, with the headings : Value, Inherited Value and Override Value. So that won't change.

4)
Maybe some way to draw attention to the top buttons for different pages on the UI Designer and Integrations tabs. I remember being a little lost until I figured those out.
UI Designer is quite complex, but I do think that people that get stuck will go to the documentation or the video tutorial where everything is explained in detail.

5)
When looking in some areas, for example the inventory component, clicking on the colored box for the item is different behavior from clicking on the word. I think people don't expect this. Can you do a right click selection menu, instead? Then make it so clicking on the colored box OR the word just expands the item.
I personally disagree on this one, I think clicking on the icon is quite practical, makes it very fast to go through the database especially when clicking on objects in the relationship box in ItemCategories and ItemDefinitions tab of the InventoryManager window.

Adding a right click context menu though isn't a bad idea, I could add option for duplicate, remove, etc...
I'll add that to my list of feature requests

6)
Hide the bright icons unless the person is actually using that section. For example, under "Setup->Create Templates" there is a yellow ! icon that is always present, which I think alarms people or makes them think something is wrong, even though they aren't using that section.
I see what you mean... I'll see what I can do about that

7)
"Setup->Create Templates" Option 1: Change "Item Pickup" to "Item Pickup (single item)" sub description, add "For example, when a player drops a single item such as a weapon. The item's model can be displayed." and Option 2: "Item Inventory (a group of items or a container)" Explain this would be for grouping items together, such as a Weapon + Ammo. Option 3: Random -> Randomized
I'll try to make those option more clear

8)
When clicking on colored boxes, maybe add a confirmation saying "Jump to definition? Y/N" and an option "Do not show me this again"
Same as 5), I'm afraid I disagree on this one

9)
Add namespaces/using to all your example code, so it's more obvious what to add for "Using Opsive.UltimateInventorySystem... etc" when referencing support documentation
I'm afraid I can't add that to all the code examples as we are trying to keep them short and to the point, usually small snipperts.
Your IDE should be adding those automatically as you write your code. If not I would highly recommend you use another IDE (visual studio is free and should do it automatically, I personally use Rider but it is not free)

10)
A list of events in documentation, like exists for UCC
I chose to go against that because events can be added very easily and the documentation can become outdated quickly.
Instead I opted of writing a EventNames.cs script which contains all the events in UIS with a description of what they are used for. I find it a lot more pratical as you can find what you are looking for as you write your code.

If any of the descriptions are not clear do let me know and I'll update them.

11)
For UCC integration, things feel a bit rough for like, in Code: Spawning an item, equipping that item, equipping that item set, starting an ability, then reversing that process. For example, if you want the player to equip a spoon while eating at a table, but then that spoon disappear when they stop eating.
I'll look at the documentation and see if I can give some additional code examples

12)
I feel like there should be some kind of overloaded function for finding items and inventories, instead of having a bunch of functions for different scenarios that all are attempting to do the same goal. Also would be nice to have ones that work when also using UCC. For example, of signatures:
I'm torn on this one, on one hand it makes it shorter but on the other it's kind of a black magic box. And there can be many reason it doesn't work or does not give the result one could want.
If you think you really want it, you can create your own custom utility script that would help you for your own project.
 
Top