Main Menu

News:

LINKS: Website | Steam | Wiki

Suggestions for Full Keyboard Mode - Swapping Items

Started by razorbladeetc62, January 07, 2025, 08:28:12 PM

Previous topic - Next topic

razorbladeetc62

Hello,

I am a new Cogmind player and have been playing in full keyboard mode. I have hundreds of hours in games like DCSS and Jupiter Hell and enjoy the speed and efficiency of playing entirely with a keyboard for decision-making.

After over 15 hours in Cogmind, I've found inventory management and swapping items (power, propulsion, utility, or weapon units) between the inventory and equipped slots somewhat frustrating with the keyboard. This has made it challenging to fully enjoy the game. I've searched to see if this issue has already been addressed but haven't found a solution, so I'd like to offer a few suggestions here.

Note: I am using DCSS as a reference below, but I do not mean to conflate its mechanics with those of Cogmind. I fully understand they are distinct games.


*** Example from DCSS ***
In DCSS, swapping a currently wielded weapon is straightforward:
- Press 'w' to open the inventory for weapons.
- Use the arrow keys or numpad to select the desired weapon.
- Press Enter to confirm the swap.
For armor, you press 'W' instead of 'w', and then the reamining steps are the same.
For rings (which have two slots), you press 'P', do the remaining steps and additionally specify the left or right slot with '<' or '>'.


*** Challenges in Cogmind ***
Currently, swapping items in Cogmind can feel cumbersome, as I have to identify the letter assigned to the equipped item I want to swap (e.g., for a weapon in slot 'G', press '/' then 'G'). As my build changes (e.g., after leveling up), the assigned letters for slots also change, requiring repeated effort to locate the correct item. This process interrupts the flow of gameplay TMO.


*** Suggestions for Improvement ***
To streamline this process, I suggest an optional system for swapping items, category-based selection: assign keys to item categories (e.g., 'q', 'w', 'e', 'r') a consistent numbering system (e.g., '1', '2', '3', ... or again 'q', 'w', 'e', ...) to each item in the category.

Swap Workflow Example:
If I want to swap my 3rd weapon, I press 'r' (the 4th category), then '3' to select the item.
This brings up a list of available weapons in my inventory, numbered the same way. The desired target is the fourth item, so I press '4' to choose the replacement.
This sequence - 'r', '3', '4' - avoids the need to check slot letters or inventory mappings repeatedly.

An additional suggestion is floor item integration. Treat the item on the floor as part of a "virtual inventory" accessible via a key (e.g., 'd' or another key). To swap a weapon with the one on the floor: press 'r' (the weapon category), then '3' (to select the 3rd weapon), and finally 'd'.
Alternatively, pressing 'd' first could toggle the floor item and automatically focus on the appropriate category.

Lastly, allow direct comparison between equipped items and the item on the floor, the latter being the target. I could select the item on the floor, and then one currently wielded to check the comparison, but not the other way around, but I often feel more important to give the focus on the item on the floor.


*** Final Notes ***
I'm not entirely sure if some of these features are already implemented or conflict with existing mechanics. If so, I apologize for any oversight. Regardless, I appreciate the incredible work that has gone into Cogmind over the years and understand that these are just suggestions from my perspective as a new player.

Thank you for considering my feedback, and I look forward to exploring more of the game!

Kyzrati

#1
Hi razorbladeetc62, welcome and thanks!

Yeah I'm quite familiar with the consistent lettering systems of other roguelikes, having played so many and generally using keyboard myself (by far the longest period playing DCSS!).

There's definitely an advantage there, for sure, although Cogmind is far more dynamic than most roguelikes in terms of item upgrading and slot changes... in general I feel the suggestions may not be able to handle having a growing or excessive number of slots? Or massive inventories? Like some builds have 20 slots of the same type... or nothing but utilities in their huge inventory :P (one build even loses slots)

It's nice to have a system that consistently handles all the dynamism.

