Let spells use the ranged weapon/quiver interface


Although the central place for design discussion is ##crawl-dev on freenode, some may find it helpful to discuss requests and suggestions here first.

Crypt Cleanser

Posts: 746

Joined: Thursday, 5th December 2013, 04:01

Post Tuesday, 9th May 2017, 04:50

Let spells use the ranged weapon/quiver interface

The quiver interface is really nice for making ranged weapons with multiple ammo types be a lot less clunky. When you want to shoot a bunch of poison needles at an enemy, instead of the game prompting you for what type of needle you want to use every single shot, you just quiver your poison needles and then can shoot them with 'f'.

With spells, meanwhile, the game prompts you for what spell you want to cast every single time you try to cast a spell. It defaults to the last spell cast, which is convenient when you're spamming the same spell a lot (pretty common for a conjurer playstyle), but way less convenient than the interface for ranged weapons, in my opinion (it's still at least one extra button press on every cast).

I think it would be nice if spells could use the same interface as ranged weapons. I see two obvious ways to implement this, but maybe there are better options:


  1. Let the player quiver spells in the regular quiver, and then cast those spells with 'f'. This is sort of weird, and gets clunky for characters that use both ranged weapons and spells, but it could work and doesn't require changing any other buttons.
  2. Add a "spell quiver" that works like the ammo quiver. This is cleaner in some senses, but would require figuring out the controls, since it would add two new commands (cast quivered spell and change quivered spell). Personally, I think it would work well to just make 'z' and 'Z' work like 'f' and 'F' now - 'z' casts the quivered spell, 'Z' brings up a prompt to choose any spell, both using the current aiming interface of 'Z'. This would eliminate the current 'z' functionality, but I'm not sure why that needs to exist at all. That would just leave the need for a "change quivered spell" command.

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Tuesday, 9th May 2017, 05:04

Re: Let spells use the ranged weapon/quiver interface

Is this necessary? I usually macro "/" to the spell I typically spam as a conjurer-style character. Or "F1", "F2" or "1", "2" etc. work well too.

For this message the author bel has received thanks:
NhorianScum

Slime Squisher

Posts: 344

Joined: Tuesday, 14th April 2015, 19:56

Location: France

Post Tuesday, 9th May 2017, 07:47

Re: Let spells use the ranged weapon/quiver interface

This could be a rcfile option
3 runes : MiMo^Ru, HOFi^Beogh, TrMo^Yredelemnul, GrFi^Ru, FoFi^Gozag, MiGl^Okawaru
4 runes : DDFi^Makhleb
5 runes : GrEE^Vehumet
15 runes : MiFi^Ru, NaWz^Sif Muna, GrWz^Sif Muna
I mostly play offline or online on CXC

Crypt Cleanser

Posts: 746

Joined: Thursday, 5th December 2013, 04:01

Post Tuesday, 9th May 2017, 09:07

Re: Let spells use the ranged weapon/quiver interface

bel wrote:Is this necessary? I usually macro "/" to the spell I typically spam as a conjurer-style character. Or "F1", "F2" or "1", "2" etc. work well too.


Having a macro for your main spell that you change every time you switch to a new main spell is basically the same thing as having a spell quiver except much, much clunkier. If the spell interface is so clunky you need to use macros to make it not terrible, we may as well add a quiver system that basically gives a faster and simpler way to macro a spell.

For this message the author Quazifuji has received thanks:
Gigaslurp

bel

Cocytus Succeeder

Posts: 2184

Joined: Tuesday, 3rd February 2015, 22:05

Post Tuesday, 9th May 2017, 09:16

Re: Let spells use the ranged weapon/quiver interface

Is it clunky? One simply needs to adjust the macro once every few levels. I think the spell system is more complicated because there are more kinds of spells in your library than projectiles in your inventory. It's hard to get around that fact.

And what if you want to use both spells and projectiles (like needles, or launchers with an AM, say)? I am not sure if the proposal is an improvement over the status quo.
User avatar

Tartarus Sorceror

Posts: 1698

Joined: Saturday, 18th June 2016, 13:57

Post Tuesday, 9th May 2017, 10:48

Re: Let spells use the ranged weapon/quiver interface

Things don't need to exclude each other. The current system of z+a, b, c can be kept. At the same time, you can have two quivers (spells and missiles). Give the I menu a ! option to quiver spells, maybe with the option of fast opening it with e.g. alt+i or some other shortcut. Use p to cast the quivered spell.

The z+a method has its use if you like to cast many different spells, I think that an EE has a lot of use for it. So it shouldn't be done away with. At the same time, I think of how often I use magic missile or a particular conjuration with some characters, and that's a lot of double presses that could be just one with a quivered spell.

