Cast Spell Improvements

Discuss coding questions, pull requests, and implementation details.
Post Reply
User avatar
jefetienne
Posts: 170
Joined: Thu Jan 16, 2020 8:14 pm
Location: Gallomont, Wayrest
Contact:

Cast Spell Improvements

Post by jefetienne »

After having a friend stream their first play of Daggerfall to me, he cast a destruction spell, got the message "Press button to fire spell" but was confused on what to do. I had to tell him to hit the activate button. He also questioned why he couldn't cast the spell, and I had to explain that he needed to cast it on a specific target in front of him. It gave me a few thoughts toward improving the way spellcasting is handled:
  • What do you think about changing the message from "Press button to fire spell" to "Press Activate to fire spell" or "Press '<activate button keycode>' to fire spell" as to be more specific?
  • I think it also might be worth removing the restriction of having to cast a ranged spell on a specific target. Sometimes, a player might want to aim off-target to predict their trajectory if they're moving to the side, just like how we can do this with a bow.
  • Finally, I was also thinking about including the "Swing weapon" button as either an additional, or an exclusively alternative, way of casting, since it's pretty intuitive for an offensive ability to share the same button. Possibly be added as an option (though I feel we're getting a bit too many togglable options). The only issue I might see with the former is if new players are thinking casting spells are only done via Swing Weapon, then they might consider the activate button to be a bug. That means it might be better to have it as a togglable option to make it exclusively one way of casting.
Please let me know how you feel about all or any of these, or ways you might think of improving it.
El jefe, Etienne
Nexus Mods | GitHub

User avatar
mikeprichard
Posts: 1037
Joined: Sun Feb 19, 2017 6:49 pm

Re: Cast Spell Improvements

Post by mikeprichard »

I agree classic's feedback here is very confusing and needs work, particularly for new DF players, and really like all of your above ideas (though I also see the potential issues with adapting the "swing weapon" function for spells, especially if that isn't allowed as an option in DFU settings). Glad to see people thinking about improvements here!

User avatar
jefetienne
Posts: 170
Joined: Thu Jan 16, 2020 8:14 pm
Location: Gallomont, Wayrest
Contact:

Re: Cast Spell Improvements

Post by jefetienne »

mikeprichard wrote: Mon May 25, 2020 1:41 pm I agree classic's feedback here is very confusing and needs work, particularly for new DF players, and really like all of your above ideas (though I also see the potential issues with adapting the "swing weapon" function for spells, especially if that isn't allowed as an option in DFU settings). Glad to see people thinking about improvements here!
Thanks mikeprichard!
El jefe, Etienne
Nexus Mods | GitHub

User avatar
DigitalMonk
Posts: 111
Joined: Sun Nov 10, 2019 8:01 pm

Re: Cast Spell Improvements

Post by DigitalMonk »

I like the ideas, and I definitely like the idea of providing a more modern interface. I absolutely agree that ranged spells should not require a target -- I would say that, at the point of activation, if the cursor is pointing at an object's collision shape (typically the capsule around a monster), then that object is taken as the target. If no such collision shape is in the path of the cursor, the spell simply launches directly forward. This could be irritating if you're trying to shoot past a nearby creature to hit a distant one, but that would fail anyway because the spell would come in contact with the nearby collision shape just like the cursor did. This approach would provide a mild form of auto-aim while allowing for leading targets or firing AoE spells "around" corners.

I could also see treating spell-casting as analogous to the bow's draw-and-release system. When you cast the spell, go ahead and play the casting/buildup images, then alternate between the last two to show your character holding that spell ready for release. Once the spell in activated, finish off any "release" images and let the spell fly away. Probably better approaches, I'm just trying to think of what could be done with the existing assets.

I would also be strongly in favor of an option for "make targeted recast immediate", so that I can bombard something with rapid fire attacks (just like I can rapidly heal myself, or rapidly slap with touch spells). This would work with either removing the targeting of spells or the partial auto-aim from above. This would also be clearer, because recast would always be a single button action instead of the current system where non-targeted spells instantly recast but targeted spells require the extra activation to complete. Note that this is just a gameplay option, like "single click to attack", and not another button for a different recast mode...

So much for the comparatively simple adjustments ;)

