Jump to content

[KISv2] [ALPHA] Testing of the new KIS


IgorZ
 Share

Recommended Posts

Attention! This is not a real mod. It's a concept of the mod, and here I'm trying to attract a broad audience to test it. All the builds are debug and it should be expected that they lack of the functionality and have bugs, including the severe ones. You should absolutely not be considering these releases for your carrier games.

READ CAREFULLY what's stated below BEFORE getting yourself involved into this test.

Backwards compatibility

For the alpha test a dedicated part is created ("KISv2 test inventory"), and only this part is subject to the new KISv2 logic. I.e. the other parts in the game will not be affected. However, the inventory carried by the kerbals can potentially get affected since KISv2 module will be added to all the  kerbals.  It should not have any consequences, but it can! I did my best to not allow the ALPHA logic to affect the stock game logic, but (bad) things happen.

The goals of the alpha testing

  • Play with some of the solutions that are already implemented to see if they fit the gamestyle of the community.
  • Find the edge cases when the new functionality fails. In my manual tests I can only cover the cases that I can predict.
  • Let people trying the approach and suggest their own ideas.

How to install the release and what to expect

For every release there will be a separate post in this thread. There will be a description of what is being tested and what are the limitations in the release. Scroll the thread down to the latest release post and follow the instructions in it.

Keep in mind that the backwards compatibility between the releases will not be purposely maintained. For the sake of saving the eng efforts, I won't be spending any extra time to make the older saves compatible. If the new release is incompatible, it will be stated in the release notes. If it's not stated, then the release is compatible.

How to participate

Please, give your thoughts in this forum thread. If you've found a bug, please consider to file a bug in GitHub rather than explaining it here, in the thread. A lot of bugs are expected to be discovered, and we don't want them to spam the thread. And, in the end, any bug report will have to be transformed into a GitHub issue anyway, so you may save a bit of my time.

Make sure you've enabled the "Verbose logging" setting in your game. A detailed log is the key to the issues troubleshooting. Please, always add the logs to any issue report.

Edited by IgorZ
Link to comment
Share on other sites

Installation:

  • The mod should be located at: GameData/KIS2.
  • The latest compatible ModuleManager is required.

What this build MUST have:

  • Only one part supports the new inventory: "KISv2 test inventory". It's a copy of the stock "SEQ-24 Cargo Storage Unit" part.
  • Any item or a group of items can be moved between any KISv2 inventory windows.
  • In editor, a part can be dragged from the editor's panel into a KISv2 dialog.
  • In editor, a part can be dragged from the editor's working area into a KISv2 dialog. And vice versa.
  • In editor, the parts can be moved between KISv2 and the stock inventory dialogs.
  • In flight, any changes to the STOCK inventory dialogs should be reflected in the KISv2 dialogs.
  • In flight, any changes to the KISv2 inventory dialogs should be reflected in the STOCK dialogs.
  • In flight, KISv2 and STOCK inventory are not cooperating. If you pick a part from the STOCK dialog, it will ONLY be recognized by another STOCK dailog. This also applies to the KISv2 dialogs.
  • Interaction via KISv2 respects the stock inventory settings in terms of stack sizes and the overall number of slots (in the stock module).

How is this build INCOMPATIBLE:

  • In flight, the drop part functionality is not tested or tuned. You can use it, but please don't file the bugs. It'll change in the following releases.
  • In flight, you CANNOT pickup any dropped part.
  • KISv2 dialog allows adding more parts than the STOCK GUI allows by volume. When it happens, using of the stock GUI will result in a lot of bad issues. Please, don't report them.

You can adjust the compatibility settings as stated in the Wiki. However, it's a gray zone. Nothing was tested by me in there. Good luck!

Edited by IgorZ
Link to comment
Share on other sites