I had thought of something like this for wands, but there is no reason not to use this with spells.
I Feel the Need--the Need for Beer
Spoiler: show
3DSBeTr 15DSFiRu 3DSMoNe 3FoHuGo 3TrArOk 3HOFEVe 3MfGlOk 4GrEEVe 3BaIEChei 3HuMoOka 3MiWnQaz 3VSFiAsh 3DrTmMakh 3DSCKXom 3OgMoOka 3NaFiOka 3FoFiOka 3MuFEVeh 3CeHuOka 3TrMoTSO 3DEFESif 3DSMoOka 3DSFiOka

Swamp Slogger

Posts: 161

Joined: Thursday, 16th May 2013, 15:28

Post Tuesday, 9th May 2017, 17:24

Re: Let spells use the ranged weapon/quiver interface

Any time you make a macro, it is clunky.

Any time you have to edit the rcfile, it is clunky^4.

For this message the author Speleothing has received thanks: 4
archaeo, duvessa, Gigaslurp, Implojin

Vaults Vanquisher

Posts: 443

Joined: Thursday, 16th February 2017, 15:23

Post Tuesday, 9th May 2017, 17:44

Re: Let spells use the ranged weapon/quiver interface

There's some merit in the idea. One thing that makes the quiver work for throwing/firing things is that you don't generally want to switch what you're shooting very much. With spells you care about range (unfortunately), so to really make the computer do the work for you, you might need some order of preference in what kind of spell you want to shoot, so that at melee range it'll freeze and at other ranges it will throw frost or icicle. What f or tab or whatever button does could still be indicated in the quiver slot even though it varies from turn to turn.

Anything that involves an rc option or a macro should not be taken seriously as the go-to option for solving a problem like this.
*Lana Del Rey voice* , video games...

For this message the author watertreatmentRL has received thanks: 3
duvessa, Gigaslurp, Implojin

Ziggurat Zagger

Posts: 6454

Joined: Tuesday, 30th October 2012, 19:06

Post Tuesday, 9th May 2017, 23:02

Re: Let spells use the ranged weapon/quiver interface

See: init options starting with "automagic"

See also: reassigning spell slots with =
See also: Assigning a keyboard shortcut to am_assign_spell
Spoiler: show
This high quality signature has been hidden for your protection. To unlock it's secret, send 3 easy payments of $9.99 to me, by way of your nearest theta band or ley line. Complete your transmission by midnight tonight for a special free gift!

Dungeon Master

Posts: 3618

Joined: Thursday, 23rd December 2010, 12:43

Post Tuesday, 9th May 2017, 23:12

Re: Let spells use the ranged weapon/quiver interface

As has been said, the basic problems are (1) more spells in use than projectile types and (2) more differentiated spell use (one, but not the only, reason is range).

One feature that I could see works like this:
  • An option to disable number keys for movement. (Ideally, we could distinguish here between the number row and the number block.) The following all assume that the number row is disabled for movement.
  • The first ten spell slots map to 1,2,...,9,0 rather than a...j.
  • Pressing a number key casts the according spell.
  • Ideally, there could be a screen real estate to show (abbreviations) for spells in the first ten slots.

For this message the author dpeg has received thanks:
Implojin

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Wednesday, 10th May 2017, 00:28

Re: Let spells use the ranged weapon/quiver interface

dpeg wrote:
  • The first ten spell slots map to 1,2,...,9,0 rather than a...j.
  • Pressing a number key casts the according spell.
I don't think this is more convenient than 'z' + letter. Typing 'zf' is pretty much just as easy as typing just 'z', my finger is already there. The numrow and numpad are far away from the home keys - that's why abilities and spells are assigned to letters rather than numbers in the first place.
When I'm playing conjurers, the time I spend doing 'z' inputs is dwarfed by the time spent messing around with the targeter and getting through --more--s. Same for ranged combat. If I have a spell like Refrigeration that I can use without targeting, my speed increases dramatically, and even then my 'zh' presses are taking a tiny tiny tiny fraction of the time that --more--s do.