Personally, I would like to see an option for Skyrim-style wielding. Put whatever you want in each hand, and then pick which keys/buttons activate each hand. Default would seem to be left/right mouse buttons (or triggers) for left/right hands, but user should have the option to redefine. This would require some way of assigning a spell to a hand, which is an entirely new system, and in its final form would even need to impact the paper doll system. As a general rule, I wouldn't worry overmuch about trying to figure out every combination of blending this with other systems, just have a giant switch for "modern wielding" just like "modern look."

That having been said, IF this could be implemented by basically auto-pressing the relevant keys in the background (preferably with a system to bypass the "switching hands" delay for this purpose), then it might "just work" with most systems. To clarify:
  • If I put a mace in my right hand and a dagger in my left hand: The right-hand-activate button would see if the mace was in my character's active hand and if not it would "immediately switch hands" before activating the normal attack button. The left-hand-activate button would do the same, but for the dagger.
  • Because the left/right-hand-activate buttons end by activating the normal attack button, this would transparently work with either click-to-attack or swipe-to-attack (as long as the left/right-hand-activate buttons are handled on 'press' rather than 'release')
  • "immediately switch hands" will require a little hacking, because this system is assuming that both weapons are already equipped, so the hidden "switch hands" isn't a real action and should not take time (unless you wanted to add a dual-wield skill that addressed the cognitive difficulty of effectively using two weapons, in which case increasing the dual-wield skill would decrease the hidden "switch hands" delay)
  • The normal equipping delay would be activated any time the user changes either hand's equipped item/spell.
  • If a hand has a spell "equipped", then that hand's activation does whatever internal sequencing is needed to cast that spell.
  • left-hand-activate would also need to set a flag for the animation system to mirror the attack animation
  • Now that shields are held in a hand that can be activated, it raises the question of how to treat blocking. Dark Souls enthusiasts would probably prefer that shields are only effective while you have that hand activated. Myself, I'd prefer the shield to have normal effect all the time, but if I activate that hand then I am actively hiding behind that shield and get some kind of boost to the shield's effect.
  • ('Monday' morning insanity option) I sort of wonder if Khajiit and Argonians should be given an extra "small equipment" slot for their tails -- just enough for a light dagger or a buckler. Low accuracy, low damage, more of a distraction... Not sure how you'd simulate that inside the combat system...

User avatar
jefetienne
Posts: 170
Joined: Thu Jan 16, 2020 8:14 pm
Location: Gallomont, Wayrest
Contact:

Re: Cast Spell Improvements

Post by jefetienne »

Thanks for your feedback DigitalMonk!

I really like your idea for "make targeted recast immediate" and it's actually something I could merge with the "Swing Weapon" idea. A single option called "Simplified Spellcasting" could be used to fuse the "Recast Spell" action and the "Activate" action (for spellcasting) to the "Swing Weapon" action.

I also think the draw and release idea also sounds great as well - it would just need to be bundled with the visible spellcasting hand feature. The only thing that concerns me is that I see is the subsequent frames for the hand animation have elemental lightning bolts coming from the edges of the image, and stopping at frame 5 might make it seem awkward to see those suspended in the air. Now if other developers on the project feel alright with that, then I am definitely on board to work on it.

The skyrim-styled wielding is also a great idea, and I'd personally love to see and use it in DFU! That being said, I think it might fare better as a mod due to a stronger deviation from classic gameplay mechanics and the complexity of its implementation. However, maybe in the future we could look into seeing what areas of the code could be opened up that can help improve the combat experience.

I think the auto-aim, while probably less complex, might also be considered to be more of a mod feature since it deviates a bit from classic behavior, but maybe other contributors/collaborators would feel different.
El jefe, Etienne
Nexus Mods | GitHub

User avatar
Interkarma
Posts: 7256
Joined: Sun Mar 22, 2015 1:51 am

Re: Cast Spell Improvements

Post by Interkarma »

jefetienne wrote: Sun May 24, 2020 5:14 pm What do you think about changing the message from "Press button to fire spell" to "Press Activate to fire spell" or "Press '<activate button keycode>' to fire spell" as to be more specific?
I'd lean more towards "Press activate to fire spell", but it's not necessarily any clearer than "Press button to fire spell". Using "Press <keycode> to fire spell" is most unambiguous, it just feels a bit odd to inject device keys into this text. I don't like the look of "Press Mouse0 to fire spell" at all.

I'm not sure we need to change it now, even though it's a common point of confusion for new players. If we do, I'd prefer "Press activate to fire spell" with that casing.