Awesome work, really looking forward to where this goes. It's still very early to ask questions, but does it mean we can override the kerbals weight and volume limit by using their kis and not stock inventory (thinking of the function of having several kerbals, who when together can carry more), or were the volumes just placeholders for testing? Also do you intend to make it override the stock inventory system? Right now, they seem to run in parallel, but what if you only wanted to use the kis layout without always having to click on the paw each time, would it be possible to "disable" the stock inventory?

Link to comment
Share on other sites

17 minutes ago, KawaiiLucy said:

does it mean we can override the kerbals weight and volume limit by using their kis and not stock inventory

Eventually, yes. The idea is not yet finalized though. My rough idea was to stop applying the hards limits and, instead, adding a resource cost to the actions. E.g. if you're on orbit, then you spend EVA fuel to move the parts. And if you're on the surface, you'd need to spend electricity, assuming your character is using an exoskeleton to move the heavy parts. Again, it's a very rough idea at this moment. The main focus as of now is to give a new inventory access.

19 minutes ago, KawaiiLucy said:

Also do you intend to make it override the stock inventory system?

You can disable the stock GUI via the settings. However, I'd not recommend it at this point. Eventually, KISv2 will replace the stock GUI completely. Note, that the main idea is not to disable the stock inventory, but replacing the GUI to it. Under the hood, if a stock inventory is being changed, the KIS inventory will obey.  That being said, any mod that deals with the stock inventory, will be compatible with KISv2. And any mod that deals with the KISv2 API, will be compatible with the stock inventory at the extent of the compatibility settings.

Link to comment
Share on other sites

14 hours ago, Daniel Prates said:

DEAR LORD, IgorZ js trying to make KIS and the stock storage system talk to eachother.

I'm doing my best, but I need a help of the community. Thank you for expressing a willing to participate in the test.

Link to comment
Share on other sites

On 9/5/2021 at 11:26 AM, IgorZ said:

Please, give your thoughts in this forum thread.

  • Will all items without config volume, have autogenerated volumes, based on model boundaries ? 
  • Will it include/support PAWCollapsedInventories from KSPCommunityFixes ?
Link to comment
Share on other sites

12 hours ago, flart said:

Will all items without config volume, have autogenerated volumes, based on model boundaries ? 

Yes. KIS will prefer using the stock module to get the volume, but if there is no such module or the part is explicitly excluded ("stockVolumeExceptions" setting), then the model boundary will be used.

12 hours ago, flart said:

Will it include/support PAWCollapsedInventories from KSPCommunityFixes ?

In the full mode, KIS is not compatible with the stock GUI, so it'll be hidden altogether ("hideStockGui" setting). However, if the GUI is not hidden, then the fix won't get affected by KIS.

Link to comment
Share on other sites

Finally sat down to start some testing. Game doesn't recognize the mod. Hehe it requires the usual module manager doesn't it? Before I go on, what else? Clickthroughblocker, things like that?

EDIT:  now I am not entirely too sure anything else was necessary other than the mere KIS2 folder within the GAMEDATA folder. I was thinking something was missing because inside the editor, no evidence of KIS could be found anywhere, so I thought KIS hasn't been installed. Turns out it was, but I can only access its functions in flight, and from an EVA'ed kerbal's interface, where a button for KIS interaction will appear. Is that supposed to be right?  In fact the only place I am being able to open, simultaneously, both a stock and a KIS2 inventory screen, is during EVA. Everywhere else, It seems like only stock inventory systems exist, and I am left in doubt whether I am lacking the installation of something else. Before I proceed, let's review the dependencies!

Edited by Daniel Prates
Link to comment
Share on other sites

13 hours ago, Daniel Prates said:

Hehe it requires the usual module manager doesn't it?

I so got used to MM that it's like a stock game for me now. Indeed, you need this mod installed. I'll be adding this mod into the alpha releases going forward. Thanks.

13 hours ago, Daniel Prates said:

Clickthroughblocker, things like that?