As usual, if there is enough demand I'll more strongly consider such an optional approach (which I do find interesting and have considered similar options before!), though I think this is the first such request in over 10 years, and a sizeable chunk of Cogmind players use keyboard mode (myself among them, and many of the existing related features have come out of suggestions or frequent needs, to be sure!). It'd be quite a lot of work to implement in a satisfactory manner.

One area for better managing the existing system, if you haven't already (I'm guessing you have?), is to turn off autosorting. This will at least keep lettering consistent except between evolutions, when it will naturally shift somewhat.

Note that selective floor swapping is sort of possible now if you have a full inventory and there is no autoswap condition, by repeating the 'a' attach command, though this is different from absolute manual swapping regardless of conditions (i.e. even with empty slots) which requires going through your inventory. I don't have any plans to change this at present--the real inventory is your primary nexus for attaching/detaching parts, and required in a number of instances that could theoretically otherwise use dedicated methods. (I recall a few of Cogmind's best players in the past have actually tended to leave a small amount of free inventory space purely for rapid part manipulation!) That said, are you familiar with/do you use the 'p' menu, by any chance? That's another option that simplifies some operations for some people, though the same operations are available through other means as well.

For specifically ground-inventory swapping, on the other hand, if there is not suitable autoswap selection you will indeed need to drop a part(s) to make space first, which is unlikely to change. This actually has some important tactical implications.

Quote from: razorbladeetc62 on January 07, 2025, 08:28:12 PMLastly, allow direct comparison between equipped items and the item on the floor, the latter being the target. I could select the item on the floor, and then one currently wielded to check the comparison, but not the other way around, but I often feel more important to give the focus on the item on the floor.
This is solved by reverse comparisons, coming to Beta 15. There's a demo of this in action here. The main problem with doing it any other way is that often ground items are covered by other windows (not to mention you're in a different input context), so it's rather cumbersome to try to allow ground selection after having already picked another item. (It's technically possible with the mouse in visible areas of the map view, but that's not ideal and just a band-aid "because they can see it and it's relevant okay fine they can click on it" sort of thing :P)
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

razorbladeetc62

Thanks a lot for your prompt and detailed reply! I really appreciate the time and thought you've put into addressing my suggestions and providing insights into the design choices.

Quote from: Kyzrati on January 07, 2025, 09:07:33 PMThere's definitely an advantage there, for sure, although Cogmind is far more dynamic than most roguelikes in terms of item upgrading and slot changes... in general I feel the suggestions may not be able to handle having a growing or excessive number of slots? Or massive inventories? Like some builds have 20 slots of the same type... or nothing but utilities in their huge inventory :P (one build even loses slots)

It's nice to have a system that consistently handles all the dynamism.

As usual, if there is enough demand I'll more strongly consider such an optional approach (which I do find interesting and have considered similar options before!), though I think this is the first such request in over 10 years, and a sizeable chunk of Cogmind players use keyboard mode (myself among them, and many of the existing related features have come out of suggestions or frequent needs, to be sure!). It'd be quite a lot of work to implement in a satisfactory manner.

One area for better managing the existing system, if you haven't already (I'm guessing you have?), is to turn off autosorting. This will at least keep lettering consistent except between evolutions, when it will naturally shift somewhat.

Turning off autosorting is a good idea indeed, thanks for the suggestion!

Even if there are 20+ slots of the same type, I don't see it as a big design issue: once a category is selected, the full keyboard could be used to bijectively assign keys to slots, especially with autosorting turned off. In Jupiter Hell, I dedicate each slot ID to a specific kind of weapon depending on the context (even though I understand the slot count is much lower, typically three). For instance, in a fully ranged run, I would typically use 1 for pistols/auto, 2 for rifles, and 3 for shotguns/grenade launchers. In a melee build, I would typically use 1 and 2 for melee weapons, and 3 for a unique side weapon. This setup lets me switch weapons seamlessly, without needing to check my inventory.