jefetienne wrote: Sun May 24, 2020 5:14 pm I think it also might be worth removing the restriction of having to cast a ranged spell on a specific target. Sometimes, a player might want to aim off-target to predict their trajectory if they're moving to the side, just like how we can do this with a bow.
There's no such restriction for "target at range" and "area at range" spells. They also have excellent feedback thanks to a visible missile and the player can adjust aim if they miss.

Only "touch" spells require a valid target within reach. The way I implemented this originally was exactly as you say, but it resulted in players burning spellpoints because they didn't have the target lined up properly and there is no visible feedback as with missiles. This followed into complaints that touch spells weren't working. After much feedback and a review, this was changed back to work like classic.

jefetienne wrote: Sun May 24, 2020 5:14 pm Pango mentioned in my Abort Spell PR about displaying the first frame of casting a spell, and I think it would be great for providing visual feedback to indicate that the user is in a spellcasting "mode"
I really like the idea, but I feel it's something more fitting to a mod. I know that I've been really loose with this, but I'm trying to keep DFU as close to feature lock as possible. I really want to see the game hit beta this year, and I'm starting to get necessarily selective about changes to core. This kind of change is really more mod territory now. Even some of the things that made into DFU core in pre-alpha (like enhanced climbing and personal light sources) would be directed towards mods today.

jefetienne wrote: Sun May 24, 2020 5:14 pm Finally, I was also thinking about including the "Swing weapon" button as either an additional, or an exclusively alternative, way of casting, since it's pretty intuitive for an offensive ability to s0hare the same button. Possibly be added as an option (though I feel we're getting a bit too many togglable options). The only issue I might see with the former is if new players are thinking casting spells are only done via Swing Weapon, then they might consider the activate button to be a bug. That means it might be better to have it as a togglable option to make it exclusively one way of casting.
I also worry it's just going to make things less clear. Right now, a new player only has to comprehend spellcasting once. This process matches classic and there's plenty of information and help available if they don't immediately understand. If this is an option, by the time a user discovers the problem and there's an option for it, they've probably overcome the lack of understanding of which button to press in the first place. It just seems overcomplicated.

So if we do this, I don't think it needs yet another option. Just make it so that either activate or attack will launch a spell and be done with it. It could result in some additional confusion, or it might not. Like you say, it seems fairly intuitive for the attack button to also launch a spell when one is armed.

User avatar
jefetienne
Posts: 170
Joined: Thu Jan 16, 2020 8:14 pm
Location: Gallomont, Wayrest
Contact:

Re: Cast Spell Improvements

Post by jefetienne »

Interkarma wrote: Fri May 29, 2020 12:06 am I'd lean more towards "Press activate to fire spell", but it's not necessarily any clearer than "Press button to fire spell". Using "Press <keycode> to fire spell" is most unambiguous, it just feels a bit odd to inject device keys into this text. I don't like the look of "Press Mouse0 to fire spell" at all.
I agree.

Interkarma wrote: Fri May 29, 2020 12:06 am There's no such restriction for "target at range" and "area at range" spells. They also have excellent feedback thanks to a visible missile and the player can adjust aim if they miss.
I went back into my save - my mistake, I was testing a touch spell. :oops:
Interkarma wrote: Fri May 29, 2020 12:06 am I really like the idea, but I feel it's something more fitting to a mod. I know that I've been really loose with this, but I'm trying to keep DFU as close to feature lock as possible.
That's makes sense. I'll develop a mod then. :)
Interkarma wrote: Fri May 29, 2020 12:06 am Just make it so that either activate or attack will launch a spell and be done with it. It could result in some additional confusion, or it might not. Like you say, it seems fairly intuitive for the attack button to also launch a spell when one is armed.
That sounds fine! For now, I'll hold off on it. Maybe if it comes up frequently, I'll work on it.
El jefe, Etienne
Nexus Mods | GitHub

Galraen
Posts: 4
Joined: Fri Jun 05, 2020 10:28 pm

Re: Cast Spell Improvements

Post by Galraen »

Sorry for resurrecting this thread but I couldn't find an alternative. The problem I have with using the activate button to shoot a fireball is when I want to open a door I don't want to "Blow the bloody door off" as Michael Caine might say! This was an infuriating glitch in the original game, why duplicate it?

Post Reply