TeamPorcupine / ProjectPorcupine

Project Porcupine: A Base-Building Game...in Space!
GNU General Public License v3.0
484 stars 279 forks source link

Quick action bar #1555

Open vogonistic opened 8 years ago

vogonistic commented 8 years ago

It was suggested by @Tranberry in #1552 to add a spotlight/alfred like quick action bar. This issue was created so we can discuss it in more depth.

Spotlight GIF

Ideas

BraedonWooding commented 8 years ago

I actually love this :D!

bjubes commented 8 years ago

ooh especially something like the ubuntu "alt" search that automatically knows about every action you can do and lets your either click it or look at where its hiding in the menu bar.

vogonistic commented 8 years ago

Jumping to specific UI seems scary to me (because the code to load UI rarely have good support to build a view hierarchy the same was as if it was clicked to the location), but it's a good idea.

A quick bar is also a good place to put shortcuts to dynamic triggers and make the names of those triggers matter, like locking down a section of the base.

Geoffrotism commented 8 years ago

👍 How would you know which piece of furniture to look up? or would is just be a "steel wall - max hp - details" sort of thing rather than a specific instance of a game object?

BraedonWooding commented 8 years ago

Probably details, instead of instance

f-montanari commented 8 years ago

Reminds me a bit of AutoCAD's dynamic entry, but with intellisense...

vogonistic commented 8 years ago

Not sure what the best way to handle multiple matching instances. I wasn't thinking that floor and wall instances would be searchable since there isn't much way to differentiate them. I was thinking of naming rooms and showing a list of smelters based on what room and allowing searches like smel kit for the smelter in the kitchen. (Where else should it be?).

The reason why you'd want to do that is to be able to get a quick overview of what is going on there and then be able to hit enter and jump to the correct level and center on the selected smelter.

Searching for prototypes and doing the equivalent of clicking the menus to build it might be awesome. It's easier to memorize than shortcuts like bws (build wall steel) to everyone but the most experienced players.

dusho commented 8 years ago

I can imagine using this as filter showing matching furniture for construction characters should have avatars in right top corner as Rimworld - no need to search for them by name still.. in game I like that everything can be done just by clicking the mouse (even though it will be slower).. not by typing

Tranberry commented 8 years ago

Can you give me a scenario where you want to 'jump' to a specific furniture?

f-montanari commented 8 years ago

@Tranberry when things get on fire, we would like to see where... Imagine if we had a preety large base of 10 levels and there's something burning. Searching for it manually would be a pain in the a\ :laughing:

Tranberry commented 8 years ago

'dmg + furn-name' and some way to cycle through them?

dusho commented 8 years ago

@frankitox16 then I would expect to have 'there is a fire' icon blinking somewhere and pressing it will focus your camera to it.. basically any event should have that

Tranberry commented 8 years ago

I'm with you @dusho but there might be stuff that are not critical that could be useful to not clutter the screen with annoying blinking icons, but still needs to have a way to be searched for.

vogonistic commented 8 years ago

@dusho I like having them available from quick glances, but what if you have a lot of characters running around? Even at 20+, it starts breaking down.

@Tranberry For larger bases, there are probably going to be pieces of furniture that are rarely used.

For people like me that likes to navigate by keyboard, it's also great if I can hit the shortcut and type kit sto<enter> for the kitchen stove (kitchen being a named room and stove being a part of the name of the furniture) and then start issuing jobs.

If we have fuzzy matching, we'll also need to provide a list for people to choose from, or to provide guidance on how to get the match they were looking for.

Geoffrotism commented 8 years ago

What happens if you have two kitchen stoves? Oh I know! Return an array of all matching objects then you can cycle with tab! That way you could search beds or such and cycle till you get the one you want. Downside is that walls and doors aren't part of rooms but I don't see this being a huge issue

vogonistic commented 8 years ago

@Geoffrotism Similar to the spotlight gif I posted, I would show a list of matching items and allow the user to use arrow keys, or tab to switch between them.

I don't really see the need to search for walls. Doors might be relevant, but we could figure something out if we want to do that.

The actual implementation of something like this would probably be 3 parts.

  1. Build small internal database of indexed words like the furniture names, room names and other relevant designations
  2. Build or us a fuzzy search/matching engine to get relevant array of matches
  3. Build UI to display the search bar, the results and a preview of the top match

That is, if we decide it's something that we want enough to spend the time on it.

vogonistic commented 8 years ago

It might be worth building the database and matching as a separate project for easy inclusion in other games and projects.

Geoffrotism commented 8 years ago

As long as the control (tab or arrow keys or whatever) focuses on the object as you cycle through. And I think it's a great idea. It's unique for the genre and I love that.