Wednesday, December 25, 2024
spot_img

Adventures in Map Zooming, Half 5: QoL


Map zooming once more! Though I completed off the remaining bits of the core map zooming function, that sequence went quiet once I turned my consideration to planning and preparation for the upscaled UI, basically as a result of my perception that after the latter is carried out, map zooming wouldn’t be as crucial within the first place.

However it will nonetheless little doubt be utilized by some, and extra urgently I additionally realized that it wouldn’t make sense to place out map zoom check builds with out together with the extra QoL required to make a zoomed view truly playable in a standard sense. Though I rightly assumed few present gamers are very fascinated with zooming, a few of them may a minimum of check it out, and for correct suggestions the QoL must be in place, in any other case any suggestions will basically quantity to “wants QoL” 😛

Good QoL is a make or break a part of map zooming, the place the true magic occurs, and I like me some QoL design, so let’s see what we are able to do to facilitate zoomed play!

Initially, not precisely stunning or superb, however one piece of the puzzle did out of the blue fall into place right here: scroll wheel zoom toggling. Again within the sprucing stage I coated the reasoning for utilizing strategies apart from the scroll wheel to zoom, however when placing collectively the QoL options I spotted that zooming out and in may typically be finished together with map panning, which amongst a number of different strategies will be achieved by holding Shift and shifting the mouse. Properly if you happen to’re panning with the Shift key held, utilizing the mouse wheel wouldn’t do something since that’s not a command but (Shift-Wheel), so we are able to conveniently assign it to zooming!

cogmind_mouse_map_zoom_and_pan

It feels very pure so as to add mouse wheel zoom performance to the present Shift panning methodology, making it straightforward to shortly zoom out and in between a number of distant areas.

That’s low-hanging fruit, although. We’re going to wish rather more highly effective QoL…

Relative Centering

A typical theme all through map zooming QoL growth is enabling the participant to get details about, and react to, issues which are exterior the present map view. As defined in my article on the historical past and concept behind Cogmind’s interface and plans for different layouts, in a roguelike it’s essential to have quick access to information that impacts near-term decision-making, and by shrinking the map view to extend the scale of its content material we’re giving up a variety of that quick access!

We have to discover methods to retain it the place doable, or a minimum of create options.

Probably the most direct methods to perform that is to offset the participant’s place from the middle of the map. Usually Cogmind is proven on the middle of the view, permitting the participant to see equally in all instructions, however technically we are able to assume that what’s most vital whereas exploring the world is what’s in entrance of the participant in no matter normal path they’d wish to deal with. Thus one new optionally available function is the power to manually set a brand new relative centerpoint.

cogmind_view_centerpoint_manual_mouse

On this zoomed map view, discover how one can select to look additional in a specific path, and the view continues to shift alongside along with your motion, as common. For so long as such a degree is about, it’s utilized in most situations which in any other case need middle on Cogmind, and the purpose isn’t allowed to be so distant it ends in Cogmind being out of view fully. Zooming the map in/out adjusts the relative centerpoint by the identical issue, and it’s ignored and even routinely reset in some particular situations, like… say… outright teleportation 😉

The above recording exhibits how setting such a degree is accompanied by a fading cardinal crosshair animation akin to the drone centering/following animation, however right here is gray as a substitute of inexperienced. This retains our visible theming constant for the thought of interface-controlled “centering.” Whereas a guide centerpoint is about, you may as well see the intermittent flash of the present centerpoint, which is optionally available and will be adjusted or disabled. Restoring the default centering is so simple as setting your present place because the centerpoint.

How do you set that time, anyway? Oh no, it’s time to go… again to the engine! (are you counting? that is the fifth time :P)

I made a decision for this function we’re lastly, after ten years, going to have RMB detection based mostly on releasing the button. Cogmind has at all times responded to mouse down occasions for enter, which I want because it’s that rather more responsive, however the distinction isn’t big, and by forgoing that method we acquire entry to a brand new realm of mouse enter: holding the button for a special impact!

Now this alone doesn’t require any further engine work, it’s only a totally different occasion we may at all times detect, however if you happen to’re going to have enter based mostly on holding a key you in all probability have to know the way lengthy it’s been held, and for that we’re going to wish extra engine performance. Paging the REX testing atmosphere!