For more extensive slot systems, the same concept could apply. Utility slots, for example, could be mapped to specific subtypes in the player's mind, e.g., 1 for storage-increasing utilities, 2–4 for armor, and so on. Similarly, I could assign a slot (e.g., 7) as the go-to slot for swapping a grenade launcher, ensuring that I always know which key to press (r, then 7, then select the grenade launcher in the inventory). Doing so, I would know 7 is the slot ID in which I would place a weapon that is will be replaced by a grenade launcher.

This consistency would also allow for mental shortcuts during gameplay, even with larger inventories or slot counts. Nevertheless, I fully understand that implementing such a system would be challenging and that it may not align with current priorities.

Quote from: Kyzrati on January 07, 2025, 09:07:33 PMNote that selective floor swapping is sort of possible now if you have a full inventory and there is no autoswap condition, by repeating the 'a' attach command.

Nice! I wasn't aware of this, very useful, thanks for pointing it out!

Quote from: Kyzrati on January 07, 2025, 09:07:33 PMThat said, are you familiar with/do you use the 'p' menu, by any chance? That's another option that simplifies some operations for some people, though the same operations are available through other means as well.

Yes, I am familiar with the p menu, but it doesn't fully address the need for consistent assignment.

Quote from: Kyzrati on January 07, 2025, 09:07:33 PMThis is solved by reverse comparisons, coming to Beta 15.

That's a fantastic addition!

Thanks again for the consideration, time and efforts.

Kyzrati

Quote from: razorbladeetc62 on January 07, 2025, 10:41:26 PMEven if there are 20+ slots of the same type, I don't see it as a big design issue
Yeah was just an initial reaction without actually going into design mode and thinking through the entirety of such a design, which could take a while on its own to analyze feasibility and all.

'p' menu was just an extra mention that's related to inventory management in case it might facilitate some interactions (different type of consecutive-key muscle memory), not meant to be a direct solution here, right. The other suggestions, however, will hopefully be rather helpful. Thought you might've already had autosorting off at this point, but anything not in the regular options menu does have that extra barrier to discovery. You'll find in the manual explanations for a wide range of advanced optional features, many of which are geared towards either customizing or especially streamlining play but that would otherwise confuse or distract newer players so they're off by default. As an experienced roguelike player I'm sure you'll find a lot to like among those!

We'll see what else happens, still lots more on my list and I'm always adding new QoL features for each version... right now more on a content streak now that Beta 15 QoL is done.
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Kyzrati