This and other mods are optional. FWIW, specifically Clickthroughblocker would not give any benefits with KISv2 since the dialogs are already working right.

13 hours ago, Daniel Prates said:

I was thinking something was missing because inside the editor, no evidence of KIS could be found anywhere, so I thought KIS hasn't been installed

Given you have MM installed, a new part should appear: "KISv2 test inventory". This is the only part in Alpha-1 that supports KISv2. You should be able to open KISv2 dialog for it in the editor.

13 hours ago, Daniel Prates said:

Everywhere else, It seems like only stock inventory systems exist, and I am left in doubt whether I am lacking the installation of something else

If you don't see PAW option "KISv2: Inventory" for the aforementioned part, then it's indeed a bug. Please, share the logs (with the verbose option enabled). A small video would be also very useful.

Link to comment
Share on other sites

@IgorZ I've been messing around with the stock inventory / cargo part code in KSPCommunityFixes, to fix some of the stock issues and limitations.

Quick summary ;

  • BetterCargoPartVolume : Parts that have a ModuleCargoPart with no "packedVolume" field defined in their config will have their volume auto-computed from the part bounds at prefab compilation. This also handle multiple volume per part when using the ModulePartVariants mesh-switching feature, and provide a C# interface for mesh-switcher mods to handle volume switching. See documentation for details.
  • AllowNestedInventoryPart : Remove the "inventory parts can't be cargo parts" stock limitation. Require the BetterCargoPartVolume patch to be enabled.

I've not released it yet, but I've written the details here, and the relevant code is here.

I would appreciate your feedback on this.

Link to comment
Share on other sites

allright @IgorZ now we're going somewhere. May I suggest you add some lines on the second thread post, with instructions? It is not immediately clear that there is a Kis2 part you are supposed to test against the other stock parts - I mean yeah its kinda obvious when you think of it but my eyes just glanced over the part without seeing it since it is the same model as the stock one.   

Well, I did the testing in the parameters you requested. Will go item by item:

  • Any item or a group of items can be moved between any KISv2 inventory windows - WORKS FINE;
  • In editor, a part can be dragged from the editor's panel into a KISv2 dialog. - WORKS FINE;
  • In editor, a part can be dragged from the editor's working area into a KISv2 dialog. And vice versa. - WORKS FINE;
  • In editor, the parts can be moved between KISv2 and the stock inventory dialogs. - WORKS FINE; 
  • In flight, any changes to the STOCK inventory dialogs should be reflected in the KISv2 dialogs. I OPENED STOCK AND KIS DIALOGS FOR THE KIS PART, THEN STOCK DIALOG FOR A STOCK PART, AND MOVED THINGS AROUND IN SEVERAL AND EXAUSTING WAYS. WORKS FINE. INDIVIDUAL AND TOTAL VOLUMES AND WEIGHT SEEM TO CHECK OUT TOO.
  • In flight, any changes to the KISv2 inventory dialogs should be reflected in the STOCK dialogs. THE TEST ABOVE COVERED THIS
  • In flight, KISv2 and STOCK inventory are not cooperating. If you pick a part from the STOCK dialog, it will ONLY be recognized by another STOCK dIalog. This also applies to the KISv2 dialogs. YEAH. IN EACH WAY I MOVE THINGS FROM A STOCK PART TO A KIS PART, IT WORKS FINE AND THE RESULT REFLETCST IN THE KIS DIALOG, BUT I CANT MOVE TO AND FROM THE KIS DIALOG ITSELF. 
  • Interaction via KISv2 respects the stock inventory settings in terms of stack sizes and the overall number of slots (in the stock module). SEEMS TO WORK FINE FOR ME TOO.

So, if you wanted to have those findings cross-checked on another machine, they all check out.  My coding knowledge is close to null, but if it helps, I can re-do all testing you have already done yourself, for proof-reading, so to speak.  Or test for the first time some time-consuming chore that you don't have the patience to do.  Now throw me something else to do!