rex_mousedown_timers_demo

Testing LMB/RMB holding timers, a brand new function for the engine.

RMB has at all times been one of many different strategies for panning the map in Cogmind, by simply right-clicking on some location exterior FOV, however now if you happen to maintain down the button for a bit longer (the default is 350ms, however it’s adjustable) it won’t solely pan the map over there but additionally set it as the brand new relative centerpoint, as seen within the demo.

So far as implementation goes, though somewhat harder to implement, it made extra sense to trigger the centering impact to happen instantly after a set time had handed, reasonably than merely ready for the participant to depress the mouse button after a minimal period of time, as a result of in any other case the participant has to guess whether or not they’ve held down the mouse lengthy sufficient to depend for one enter over one other.

Dynamic Centering

Pure keyboard customers want entry to this recentering idea as effectively, although not like with a mouse the place it’s pretty fast to pick a brand new ahead level to focus on, this isn’t so handy to do by way of keyboard… We’d like an automatic different!

By default at any time when zoomed in keyboard mode, easy common motion will routinely try to regulate the map view so {that a} extra helpful or pertinent space is seen always. Precisely how one can obtain it is a large query, nevertheless 🙂

I’m positive no single algorithm might be excellent for everybody, however I experimented with 5 totally different potentialities earlier than selecting a default. Most of those are included with the sport as optionally available options, and may also be utterly disabled or additional adjusted by specifying a most distance out to which they’re allowed to offset the view. A lot of them really feel fairly unusual at first, however with some precise play expertise I received increasingly used to the default as a useful function.

cogmind_keyboard_automated_view_centerpoint_style_WIP_3_instant

INSTANT: “Sensible main” conduct #1, merely immediately “face” the path of the newest transfer. Simply strive not get whiplash 😛 (significantly although, controlling these, and in addition gaining some expertise with them, is rather a lot totally different from watching them; additionally adjusting this one to have a shorter offset vary would make it much less jarring :P)

 

cogmind_keyboard_automated_view_centerpoint_style_WIP_2_midpoint

MIDPOINT: Conduct #2 is similar as INSTANT, however makes diagonal turning much less violent by checking whether or not a brand new motion path is simply 45 levels off the earlier one, during which case the brand new centerpoint as a substitute makes use of the midpoint between the outdated and what would in any other case be the brand new prompt path’s centerpoint.

 

cogmind_keyboard_automated_view_centerpoint_style_WIP_1_gradual

GRADUAL: This extra tame method slowly shifts the view to mirror ongoing actions, each by way of path and distance, in order that shifting ahead progressively extends the view outward.

 

cogmind_keyboard_automated_view_centerpoint_style_WIP_4_pure_fov_weight

WEIGHTED: GRADUAL doesn’t carry out as effectively with sudden modifications in path like going round corners, so I needed to experiment with utilizing a extra complicated algorithm that as a substitute tries to orient the view based mostly on the weighted middle of all FOV cells. The speculation appears good, however in observe is kinda chaotic and never very efficient. primarily as a result of it fully forgoes predictability within the face of a pure deal with data, after we in all probability need a stability between the 2. (This explicit gif occurs to have a persistent crimson dot the place it’s centering the view, so I may higher hold monitor of it throughout the experiments, for the reason that weighted conduct was more durable to get proper.)

The conduct I truly selected for the default was a mix of the final two, progressively shifting the centerpoint with every transfer, and utilizing a second cross to strive to make sure that FOV edges are seen the place it’s doable to shift the view with out obscuring already-visible FOV cells. It is a fairly efficient approach to remedy the nook downside, or at any time when a big batch of recent cells turns into seen, for instance on passing via a door, or terrain destruction. It may possibly additionally even hold the FOV shifted backwards if the present path of motion doesn’t but actually include a lot to see.

cogmind_keyboard_automated_view_centerpoint_style_WIP_5_gradual_with_FOV_shifting

The default conduct, a gradual two-pass method putting a stability between seeing additional within the path of exploration and sustaining visible affirmation of current FOV areas.

As with the mouse, keyboard customers may manually designate a relative centerpoint. That is finished with the ‘s’ key in look at mode with the cursor over your required goal cell. Assigning a guide centerpoint deactivates the automation function till designating Cogmind’s personal place to reset it, at which level the automated system will once more take over. This function can be helpful for shortly recentering the map to reset the automated system, by merely urgent ‘x’ to enter look at mode adopted by an instantaneous ‘s’.

cogmind_view_centerpoint_manual_keyboard

Manually setting centerpoints whereas taking part in in keyboard mode. It’s truly pretty quick if you happen to’re aware of leaping the look at cursor!

Whereas playtesting keyboard mode, zoomed in for nearly everything of play, I began to reasonably like the mixture of default autocentering sprinkled with occasional setting of a guide offset for sure conditions!

Discover that whereas in keyboard mode, the centerpoint spotlight is not shown–that’s a mouse-only factor as a result of it’s computerized, and in addition at instances fairly close to Cogmind’s personal place.

Internally, the automated centering function is carried out by merely adjusting the identical offset variable used for guide centering, simply doing it on the fly. In order that they’re the identical mechanism. Automating this conduct throughout mouse-based play doesn’t actually work as a result of you’ve to have the ability to click on on areas, together with most significantly your subsequent transfer vacation spot, however that’s arduous to drag off when every thing is shifting round in a semi-unpredictable method.

And even for keyboard mode, the automation conduct is solely utilized whereas the map is zoomed in, however it’s at all times being calculated and up to date whereas not zoomed, in order that zooming in once more can proceed to take the most recent navigation data under consideration.

After all I added new contextual tutorial content material for these options, together with Cogmind’s first tutorial messages that can finally repeat themselves if you happen to haven’t truly tried a given function but, as a result of these are fairly vital 🙂

Offscreen Object Data

Thus far now we have methods to attempt to hold vital objects in view, however when you’re zoomed in on solely 1 / 4 of the conventional map space it’s actually unimaginable to at all times see every thing you may have to see in each scenario. We’d like new indicators for vital objects exterior the present map view, particularly these that are nonetheless inside FOV (and possibly even assault vary!).

Whereas manually panning the map or designating a centerpoint to control a specific path is helpful, and briefly zooming out to get a normal concept of the environment is another choice, to avoid wasting time there are a number of recent markers that may seem on the edges of the map view to indicate objects in that path. You’ll see markers for offscreen hostiles, non-hostiles (each impartial and pleasant), new objects, and sensor knowledge. Every marker class makes use of its personal distinctive background coloration, and within the case of sensor knowledge can be darker and blinks out and in to mirror the truth that it isn’t a immediately seen object just like the others. Gadgets are solely marked till routinely labeled for the primary time after coming into view.

cogmind_map_zoom_qol_edge_labels_robots

A demo of flashing offscreen zoom markers for seen robots (I’ve some drones out right here to assist show). Threats seem on a darkish crimson background, whereas non-hostile robots use dark-green. As common, the colours used are totally different if colorblind mode is lively. (Additionally curse multitile robots and their particular necessities, however yeah I received them working with this method too…)

 

cogmind_map_zoom_qol_edge_labels_items

Flashing offscreen zoom markers for brand new objects, which use a darkish grey background.

 

cogmind_map_zoom_qol_edge_labels_sensors

Darkish offscreen sensor knowledge markers with a low-frequency blink out impact. The vary for this and different FOV knowledge (which truly contains drone FOV which may be additional away!) truly makes use of the non-zoom window dimensions to find out the extent inside which to attract objects from, that means this function basically serves the particular goal of providing you with extra information about many stuff you’d usually have the ability to see if not zoomed in.

We’ve seen such map edge markers earlier than, for map intel (for instance recognized interactive machine areas) and in addition Cogmind or drones presently out of view. The latter seem a pair rows away from the map edge, so there aren’t any points with overlap, although intel would technically have the ability to overlap these markers, additionally being up in opposition to the view edge. I’ve up to date these to not solely reposition to keep away from any offscreen object markers, however in addition they keep away from masking seen robots presently on the edge.

cogmind_intel_markers_avoiding_visible_edge_robots

Intel markers avoiding seen robots on the map view edge.

Equally, the brand new offscreen object markers will even keep away from masking seen robots.

cogmind_offscreen_object_markers_avoiding_visible_edge_robots

Offscreen robots markers shifting apart when essential to reveal seen robots at a place they’d in any other case occupy.

Offscreen Object Responses

Indicators are nice, however not fairly sufficient. In any case, what do you typically need to do when a brand new risk comes into view? A fast visible test! What precisely are they, what’s their standing, have they got firm, what’s the encompassing atmosphere like… These will be vital inquiries to reply earlier than making your subsequent choice, and by default Cogmind already pauses for a second in these conditions in an effort to let the participant have a second to take it in (and keep away from by chance losing precious turns), so why not additionally use that chance to routinely shift the view over to identify the risk?

cogmind_map_zoom_qol_view_shift_for_new_threat

Mechanically shifting the view a bit extra to the left as quickly as a Sentry is noticed down on the finish of a hall.

This function is optionally available, however lively by default.

cogmind_map_zoom_qol_view_shift_for_new_threat_multiple

One other autoshifting instance, on this case concurrently recognizing enemies down two totally different corridors and shifting to place all of them in view.

Discover that the shift leaves one area of padding to the sting reasonably than placing the hostile proper on the edge, which is more durable to see and there may additionally be different markers current, plus it’s good to know somewhat of what’s across the goal.

There are additionally a pair different vital threats that don’t contain direct sighting of enemies, however that almost all gamers would in all probability discover value routinely shifting to see for higher situational consciousness.

cogmind_map_zoom_qol_view_shift_for_watcher_alert

The view shifts twice right here, as soon as on first recognizing the Watcher, and once more when it sends out an alert to some close by ally.

 

cogmind_map_zoom_qol_view_shift_for_heavy_sensors

Heavy lively sensor proximity alert!

We are able to use this shifting conduct for extra than simply enemies, too!

cogmind_map_zoom_qol_view_shift_for_machine_ping

There are a couple of particular forms of environmental pings you actually need to find out about, like machine pings. Present me that RIF Installer so I do know the place I can get my subsequent repair!

Different Options

As a part of this replace I even added a totally new kind of indicator, one that may come in useful even when not zoomed in. Generally these pesky Operators spot you and instantly zip out of FOV, a lot much less out of view, on their approach to their Terminal. Not less than there’s a log message reflecting that truth, although it might not be apparent the place they have been on the time. Now will probably be.

cogmind_operator_reporting_response_animation

Operator reporting indicator, which stays for a brief period whether or not the place is seen or not.

Though accessible even whereas not zoomed, a brand new button that seems above the map whereas there are hostiles inside Cogmind’s FOV was added primarily to facilitate play whereas zoomed in, providing one other approach to know and make sure that there are hostiles in line of sight, even when not presently in view. The button studies the whole enemy depend, and will be pressed to deal with and spotlight the most important focus of enemies. Urgent it once more restores the centerpoint to its unique space, or in some instances if there are different enemies not seen within the first spotlight space it could possibly decide that and focus there as a substitute.

cogmind_map_zoom_qol_fov_hostiles_button

Demonstrating primary performance of the button, though on this scenario there could be no robust want to really use it.

 

cogmind_map_zoom_qol_fov_hostiles_button_return

Utilizing the button to refocus the view on a brand new squad nonetheless out of view to the north.

 

cogmind_map_zoom_qol_fov_hostiles_button_multiple_out_of_view

Biking between two totally different enemies that aren’t current in the identical view. Do not forget that in concentrating on mode Cogmind may cycle between seen robots, that is simply one other extra normal approach to obtain an analogous impact whereas not in that mode.

I even have notes on much more QoL concepts for map zooming, in addition to methods to additional lengthen these new options, however this appears fairly ok for now and we’ll must see how extra playtesting pans out.

Shortly earlier than the primary testing construct went out I did my very own playtest run, making an attempt out each mouse and keyboard play whereas zoomed… it went effectively!

We’ve arrived on the finish of our five-part journey via the method of placing all this collectively:

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisement -spot_img

Latest Articles