Another feature which I feel compelled to mention even if you may already know about it (but probably wouldn't have been using yet, or realized it was usable due to default autosort behavior): letter rebinding. You can switch the slot placement of individual parts in keyboard mode as well (not just mouse mode via dragging), and this will pair nicely with a disabled autosort.
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Gokudera ElPsyCongroo

Some swapping QoL suggestions that would be cool:
- Double tapping the swap key / to swap the last pair
- Option to always auto activate all inactive parts of same category when swapping (to a digging weapon for example)
- Press swap button, then CTRL (or SHIFT) + choice to swap and disable all other parts of category, only keeping swapped one active

Kyzrati

Quote from: Gokudera ElPsyCongroo on February 19, 2025, 07:51:00 PM- Double tapping the swap key / to swap the last pair
Note this is already possible by using the Reswap command (Spacebar+r, or Shift-Alt-r).

Double tapping already has the purpose of closing the swap menu, and aside from Spacebar+r you can use the 'Y' option to reswap to a previous part, though yeah this latter one requires first selecting the source part. It is, however, more flexible overall.

Does seem like an interesting alternative idea though to make double '/' do the same thing as the existing Reswap. I would be kind of afraid of people accidentally swapping things if that is possible, though if it's only a manually enabled option that wouldn't be a problem...

What do you think about the current Reswap option?

Quote from: Gokudera ElPsyCongroo on February 19, 2025, 07:51:00 PM- Option to always auto activate all inactive parts of same category when swapping (to a digging weapon for example)
This is probably too complicated? Or at least you'd have to be able to define more specifically what it is you want it to apply to. Like right now we already have this option with launchers, but that's a very specific applicable category, whereas "digging weapon" is very vague.

You probably already do this (?), but using the cycle command is really effective for this purpose, either by clicking on the button or using the ' key.

Quote from: Gokudera ElPsyCongroo on February 19, 2025, 07:51:00 PM- Press swap button, then CTRL (or SHIFT) + choice to swap and disable all other parts of category, only keeping swapped one active
Again I think this is best approached using the CYCLE button or ' command. No need to really add yet more commands for this particular thing which can already be achieved in a similar amount of time.
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Gokudera ElPsyCongroo

Quote from: Kyzrati on February 26, 2025, 01:41:46 AMNote this is already possible by using the Reswap command (Spacebar+r, or Shift-Alt-r).
I never noticed this command! This is exactly what I needed, good job on adding it. In that case double tapping / is indeed unneeded.

Quote from: Kyzrati on February 26, 2025, 01:41:46 AMAgain I think this is best approached using the CYCLE button or ' command. No need to really add yet more commands for this particular thing which can already be achieved in a similar amount of time.
I agree the cycle command is great for the "activate all other" purpose, I use the one for propulsion but forgot there was one for utilities with upkeep and weapons.

Quote from: Gokudera ElPsyCongroo on February 19, 2025, 07:51:00 PM- Press swap button, then CTRL (or SHIFT) + choice to swap and disable all other parts of category, only keeping swapped one active
For this one I agree it won't make sense to add yet another command. But instead, what do you think of making it such that manually swapping any weapon behaved like launcher swapping, without distinction of type? My thinking is that statistically, the main reason I manually use the / command to swap a weapon is when I want to use this single weapon (as a digging tool mostly) without activating the whole volley. Most other weapon equips I do are either auto replace from the ground or inventory or auto equip in the first empty slot (but I don't use the modal view, where I assume it's more widespread to equip missing weapons using the / command).
That's why I think it would be better if it behaved that way:
- Make launcher behavior the default for all weapons when manually swapping with /, keeping normal behavior otherwise
- Auto use the Cycle command when Reswap concerns a weapon pair (because we assume that a player Reswaps a weapon only to unequip a digging tool or lone-use equivalent and would have used Cycle to reactivate all weapons after that)

Kyzrati

Quote from: Gokudera ElPsyCongroo on February 26, 2025, 04:33:25 AMBut instead, what do you think of making it such that manually swapping any weapon behaved like launcher swapping, without distinction of type? My thinking is that statistically, the main reason I manually use the / command to swap a weapon is when I want to use this single weapon (as a digging tool mostly) without activating the whole volley. Most other weapon equips I do are either auto replace from the ground or inventory or auto equip in the first empty slot (but I don't use the modal view, where I assume it's more widespread to equip missing weapons using the / command).
That's why I think it would be better if it behaved that way:
- Make launcher behavior the default for all weapons when manually swapping with /, keeping normal behavior otherwise
- Auto use the Cycle command when Reswap concerns a weapon pair (because we assume that a player Reswaps a weapon only to unequip a digging tool or lone-use equivalent and would have used Cycle to reactivate all weapons after that)
Wow that sounds super extreme xD

Like.... I'm using '/' all the time for swapping, and it's often not for just one weapon. Lots of people do in many situations, another common example being switching to different damage types for different encounters. Or sometimes of course just switching for other reasons, but it doesn't have to be just for a single lone use. Digging is an important exception, I'd agree, but it's kinda hard to generalize that, and cycling seems to handle this quite quickly. If you're not in combat as much you can even typically keep all your weapons cycled off, so that swapping for temporary use of a digging tool, for example, is that much simpler.

Overall I think there are definitely some possibilities for finer control that might better suit a given player or even specific build type, but they get complicated to add in and stuff like that is probably only likely if there is more interest. Would have to get others to back such a feature and hash out the details. Doesn't look likely in the near term.
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon