Search Unity

Feedback Honestly, I think you guys are heading the wrong directionn!

Discussion in 'Game Foundation' started by HG_China, Mar 3, 2020.

  1. HG_China

    HG_China

    Joined:
    May 17, 2019
    Posts:
    5
    Honestly, I think you guys are heading the wrong direction. I was holding my words for weeks but I can't hold it anymore.

    It took me days of tweaking the framework and hours of thinking if you think my opinion is incorrect please just let me know.

    Short version:
    The framework is just not working.
    Make GameItem more flexible and add an archive feature to it.



    Full version:

    The problem:
    • After a week of tweaking GameFoundation, I think I kind of understand why there's barely news, videos or blog that talks about it: IT IS JUST NOT WORKING.

    The pros:
    • Still updating.
    • Easy integration.
    • Entity and Component pattern.
    • Many base systems (more in the future).
    • It's free (though you could spend around 20$ to buy a much useful inventory system).

    The cons:
    • Update per 3 months.
    • Answering questions monthly.
    • Ignores user's needs in a very polite way (I think your idea is wonderful, we will consider it in the future that kind of bullshit).
    • Confused examples.
    • It's just not working.
    The theory:

    GameItem, Definition and Detail Definition are great concepts, but you're breaking your own rules.

    An Inventory item (or other system items) should be derived from a GameItem, and they should be considered as a fixed item, which you cannot (should not) change it's definition and detail Definition at runtime, I think it's fair.

    A GameItem, on the other hand, will be used at runtime only. Thus should be able to add/remove/change its definition and detail definition.

    For example (from GameFoundation's example: Stats Example):

    /// Stats are associated with game items, so we will need one to keep track of the player's health.
    private GameItem m_PlayerStats;
    m_PlayerStats = new GameItem(CatalogManager.gameItemCatalog.GetGameItemDefinition("player"));

    First of all, there's no way to track the player's health across the session, because GameItem doesn't support archive (though you could save it to your own class or something).

    Second, if the user gains some ability, you cannot add it to the m_PlayerStats, because GameItem doesn't allow you to add a detail definition at runtime. Ideally, if I want to know the player whether it has the ability, I will not check the ability's value, I will check if the player HAS the ability (same like Entity-Component pattern, from is something to has something).

    Third, here goes the ridiculous part: you can add a Stats Detail Definition to any item whether it is a GameItem or Inventory Item (or other system items) at runtime, but you cannot add other types of detail definition (like your custom detail definition). I don't know if it is a bug or a feature (maybe both).

    The solution:
    • Stop making rules and breaking it after.
    • Just provide 2 ways for user:
    • You wanna the item fixed? Go for InventoryItem (or other system items).
    • You wanna change item stats or anything at runtime? Go for GameItem.
    • Discuss with your user, at least once a week.
    • Don't bullshit us, If you think our idea is not worth it, just say no. We will understand.

    Some good comments:

    The first version of GameFoundation I think its goal is clear: we're building an inventory system (for very beginner).
    Then you added the stats system and transaction system, I think they're all good. Actually I even think the idea of using multiple components to form the final item is a great idea.
    The GameFoundation is no limit to an inventory system anymore, I think GameFoundation has a potential.
     
  2. erika_d

    erika_d

    Joined:
    Jan 20, 2016
    Posts:
    413
    Hi @hanguang1985,

    Thank you very much for your frank, detailed, and thoughtful feedback. We are so grateful for the time and thought you have clearly put into it, as well as for everyone else who has posted helpful and detailed feedback.
    • Let me start off by making it clear that for us, saying “we like the idea and will consider it” is real, even though I totally get how it may sound like just another platitude. The reality is we don’t have the bandwidth to immediately integrate every suggestion and feedback we get, as I’m sure you understand, but we are striving to balance user requests with the long term plan for the product. I can honestly state that personally, I have never read any suggestion on these forum posts that I thought was just a flat out bad idea. Each suggestion and feedback submitted on the forums, or by our internal team, gets added by our Product Manager to a product board and grouped with similar suggestions. Does that mean that it will absolutely get into the next release or the one after? No, not necessarily. But it does mean that it stays on our radar and is not ignored.

    • Secondly, answering questions monthly. This is a fair callout. We did let forum responses lag around Christmas and then going into the push for completing the latest release. I personally promise to try to raise the bar here.

    • For your concern about the frequency of the updates, I hear you there also. As a team, we’ve done some soul searching recently about velocity and are making a concerted effort to up our game in this area, either in speed of release or in boldness of features. Out of pure curiosity (i.e. no commitments) what is the speed of updates that you would want to see? And would you rather see frequent small updates, or less frequent large ones?

    • Comments on Game Item Definition:
      • I believe you are suggesting having GameItemDefinitions be editable at runtime but not InventoryItemDefinitions. Personally I would worry that this would be confusing, and seem like another case of making a rule and then not sticking to it. What I would rather see is leaving all definitions to be fixed at runtime, but finding an alternate way to give you the kind of editing capabilities in the runtime instance that it sounds like you are in search of (i.e. in the InventoryItem and GameItem vs in the InventoryItemDefinition and GameItemDefinition).

      • I also think your comments suggest that we may need to take a second pass in our documentation to make sure it is clearly and accurately describing the way the system is intended to work right now.

      • I agree we should stay consistent in adhering to our rules; I think StatsDetailDefinition being able to be added to ItemDefinitions at runtime may be a bug...I will have to look into that one a bit.

      • When you say archiving for GameItems I think you mean saving them (vs deleting them)? You’re correct that they should be able to be saved same as the other types of items and that it’s not something we offer right now. I agree that it's likely something we'll need to address at some point in the future here.
    Finally, and importantly, I want to reiterate that Game Foundation is still a preview package, and for us, that means it is still growing into what we all one day want to see it become. It’s true that it’s not perfect yet (when is anything ever perfect?), but we intend one day to realize the potential that we, like you, see in Game Foundation. And as always, keep that feedback coming. :)
     
    NotaNaN, VirginieC and mingz-unity like this.
  3. HG_China

    HG_China

    Joined:
    May 17, 2019
    Posts:
    5
    From my perspective, I think either way has its own pros and cons.
    But I would suggest another approach to make the framework "alive". Try to invite some bloggers or YouTubers (Code Monkey, Brackeys) to tryout GameFoundation and give some feedback (on their website).
    I believe more ppl involved in discussions will help the product growth. Otherwise, it is just another story of "bì mén zào chē“ (ask @mingz-unity for the translation).
     
  4. erika_d

    erika_d

    Joined:
    Jan 20, 2016
    Posts:
    413
    For my part, that seems like something to be done more when Game Foundation is ready to come out of preview status into a full package, however that feels to me like a decision for our wonderful product and marketing folks. I am in complete agreement however about developing packages using developer feedback and not in an isolated environment - one of the reasons we so value all our forum feedback! ;)
     
  5. AngelBeatsZzz

    AngelBeatsZzz

    Joined:
    Nov 24, 2017
    Posts:
    239
    Hi, it looks like the "Saving and Loading Game State" content in the document is outdated, and now there is no "GameFoundation.Save ()" method.
     
    erika_d likes this.
  6. CloudExSolider

    CloudExSolider

    Joined:
    Jul 19, 2016
    Posts:
    4
    Make sure you have the correct preview selected in the top left corner. When 0.3.0 came out the saving and loading was changed. The documentation was updated as well, you just need the right one

    Unity Doc Version Snip.PNG