Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stonesense Immersive Mode (Design Doc, don't close) #193

Open
5 of 22 tasks
realSquidCoder opened this issue Feb 2, 2025 · 0 comments
Open
5 of 22 tasks

Stonesense Immersive Mode (Design Doc, don't close) #193

realSquidCoder opened this issue Feb 2, 2025 · 0 comments

Comments

@realSquidCoder
Copy link
Collaborator

realSquidCoder commented Feb 2, 2025

Stonesense Immersive Mode

Background info (Why am I doing this?)

First and foremost, because it's really impressive and a lot of people would find it fascinating. I originally started making this to fix up the old Overlay mode that got scrapped in the v50 move, but it has evolved into something new entirely. While I don't truly foresee anyone but myself regularly using this mode, it is certainly a very nice thing to fire up and play around with from time to time.

Who is this for?

Honestly, I don't know who the target audience for this will be, but I know that there is interest in seeing it happen, for the sake of seeing something cool.

Goals

So what are my goals? Well, I want to be able to play as much DF is possible solely thru Stonesense.

A so-called Stage 1 would mostly include the things in the main bottom bar, and the info at the top of the screen.


The immersive interface

The immersive interface should be a simplistic option menu that reacts to the current game state and whatever key-mods (ctrl shift alt) are being pressed. the user presses the number matching the option they want to choose and the game state and interface are updated. the options should be highlighted to denote things that are selected or enabled (such as blueprint mode being on or which digging mode is chosen) as this helps users at a glance know what's going on.

Image
Shown here is an example of this highlighting, denoting that I am digging a channel using Rectangle Select mode.

It is perhaps debatable whether to keep the same choices on the same buttons even when that would leave gaps between the options. I am personally in favor as I feel it aid in developing muscle memory. It would also line up with DF having the same hotkeys for the same options, regardless of menu.

I am debating the option of having an info panel on the side of Stonesense for various things, very much like pre-v5X DF (see https://dwarffortresswiki.org/index.php/DF2014:Menu for visual examples) One such bit of info is the announcements. Those could be shown then without having to cover the main Stonesense render. Depending on the complexity we may have multiple info tabs in the main info panel


General Info

There should be general info shown about things at the cursor. Info about the tile, the building, zones, traffic, etc. It should be similar to how DF show the player info about the tile. An info parser/beautifier may be of use here to clean up the info before it is shown.

Indicators

There should perhaps be a few more indicators for things like traffic levels. I imagine it would work very similar to how engravings work in Stonesense but for traffic levels. Civzone indicators should only appear when interacting with zones, much like traffic.

Image
The engravings, for reference. I imagine using tinted number glyphs for the traffic indicators, though it needs to be tested. It may, however, be easier to simply tint the tiles that aren't normal traffic.


Selecting things

There are 2 cursors, one for the start point of a selection, and one for wherever the mouse cursor currently is. if the user is in rectangle select mode, we need to draw the selection rectangle between the 2 points much like DF does so it is more clear what will be selected. An exception to this would be minecart tracks, which draws a sort of curved line between them. More info is needed for that. It would also be nice to have the DFHack ruler tooltip or our own mock up telling users the dimensions of their selection.

Edit: I got a basic ruler tooltip working:
Image

Edit: I got a selection wireframe working:
Image

It may also be beneficial to occlude parts of the cursor if it is obscured by tiles closer to the camera to better show the depth of the cursor. We have a sprite that is just the top of the cursor that could be used for faking the obscurity


Current State:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant