Fractal Softworks Forum

Starsector => Suggestions => Topic started by: Ranakastrasz on May 30, 2019, 05:30:16 PM

Title: Directional Omni shield Control (again)
Post by: Ranakastrasz on May 30, 2019, 05:30:16 PM
This has been suggested and rejected on several occations, so the only reason I am suggesting it again, for the last time (That I will bother, unless I get into modding and make a mockup, anyway) is that there is a Starcraft II mod that implements it, and it works fine, control scheme wise. Given there were arguments about it being too complex or something, given that it actually works fine anyway, I thought I might as well try again.

https://www.youtube.com/watch?v=DbwVmq0X2Yo&t=740s

Allow player to set an angle for the omnishields to face, which they hold, Allow them to target an enemy ship and have the shield face said ship.
Title: Re: Directional Omni shield Control (again)
Post by: Nick XR on May 30, 2019, 07:16:01 PM
Is the issue that you can't manipulate the shields with the mouse because you're using the aim-at-cursor option?

If so, would it be reasonable that the turn left and right keys instead manipulate the shield (instead of ship facing) when the aim-at-cursor option is active?
Title: Re: Directional Omni shield Control (again)
Post by: Morbo513 on May 30, 2019, 10:16:10 PM
Hold-button to control shield orientation with mouse (Same as holding shift does for ship heading), release for it to stay in place
Toggle for absolute/relative direction
Button/toggle for orient-to-target
Title: Re: Directional Omni shield Control (again)
Post by: Ranakastrasz on May 31, 2019, 02:10:04 PM
Is the issue that you can't manipulate the shields with the mouse because you're using the aim-at-cursor option?

If so, would it be reasonable that the turn left and right keys instead manipulate the shield (instead of ship facing) when the aim-at-cursor option is active?
Yes, that is the issue. You can reverse the controls, but you lose all precision with the ship's rotation as a result.

No, that wouldn't work, because those keys are used for strafing in said situation, which is very important.
Title: Re: Directional Omni shield Control (again)
Post by: SafariJohn on May 31, 2019, 05:51:00 PM
If so, would it be reasonable that the turn left and right keys instead manipulate the shield (instead of ship facing) when the aim-at-cursor option is active?
No, that wouldn't work, because those keys are used for strafing in said situation, which is very important.

I think he meant Q and E, which are used to strafe (not turn) in not-turn-to-cursor mode.
Title: Re: Directional Omni shield Control (again)
Post by: Alex on May 31, 2019, 05:57:40 PM
Yeah, that's what I thought Nick meant, too. That seems like it'd be hard to use and would require pressing the key down for a good bit to get what you want. Also requires you to use turn-to-cursor while you're doing this...

But solutions using the mouse don't really work well regardless of whether you're aiming at the cursor or not, because it really messes with your camera. That's the reason it "works" in the video in the OP - the camera controls are not the same.

I've tried using ctrl-right-click to lock the shields to a relative facing, btw, and spent some time with it trying to get used to it. It didn't feel useful at all, unfortunately, and *did* feel really finicky and annoying to use.
Title: Re: Directional Omni shield Control (again)
Post by: Ranakastrasz on May 31, 2019, 06:09:15 PM
True enough, I have no doubt it would feel awkward for a while. However, we NEED a way to control omnishield and accurately rotate the ship at the same time. I don't honestly care how it works, as long as a method exists.

Could we at least get an API for omnishield control override so someone can make a mockup mod?
Title: Re: Directional Omni shield Control (again)
Post by: Alex on May 31, 2019, 06:26:17 PM
Since these already existed due to my various attempts mucking with it, sure:

Added to ShipAPI:
   Vector2f getShieldTarget();
   void setShieldTargetOverride(float x, float y);
      Sets direction for omni shield to face
      Needs to be called every frame



However, we NEED a way to control omnishield and accurately rotate the ship at the same time.

Well, a lot of the time ship damage is a matter of flux, so taking a few seconds to shield while not firing doesn't necessarily even mean a decrease in overall damage. That's not to say that having a method to do this wouldn't be nice; I think we just differ in how necessary that is. In my personal playing, I've never found it to be a truly pressing concern - but I certainly understand and respect that opinions on this will differ.
Title: Re: Directional Omni shield Control (again)
Post by: Goumindong on May 31, 2019, 07:45:10 PM
The proper answer to omni shield control is one of two things

1) shield defaults to the position of the targeted ship and attempts to follow it.

2) ships that have omni shields are ships that tend/are intended to be flown without strafing behavior.

A toggle between the two modes would not be bad. Though it could just be targeting itself.  If you have a target the shield follows it. If you do not it follows your cursor

Edit: ai behavior could be unchanged
Title: Re: Directional Omni shield Control (again)
Post by: intrinsic_parity on May 31, 2019, 09:19:13 PM
I definitely routinely notice situations where I am taking fire from a different direction than I want to move/shoot (all three directions my different in some cases). One way of solving that is to let the player independent control the direction of motion, weapons and shields. Alternatively, you can let the AI handle one or more. Rather than give the player another thing to simultaneously control, have an auto shield switch that lets the AI handle shields similar to auto firing weapons.
Title: Re: Directional Omni shield Control (again)
Post by: Nick XR on May 31, 2019, 09:40:23 PM
Ah OK.  Sorry for the poor description, I'm unfamiliar with the issue as don't use the turn to cursor because I'm apparently an alien or it's all the time playing various asteroids clones with only a keyboard in the 90s...

For clarity to make sure I'm understanding, you're suggesting the shield modes should be:
* current behavior (shield follows mouse)
* shield facing controlled by keys
* shield tracks selected target

Or would just having shield track the selected target be 99% of what you need? (This is what I do in my coop mod to get around lack of a second mouse)
Title: Re: Directional Omni shield Control (again)
Post by: Megas on June 01, 2019, 10:02:33 AM
Ah OK.  Sorry for the poor description, I'm unfamiliar with the issue as don't use the turn to cursor because I'm apparently an alien or it's all the time playing various asteroids clones with only a keyboard in the 90s...

For clarity to make sure I'm understanding, you're suggesting the shield modes should be:
* current behavior (shield follows mouse)
* shield facing controlled by keys
* shield tracks selected target

Or would just having shield track the selected target be 99% of what you need? (This is what I do in my coop mod to get around lack of a second mouse)
I do not use turn-to-cursor myself either.  I use so-called tank controls in Starsector because it controls similarly to other games I played.

I miss classic Wolf's omni-shield.  It took some practice to use omni-shield while piloting Wolf, but it was worth it, at least back when soloing enemy ships was easier.
Title: Re: Directional Omni shield Control (again)
Post by: Oodle on June 01, 2019, 11:05:56 PM
What if when in turn-to-cursor mode your shields rotated around you in relation to the cursors vertical movement away and towards the ship? You could just tap shift again or cycle shields to rest your shield to front facing. If you keep the mouse movement to about an on-screen inch for the 360* bounds it doesn't really affect the camera panning. I could see it being hard to guess where the epicenter of the shield is when trying to block shots by shield activation cycling to negate shield rotation without some sort of indicator.
Title: Re: Directional Omni shield Control (again)
Post by: Goumindong on June 02, 2019, 01:10:13 PM
That would be terible. Probably easier to just make the shield follow a targeted ship if one is targeted and use default behavior otherwise. Not having easy controls to block missiles would be the cost of doing business in that mode
Title: Re: Directional Omni shield Control (again)
Post by: TiberQ on November 10, 2020, 03:28:20 PM
Could we utilize the mouse scroll button instead?
Scroll down for omni shield togo clockwise, and scroll up for the omni arc togo counter-clockwise.*
This should let u keep the ''point weapons to mouse pointer'' intact, and is close the the lower raise-shield right mouse button.

While im at it.. the middle mouse button scroll, can also be pushed, assigning venting to that should make the whole package intuitive.

*smaller arcs on shield should have more precision to tank incoming specific things... like reapers. While larger shield arcs could be 30degree or even more per scroll tick.