Edited by Daniel Prates
Link to comment
Share on other sites

9 hours ago, Daniel Prates said:

May I suggest you add some lines on the second thread post, with instructions? It is not immediately clear that there is a Kis2 part you are supposed to test against the other stock parts - I mean yeah its kinda obvious when you think of it but my eyes just glanced over the part without seeing it since it is the same model as the stock one.   

Done. Thanks for pointing this out.

9 hours ago, Daniel Prates said:

Well, I did the testing in the parameters you requested. Will go item by item:

Great! Thanks a lot.

9 hours ago, Daniel Prates said:

I can re-do all testing you have already done yourself, for proof-reading, so to speak.

This would be very helpful. In Alpha-2 I'm going to release a lot of code changes while the GUI stays the same. So, the same functionality would need to be verified.

14 hours ago, Gotmachine said:

I've been messing around with the stock inventory / cargo part code in KSPCommunityFixes, to fix some of the stock issues and limitations.

Good to know. I'll check it out to see if KIS conflicts with it or if it can use it.

Link to comment
Share on other sites

  • 2 weeks later...

A brainstorming is needed.

GIVEN: The stock inventory system allows restricting parts from any EVA interaction. It also can enable a part for EVA movement, but not for the inventory storing.

What are your thoughts? What real cases do you see where this behavior can be useful? When would you like to have a part that cannot be moved in EVA? Or can be moved, but not stored into an inventory?

I'm asking because I need to understand if it's a user feature which needs to be preserved, or if it's a purely a technical limitation that should be worked around in KIS.

Link to comment
Share on other sites

23 hours ago, IgorZ said:

A brainstorming is needed.

GIVEN: The stock inventory system allows restricting parts from any EVA interaction. It also can enable a part for EVA movement, but not for the inventory storing.

What are your thoughts? What real cases do you see where this behavior can be useful? When would you like to have a part that cannot be moved in EVA? Or can be moved, but not stored into an inventory?

I'm asking because I need to understand if it's a user feature which needs to be preserved, or if it's a purely a technical limitation that should be worked around in KIS.

I dont like either idea. I like the idea of parts that cant be stored in eva inventory, but not parts that cant be stored in ANY inventory.
In short, as long as you have volume/mass limits, I dont see a reason to restrict parts from the system.

Link to comment
Share on other sites

12 hours ago, toric5 said:

I dont like either idea. I like the idea of parts that cant be stored in eva inventory, but not parts that cant be stored in ANY inventory.
In short, as long as you have volume/mass limits, I dont see a reason to restrict parts from the system.