Targeting in games like Crawl is just not fluid at all. If it's a simple spell or missile, and there's one monster on the screen, then I can probably use the default target - which is still an extra keypress compared to melee. If it's LRD or fireball or anything bouncy or there's more than one monster around, then I probably have to move from the default target, which is one or more additional keypresses. Notice that this is also the entire reason why reaching sucks on players.
You can't reliably select the player's desired target as the default one, unless someone invented super-strong AI while I wasn't looking. Which means that improvements to the default target selection are very difficult: a targeter that predictably selects a bad target (e.g. closest monster) is much better than a targeter that selects a better but unpredictable target. This is because in the former case, the player knows where the targeter will start, so they can input their target adjustment keypresses without looking. If the player doesn't know what the default target will be ahead of time, then they have to start targeting and look at the screen to find out what location the default targeter chose - which introduces an additional 250ms+ delay. This is why we begged for simple_targeting: for experienced players, the "smart" auto-targeters for LRD and bolt bouncing actually make using those spells slower.
In some types of game, targeted stuff is (mostly) no problem, because the targeting interface is smoothly integrated with the regular interface. Targeting in Doom doesn't slow things down much, because you shoot wherever you're looking. Targeting in Diablo doesn't slow things down much, because you're already using the mouse to say "move here" and using it to say "attack here" instead is fluid and convenient.
To target things in Crawl or NetHack or ToME4 or whatever, on the other hand, you make a bunch of keypresses (or a click) that aren't smoothly integrated with the rest of the interface at all. In fact, targeting has a separate interface of its own, like it's the pop-up window for a Photoshop filter where you have to enter the parameters and press OK before you can go back to drawing your hentai with the regular interface.
Nor do I think this is fixable - the targeting interface is about as good as it could be. The only route to improving DCSS targeting that I can think of is to get rid of it, and only allow firing in 8 directions. Needless to say, this introduces its own problems and isn't going to happen any time soon.

As for --more--s, basically the game is just too verbose about attacks by default. Every time I fire a longbow, the game prints "You shoot an arrow." Well, no shit. That's like printing "You move northwest." Then I get a message for every monster it misses, and then if it hits a monster I get a message for that, another message if the missile was flaming/freezing, and another message about how wounded the monster is. If it was over water or lava I get another message about the splash, if my ammo didn't mulch. Then come all the messages about monster actions.
This is noticeably worse than melee (you don't get "You swing your mace. \n You hit the rat," you just get "You hit the rat", and no splashes unless something dies), at least before cleaving and riposte. And melee already produces quite a bit of message spam!
Spells are even more susceptible to this, because lots of them hit multiple targets. Also, Crawl has a bit of an obsession with large packs of monsters, which are a sure recipe for message spam.

For this message the author duvessa has received thanks:
sanka

Slime Squisher

Posts: 368

Joined: Thursday, 11th April 2013, 21:07

Post Wednesday, 10th May 2017, 00:38

Re: Let spells use the ranged weapon/quiver interface

One of the problems that came up during an earlier iteration of this discussion is that with respect to screen real estate, finding enough screen area in the primary viewport to display slot binds becomes a problem in console versions of the game. This is one area where the technical limitations of console compatibility strain against the practical considerations of enabling fun gameplay through minimizing interface modality shifts.

Forcing the player to initiate such a modality shift (by opening a subwindow, for example) to view their slot binds would be a decidedly poor solution. watertreatmentRL's suggestion of providing context-sensitive binds is interesting, but the principle of least astonishment should also be considered here -- Will a player expect a bind, that they have previously recognized to do one thing, to change during gameplay, without their involvement?

Handling this problem in tiles versions of the game is somewhat easier. There's extra space within the primary viewport to display binds, we have spell tiles that can be displayed therein (to clearly differentiate bound abilities using minimal screen real estate), and we can even do things like overlaying the keybind atop said spell icons to provide at-a-glance interface clarity.


In short, these UI issues are aggravated by the stylistic choice to maintain a console version of the game alongside tiles versions of the game. I mention this here explicitly, because previous suggestions to drop support for console versions of the game have been met with accusations of trolling, when in reality such suggestions have a strong basis in practical usability concerns for this application as a whole.

I would like to echo my previous sentiment that trying to pawn ranged ability UI off on things like the macro editor, repeat command bind, or rcfile modifications are nonsolutions to which no player should be exposed. The game needs a functional offensive ability UI that can trigger abilities in one keypress, without shifting away from the primary gameplay viewport (and without gameplay-interrupting/gameflow-breaking confirmation dialogs!), much like it needs a functional options UI to change rcfile settings on the fly without exiting the game and opening a text editor.

For this message the author Implojin has received thanks:
duvessa
User avatar

Barkeep

Posts: 4435

Joined: Tuesday, 11th January 2011, 12:28

Post Wednesday, 10th May 2017, 02:22

Re: Let spells use the ranged weapon/quiver interface

I think option 1 of the OP's suggestion might work, actually. There might be some way to select some conjurations to be your "quiver list" (a screen like the autopickup screen) and then, with autofight_throw and autofight_throw_nomove, you could spam your "quivered" spell with tab or shift-tab.

Yeah, it sucks for people using missile weapons and conjurations but I think the solution there is to remove missile weapons entirely and devote the UI used for missiles to conjurations. That's a job for another thread, though.
I am not a very good player. My mouth is a foul pit of LIES. KNOW THIS.

Vaults Vanquisher

Posts: 443

Joined: Thursday, 16th February 2017, 15:23

Post Wednesday, 10th May 2017, 02:47

Re: Let spells use the ranged weapon/quiver interface

Yes, there are going to be issues with attack flavor and attack pattern with any kind of autoselection for spells. The granularity with which you can select these things is a big part of the interface problem here and probably cannot be resolved on the interface side alone. Probably the best you can do along the lines of what I suggested upthread, taking into account targeting and attack flavor issues is to make the system indicate what your target will be prior to any input on a turn and pass over spell options your default target is going to resist. If you get a reasonable move 90% of the time, that represents a big improvement over how things work now.

My feeling is that if you hit the player over the head with how the system works hard enough and the system is reasonably good, they'll accept it. You can just give instructions on how to set this stuff up on the spell screen at the bottom: "Tab (or whatever) will try to cast the first spell that can hit the closest monsters, going down the list in alphabetical order and skipping those the target resists, hit = to rearrange the spells in this menu." It would be good to let the player rearrange directly from the z/Z menus.
*Lana Del Rey voice* , video games...

Crypt Cleanser

Posts: 746

Joined: Thursday, 5th December 2013, 04:01

Post Wednesday, 10th May 2017, 09:47

Re: Let spells use the ranged weapon/quiver interface

njvack wrote:I think option 1 of the OP's suggestion might work, actually. There might be some way to select some conjurations to be your "quiver list" (a screen like the autopickup screen) and then, with autofight_throw and autofight_throw_nomove, you could spam your "quivered" spell with tab or shift-tab.


I wrote option 1 as a sort of "imperfect but better than nothing" solution. It uses an existing feature of the game, is easy to ignore for people who prefer the way things are now, and still seems almost strictly better than macros for most characters (and the characters that are an exception can still always use macros like they do now). It doesn't solve all the issues, but it solves some and I don't think it creates any new ones.

I think it's possible for a better solution to be found than either of the things I proposed. But I think this could also easily be a "perfect is the enemy of the good" scenario where we spend forever debating the best spell interface while still being stuck with the current terrible one. So I proposed what I thought might be a relatively easy change (maybe I'm wrong, I'm not familiar with DCSS' code) that I thought would be a massive quality of life improvement for characters that spam a lot of spells. Spellcasting would still be clunkier than ranged weapon combat, let alone melee combat (I agree Duvessa's point that the nature of DCSS' controls means the targeting interface will always be on the clunky side), but it would be better.