Title: Re: Directional Omni shield Control (again)
Post by: DatonKallandor on November 10, 2020, 04:30:32 PM
Or just give us the option to hand omni-shield control to the AI.
Title: Re: Directional Omni shield Control (again)
Post by: TJJ on November 10, 2020, 06:34:06 PM
Could we utilize the mouse scroll button instead?
Scroll down for omni shield togo clockwise, and scroll up for the omni arc togo counter-clockwise.*
This should let u keep the ''point weapons to mouse pointer'' intact, and is close the the lower raise-shield right mouse button.

While im at it.. the middle mouse button scroll, can also be pushed, assigning venting to that should make the whole package intuitive.

*smaller arcs on shield should have more precision to tank incoming specific things... like reapers. While larger shield arcs could be 30degree or even more per scroll tick.

Was about to suggest this, though it's a significant change to the control scheme.

A couple of drawbacks that seem immediately obvious;
- mouse wheel is typically a direct, proportional input; small wheel movement -> small change, big movement -> big change.
However, as shield rotation rate is capped, there will be a disconnect between the player's wheel movements, and the resultant shield rotation.

This could be remedied by instead having the mouse wheel directly control a target angle for the shield, and then have the shield auto-rotate towards that target angle.
(though this solution creates potentially unintuitive rotation behaviour when the target angle is ~180 degrees away from the current angle)

- typically when changing shield orientation, you disengage the shield, and reengage it at a new heading. Often involving precise aim & timing to block critical damage.
As a mouse wheel would only be able to deliver discrete increments, I doubt this would achieve satisfactory results.

- mouse wheel up / down doesn't map well onto clockwise / counter-clockwise motion. Try steering in a driving game using the mouse wheel; sure it's possible, but it isn't immediately intuitive.

It's worth trying in an experimental mod, but I doubt it'd be successful enough to ever find its way into vanilla.

On the topic of experimental input..... how about FaceTrackNoIR ;)
That'd give the additional 2D axis needed.
Have your eyes control the gun target, and the mouse control the shield target. (or vice-versa)
Title: Re: Directional Omni shield Control (again)
Post by: SafariJohn on November 10, 2020, 08:38:15 PM
The main trouble with controlling omni shields is you also use the mouse to control weapons and ship facing (for turn-to-cursor players). You can switch weapons to autofire and hold shift to toggle keyboard facing, but that is a lot of buttons to press in a split second.

There is also the trouble that it can be hard to tell precisely when your shields are or aren't up.


The display problem could be solved with an overlay that shows a ring when shields when are raised, and maybe lines for their exact arc, too. This would only be for the player ship.

The control problem is a hard one. Maybe holding control and shift at the same time could toggle turn-to-cursor and let the currently selected group autofire? Sort of a "shield control mode" toggle.
Title: Re: Directional Omni shield Control (again)
Post by: TiberQ on November 10, 2020, 09:49:18 PM
Or just give us the option to hand omni-shield control to the AI.

For new players that should probably the default tbh. The U function for player ship works fine for all functions, for both front and omni.


- mouse wheel is typically a direct, proportional input; small wheel movement -> small change, big movement -> big change.
However, as shield rotation rate is capped, there will be a disconnect between the player's wheel movements, and the resultant shield rotation.

This could be remedied by instead having the mouse wheel directly control a target angle for the shield, and then have the shield auto-rotate towards that target angle.
(though this solution creates potentially unintuitive rotation behaviour when the target angle is ~180 degrees away from the current angle)

- typically when changing shield orientation, you disengage the shield, and reengage it at a new heading. Often involving precise aim & timing to block critical damage.
As a mouse wheel would only be able to deliver discrete increments, I doubt this would achieve satisfactory results.

- mouse wheel up / down doesn't map well onto clockwise / counter-clockwise motion. Try steering in a driving game using the mouse wheel; sure it's possible, but it isn't immediately intuitive.



The main trouble with controlling omni shields is you also use the mouse to control weapons and ship facing (for turn-to-cursor players). You can switch weapons to autofire and hold shift to toggle keyboard facing, but that is a lot of buttons to press in a split second.