If I understand the sentiment correctly, I agree with this. A kind of 'common sense' approach to inv storage. I'm totally fine with restrictions on things that just no matter how much you compress or deflate them, just really shouldn't be able fit into an EVA pack, but if the cargo part has space and the game and/or a mod allows for construction/assembly direct from ship inv (just spitballing and I can't think right now of a specific example), then it seems pretty arbitrary to restrict this.

Link to comment
Share on other sites

Thank you for your thoughts. So, it fits my vision too.  The rule of thumb is: if a part can be carried/moved by the kerbal(s), it must be allowed for this regardless to the  fact if the part's maker bothered to make an EVA config. And if the part can be moved and fits the inventory by the volume limit, it must be able to be placed into it.

A side question is the mass limit. In the stock inventory it's an optional limit. And as far as I can tell it was mostly designed for the kerbal personal inventories. The question is: should a non-kerbal inventory have this limit? What is the use case? When we speak about a space craft, we all understand that the mass of a single part is not what defines the launch success. So, why limiting an inventory by mass?

Link to comment
Share on other sites

5 hours ago, IgorZ said:

So, why limiting an inventory by mass

Cardboard box from pre-Serenity ground science mod answers your question. IRL things like ISO containers have max allowed mass ofc. But matter in KSP (due to 1/10 scale) is extremely dense and for most of the containers max mass should be unlimited/non-defined anyway.

Link to comment
Share on other sites

  • 3 weeks later...

New features to this build

  1. All operations with the inventory are now made using the stock methods ONLY. This deprecates the respectStockStackingLogic
    compatibility setting.
  2. The stock GUI should be able to handle the overflowed stacks. I.e. the stacks that are bigger than configured in the cargo module
    must be handled just fine by the stock.
  3. KIS now uses the STOCK inventory volume. There must be a full sync between the two GUIs.
  4. The parts with negative volume can now be added into the stock inventory via the KIS GUI. The volume should be accounted correctly,
    using the KIS geometry estimation algo in BOTH of the GUIs.
  5. The non-cargo parts should be successfully added and processed via KIS GUI, and be moved/removed in the stock GUI as well. The stock
    GUI is not expected to ADD such parts.
  6. All actions are now checking the volume restriction. The spawn new part dialog included.
  7. New parts can now be spawned in the KIS inventory if BuilderMode.enabled is set to true. A hint should be showing up when hovering
    over an empty slot. Clicking the suggested sequence will produce a spawn new part dialog similar to the old debug KIS dialog.
  8. The stack sizes are now limited in both KIS and STOCK. The KIS limit is 500, and the STOCK limit is 99. It can be overridden
    via the part settings: maxStockSlotSize/maxKisSlotSize.
  9. New test parts added: "KISv2 test inventory SMALL" and "KISv2 test inventory VERY SMALL". The offer lower space for the items.

Testing features

  1. The hotkeys to produce various "sample" parts in the inventory if AlphaFlags.enableInventorySamples is set to true:
    • ALT+1 - adds three random fuel parts that are loaded with resources at 100% of their capacity.
    • ALT+2 - adds a random fuel part that is loaded with resources at the 10%-50% range level (randomly).
    • ALT+3 - adds a random fuel part that is loaded with resources at exactly the 50% level.
    • ALT+4 - adds a random fuel part that is loaded with resources at exactly the 100% level.
    • ALT+5 - adds three instances of the same random fuel part that is loaded with resources at the 10%-50% range level (randomly).
    • Only the inventories with an open GUI will get updated.
    • Not all parts will get added due to the compatibility constraints. Verify the logs.

The main focus of testing of this build

  1. Add things to the inventory and ensure they can be managed in both KIS and STOCK GUI with no issues. Try to break the logic.
  2. Try various save/load approaches to break the KIS/STOCK sync. Hints:
    • Quick save/load at the arbitrary moment.
    • Switching scenes.
    • Launch rollback.
  3. Try to break the spawn part dialog approach. And give your thoughts on it's usability. This dialog will become an essential part
    of KISv2 "builder mode" concept. We want making building in EVA comfortable.
  4. Check how stable and useful is the stacking approach of the parts with different resources (see FR#2 to learn how to generate sample parts).
Link to comment
Share on other sites

  • 2 weeks later...
On 9/25/2021 at 6:56 AM, IgorZ said:

GIVEN: The stock inventory system allows restricting parts from any EVA interaction. It also can enable a part for EVA movement, but not for the inventory storing.

I think it makes a certain amount of sense from the "simulation" perspective - I don't imagine "storage compartments" as just large, structure-less voids with a bunch of snacks bouncing around next to a loose rocket engine. So I'd expect e.g. "an inflatable hab" to be stowed somewhere on the outside of the ship (like, you know, the one actually in space was hidden in the trunk - which is not a container). So from the "simulation" standpoint I think it makes sense for containers to be limited in what they can carry. This applies especially to mass - imagine a cube of plutonium just tearing through your entire storage at slightest acceleration.

I do think that doing that properly is more complex than just a size or a single flag, and considering that putting things in inventories is also a way to cope with "game physics," I don't think this is a good limitation for a game.

Link to comment
Share on other sites

  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...