Ziggurat Zagger

Posts: 6454

Joined: Tuesday, 30th October 2012, 19:06

Post Wednesday, 10th May 2017, 15:05

Re: Let spells use the ranged weapon/quiver interface

Quazifuji wrote:
njvack wrote:I think option 1 of the OP's suggestion might work, actually. There might be some way to select some conjurations to be your "quiver list" (a screen like the autopickup screen) and then, with autofight_throw and autofight_throw_nomove, you could spam your "quivered" spell with tab or shift-tab.


I wrote option 1 as a sort of "imperfect but better than nothing" solution. It uses an existing feature of the game, is easy to ignore for people who prefer the way things are now, and still seems almost strictly better than macros for most characters (and the characters that are an exception can still always use macros like they do now). It doesn't solve all the issues, but it solves some and I don't think it creates any new ones.

I think it's possible for a better solution to be found than either of the things I proposed. But I think this could also easily be a "perfect is the enemy of the good" scenario where we spend forever debating the best spell interface while still being stuck with the current terrible one. So I proposed what I thought might be a relatively easy change (maybe I'm wrong, I'm not familiar with DCSS' code) that I thought would be a massive quality of life improvement for characters that spam a lot of spells. Spellcasting would still be clunkier than ranged weapon combat, let alone melee combat (I agree Duvessa's point that the nature of DCSS' controls means the targeting interface will always be on the clunky side), but it would be better.

The thing is *this solution already exists* it is simply not bound to a key or enabled by default.

The answer here isnt to write a new thing, it is just to turn it on.
Spoiler: show
This high quality signature has been hidden for your protection. To unlock it's secret, send 3 easy payments of $9.99 to me, by way of your nearest theta band or ley line. Complete your transmission by midnight tonight for a special free gift!

Shoals Surfer

Posts: 268

Joined: Tuesday, 4th October 2016, 09:32

Post Wednesday, 10th May 2017, 18:06

Re: Let spells use the ranged weapon/quiver interface

Wouldn't quivering spells still require 2 keypresses minimum to cast vs the 3 keypresses from z or 1 keypress from macro with changing quivered spells as a more annoying version of just setting up a macro on your 3-4 spammy killdudes spells?

Return to Game Design Discussion

Who is online

Users browsing this forum: Google [Bot] and 75 guests

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.