There is also the trouble that it can be hard to tell precisely when your shields are or aren't up.


The display problem could be solved with an overlay that shows a ring when shields when are raised, and maybe lines for their exact arc, too. This would only be for the player ship.

The control problem is a hard one. Maybe holding control and shift at the same time could toggle turn-to-cursor and let the currently selected group autofire? Sort of a "shield control mode" toggle.

Both of u are right, and the solution for all those problems is also simple:

(https://png2.cleanpng.com/sh/18b7be8b90cac64537c68f7aa2a19d9f/L0KzQYm3VME2N6ttiZH0aYP2gLBuTgN1aaMyiNH1eXfyfn7rjBRma5Jsh9C2Znn5dX73jBlvfJZpReV9YYKwdLFrhfNib6NmRdxAZHHsg760VfFlO2ZofqcBZXS3RYG1UMg6QGQ3SKU6NUK2SIG4U8M0PGY5RuJ3Zx==/kisspng-star-polygon-dodecagon-five-pointed-star-dodecagra-judaism-5ad35cf56ed450.089832031523801333454.png)

This kind of overlay can be used around your ship in translucent mode.
So that it will work as follows:

-Right click shields up
-shield rotate at max speed to new highlighted pointer (a less translucent point where shield will end up).
(If shield arc is to little to cover the 2 points next to either side... at more points in the star )
-Or right click deactivate shield, scroll to new pointer(highlighted point), reactivate shield

The clockwise and counter-clockwise is indeed there to be intuitive, this should most definitely work like a charm.
This should have all your concerns covered.

Also it does not interfere whit current point to move / fire mouse control. u can still do this, the scroll is on your mouse. ( i do assume u play on an computer, not a laptop)


Instead of a star pips or lines can also be utilized:

(https://i.stack.imgur.com/JZHiV.jpg)


PS, i would like a mod for this, but alas i probably cant build one myself, if anyone would build one, i am more than willing to test run and refine.
Title: Re: Directional Omni shield Control (again)
Post by: Arcagnello on November 11, 2020, 04:16:10 AM
I've got to admit I'm rather torn on this suggestion.
I play with inverted controls most of the time,meaning mouse aims and A&D strafe since my fleets usually employ frontsiding units more than broadsiding ones.
If I happen to play the latter kind of ships I switch to normal controls so that I can control ship manouvering with A&D, strafing with Q&E and shield directioning&weapon aiming with the mouse.

Directional Omni shield controls would allow a player to not have to switch between the two control modes when changing command from frontsiders to broadsiders and viceversa and just stick to the former, but I don't see the utility of it for one simple reason:

How many frontsiding ships actually have an omni shield, and how many of them actually keep it in favour of converting it to a frontal one to gain better protection and lower their shield upkeep, justifying this suggestion? I can only name a very few amount of vanilla examples that would benefit from this suggestion, and it would mostly amount to absorbing Salamander missiles that would otherwise hit your engines.

Now don't get me wrong, I'm a very strong advocate of more customization and giving as much ship control freedom to the player as possible, but manually directing Omni shields can already be done in one of the two control modes and frontsiding ships that also have an omni shield are usually big and sluggish enough to not make their directional control with A&D a task that can only be accomplished by a Meth addicted squirrel on both Redbull and Cocaine.

Now, the true suggestion for me that would solve this problem would be to give us an actual hotkey that switches between control modes. I'm playing with a standard 2 boutton mouse and a Razer Orbweaver
Spoiler
(https://images-na.ssl-images-amazon.com/images/I/71EvQpoY5wL._AC_SL1500_.jpg)
[close]
and being able to switch between modes in an instant (as opposed to opening the option menu and flicking a check) every time I want to manually control a shield for that one second of combat would be much, much appreciated.

What I'll conclude this reply on is that I think the most useful feature OP talked about here is having your omni shield track a targeted enemy for you, while the player still retains the ability to raise/lower the shield at will. The icing on the cake for this "auto-shield" would be making it able to also track missiles, like the dreaded Salamanders that gruesomely doomed many of my non-360 shield frigades.

Title: Re: Directional Omni shield Control (again)
Post by: SafariJohn on November 11, 2020, 07:55:16 AM
and being able to switch between modes in an instant (as opposed to opening the option menu and flicking a check) every time I want to manually control a shield for that one second of combat would be much, much appreciated.

Just hold shift - it swaps between "normal" and turn-to-cursor while held down.
Title: Re: Directional Omni shield Control (again)
Post by: Arcagnello on November 11, 2020, 07:57:57 AM
and being able to switch between modes in an instant (as opposed to opening the option menu and flicking a check) every time I want to manually control a shield for that one second of combat would be much, much appreciated.

Just hold shift - it swaps between "normal" and turn-to-cursor while held down.

Hah, the more you know. Flashing one's ignorance does yield suprisingly good results sometimes, thanks buddy!

Is this actually written anywhere in the game by the way? That seems like a very important fuction to not know about....
Title: Re: Directional Omni shield Control (again)
Post by: SCC on November 11, 2020, 09:44:45 AM
I thought you get taught that in the combat tutorial.
Title: Re: Directional Omni shield Control (again)
Post by: Arcagnello on November 11, 2020, 10:15:13 AM
I thought you get taught that in the combat tutorial.

That'd explain things since I never played the tutorial or did a tutorial mission start. I just played campaign after campaign until the treshold of catastrophic failures rose above a level of being able to play a campaign for more than 2 hours, the rest is history :P
Title: Re: Directional Omni shield Control (again)
Post by: Schwartz on November 12, 2020, 05:27:17 AM
I must be the odd man out. I play with turn-to-cursor by holding down shift almost constantly while flying. In some situations I release shift. I use WASD & Q & E both in shift mode and in regular mode. I also use the scroll wheel for zooming. So several of these ideas would already have to be re-mapped for someone who uses a "full" control scheme like I do.

In situations where the omni shield needs to manually be turned, I usually set all groups to autofire and free the cursor to just direct the shield, which works fine.

Out of all the suggestions, I think an automatic omni shield would be the most painless for me but likely also the most easymode.
Title: Re: Directional Omni shield Control (again)
Post by: SafariJohn on November 12, 2020, 07:34:53 AM
There is an option in settings to make turn-to-cursor the default.
Title: Re: Directional Omni shield Control (again)
Post by: TiberQ on November 13, 2020, 07:06:08 AM
None of that solves the problem of being able to set those settings yourself.

Having a split function to 1 turn weapons to mouse pointer and 2 have mouse scroll wheel rotate your shield.
Because holding down shift to rotate to mouse pointer is not useful while guns are also pointing to mouse pointer.
Why? because any missiles coming to you u shoot down usually and the quick/phase ships dont stay in your field of fire, they go around back, thats why u want your shield there.
Tanking to lower dps that gets true on the front, is preferable than taking engine/armor/hull damage and (especially reapers) on the back.
Title: Re: Directional Omni shield Control (again)
Post by: pairedeciseaux on November 13, 2020, 11:41:00 AM
Having a split function to 1 turn weapons to mouse pointer and 2 have mouse scroll wheel rotate your shield.
Because holding down shift to rotate to mouse pointer is not useful while guns are also pointing to mouse pointer.
Why? because any missiles coming to you u shoot down usually and the quick/phase ships dont stay in your field of fire, they go around back, thats why u want your shield there.

Depends on your loadouts and weapons groups. Usually I would put missiles on WG 1, the other WGs with autofire enabled/disabled. Keep WG 1 selected most of the time. This way you don't have to continuously aim at the target with mouse cursor, only switch target with R. Mouse cursor position is then mostly dedicated to shield orientation when not pressing shift. Works well will Conquest and Shrike.

(context: I use turn-ship-to-cursor-by-pressing-shift)

Now in some situations you may -in theory- want to both micromanage shoot-while-aiming-at-cursor and change shield orientation at the same time. In practice? Personally I consider this to be beyond what I want to do and what I can do in the heat of battles. Hence, autofire on/off is my friend.