Viewing Issue Simple Details Jump to Notes ] Wiki ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001716 [DCSS] FR: Other minor N/A 2010-06-09 00:47 2010-06-26 04:09
Reporter casmith789 View Status public  
Assigned To due
Priority normal Resolution suspended  
Status closed   Product Branch 0.7 ancient branch
Summary 0001716: Range nerf should be reverted/changed.
Description I can see the reasoning behind the range changes, it doesn't make sense that the conjurations travel as far diagonally as they do orthogonally. However, this should only be true if it isn't possible to move diagonally at the cost of one turn. As it is by outmaneuvering a monster travelling at the same speed as you, you can get in range from out of range while running away. This imo seems a more serious bug/feature and one that should be changed to make it more plausible.

I suggest either:

a) Square LOS
b) Same as 0.6.
Additional Information
Tags No tags attached.
Attached Files png file icon table.png [^] (3,918 bytes) 2010-06-22 08:57

- Relationships

-  Notes
(0005479)
MrMisterMonkey (reporter)
2010-06-09 00:54

I second having a square LOS.
(0005480)
Luca (reporter)
2010-06-09 01:02

A naive implementation of sqrt(2) diagonal move cost seems to have serious problems.

Suppose that you are next to a monster, and move away diagonally, with cost sqrt(2). Now the monster can move non-diagonally to where you were (cost 1) and also attack you, which is rather unintuitive.

That can be fixed by raising diagonal attack costs to sqrt(2), but then if you are next to two enemies, whacking the diagonally positioned one will result in more hits from the other than if you whacked the non-diagonally one positioned one, so this also leads to strange results.

Not sure how to fix this.
(0005481)
OG17 (reporter)
2010-06-09 01:02
edited on: 2010-06-09 01:03

Agree with either reverting things or switching to square LOS. It was strange that you could see further horizontally and vertically than diagonally, sure, but it didn't get in the way; spells having shorter and longer ranges at different angles definitely gets in the way. A range five spell should always be range five, and square LOS would work best with that.

e: using "larger" diagonal distances is hopelessly messy and unintuitive.

(0005484)
KiloByte (manager)
2010-06-09 02:28

Screw that. The whole reason for this change is removing the very abuse you are complaining you lost. Current 0.7 is worlds better than 0.6.
(0005485)
OG17 (reporter)
2010-06-09 02:35

What?
(0005517)
Kyrris (reporter)
2010-06-10 21:12

Kilo, he's not talking about that. A straight reading of what OG said doesn't even suggest that he -knows- you could fire beyond LoS.

And square LoS is still a superior, simpler fix for every single problem except trivial aesthetics.
(0005518)
MrMisterMonkey (reporter)
2010-06-10 21:37

As for aesthetics, I may have strange taste, but I think a square would be much prettier than the current circle approximation.
(0005522)
OG17 (reporter)
2010-06-10 23:09
edited on: 2010-06-10 23:14

Kyrris, if that's what he meant (if he was even replying to me), I'm aware of it, though it's not something I particularly care about - reasonable behavior is to have ranges originate flatly from the character, and as far as I'm concerned that's basically the end of it. The old "extra" diagonal range quirk is vastly preferable to the new unignorably oscillating ranges, which, as Casmith notes, manage to be more abusable in typical play. Also, the underlying reasoning is ridiculous - you can't just introduce smaller diagonal ranges without making diagonal distances universally "larger" to complete the picture, and as doing that well is basically impossible, all this change does is replace the old benign mixed-up system with a new mechanically broken mixed-up system.

One could argue that along with ranges, vision should also originate from the character, making everything fall into line cleanly and easily, and I would say "yeah."

(0005527)
Luca (reporter)
2010-06-11 04:18

Has anybody though of removing the current 8 square sight limit, and allowing to see monsters arbitrarily far, as long as there are no obstacles in between?

The shooting range could then be a square, without much of the visual ugliness otherwise present.

It's a major change of course and many level layouts would be significantly affected and need further changes (e.g. introducing smoke, or keeping the current system for those).
(0005539)
user308
2010-06-11 17:31

Is stealth a function of how close you are to a monster, or is there an equal chance of being noticed no matter where you are in the LOS? If so, unlimited LOS would be a real nerf for stabbers.

I agree with OG17 - ranges and LOS should use the same system. If you can see it, you can zap it. Whether that's sqare or circular is not as important as the consistency. However, melee combat is handled as a square, so for total consistency I think a square field should be used.

How about weapons of reaching? Do they now have a shorter range diagonally?

I think weapons of reaching should have a range of 3 instead of 2 anyway - or maybe I just don't fully grasp the benefit of a reach of one square extra. You get one free hit with your weapon instead of the darts you would use otherwise. I've never ever used a weapon of reaching as my main weapon. Perhaps someone can educate me on their true value.
(0005540)
OG17 (reporter)
2010-06-11 18:09

Reaching weapons "reach" one square diagonally now, yes. Isn't that fantastic? At least it's consistent with all the other ranged attacks!

As an aside, reaching is nice if there's something like a plant, fodder monster, or companion between you and the target - it's not that great if it's just running at you.

As another aside, I'm not sure if you're saying I'm saying what I'm saying - my problem here is how crystal spear sometimes has a range of four, sometimes three, and sometimes two, and how creatures can move in and out of range without actually changing the distance between themselves and the player. Range and LOS do use the same system now, but it's only half a system and the missing half is unworkable (and would be inferior to square LOS regardless).
(0005541)
Nobody (reporter)
2010-06-11 18:12

My opinion can be found at https://crawl.develz.org/mantis/view.php?id=1642#c5256 [^] , if anyone's interested in it.
(0005546)
user308
2010-06-11 19:32

@OG17 - I haven't really played with 0.7, so I probably misunderstood. But the basic agreement is that there should be consistency in how ranges, LOS, melee, reaching, and movement (stealth) are handled.

I was going to say it might be a problem if diagonal melee takes sqrt(2) time (which I think would be required for true consistency) because this would provide a cheat whereby a player could get out of range of a monster, but on reflection I don't think so. If I step to the side, that should put me that much farther (sqrt(2)) from the monster. I can still be hit, but it's a bit more of a reach and the attack takes longer. If the monster takes that shot instead of keeping step with me, then that should buy me about half a turn to get out of range on the next move.

Considering how tough it is to survive sometimes, this could really help. It's really tedious trying to get space between yourself and a monster, though I guess the same thing can be done by switching weapons or some other quick action, but this seems less logical than simply trying to step away.
Similarly, if for some crazy reason I take the time to step diagonally in front of a monster (eg. from south of the monster to west of the monster), that should give the monster that much better of an opportunity to hit me.

This approach could make the game a bit more survivable for inexperienced players without really distorting game balance.

All that being said, I think a hex map would really be the most elegant (and most work) solution, but it would obviously be tough to implement in ASCII (can you shift alternate lines of text output by 50% of a space?). Definitely something to consider for long-term development or an eventual fork, I think.
(0005562)
TGW (reporter)
2010-06-12 02:40

Increasing the cost of diagonal movements would require massive rebalancing because it would allow the player to outrun anything which is the same speed by taking one or two attacks. Just step diagonally around them and let them use their extra time to move-attack, then run away.
(0005563)
Luca (reporter)
2010-06-12 03:31

There is a fork of Stone Soup 0.3 with an hex grid called "hexcrawl" at http://mbays.freeshell.org/hexcrawl/ [^] (with picture!).

Square-grid vaults are converted so that rectangles become parallelograms, which works technically, but is in my opinion quite bad visually.
(0005565)
Luca (reporter)
2010-06-12 03:46

Another option: increase the LOS range to 11/12, so that the 17x17 targeting square is fully enclosed by it.

Assuming everything in sight wants to be kept on the screen, this will make an 80x24 terminal to small to play without compromises, and the minimum resolution for 32x32 tiles would also increase from the current 800x600 to 1024x768 or 1280x800.
(0005579)
b0rsuk (updater)
2010-06-12 21:19

Hex grid is *awful* for representing indoor architecture. It is anything but elegant for that. It works for outdoors.

A good approximation of diagonal distance with small ints:
orthogonal costs 5, diagonal costs 7.

7/5 is 1.4, which is close enough to not be noticable difference from real sqrt(2).

We are going to get artifacts either way. However, if I were to choose, I would abandon aesthetics and go with square LOS.
(0005581)
user308
2010-06-12 22:31
edited on: 2010-06-12 22:42

Hex grid is fine for indoor architecture. You just have to see the dungeon as being formed by natural or magical processes, or by an ancient magical race, that liked 60 degree corners more than 90 degree corners. Just don't try to emulate 90 degree corners with it, that does get ugly.

- One advantage is that you could have narrow corridors in six directions instead of four.
- it would be perfect (obviously) for the Hive, and fit very naturally with the Lair, Swamp, Snake Pit and Shoals, and Orcish Mines (not that I think it would be incompatible with the main dungeon either, which could be seen as being based on natural caves. (In fact, in digging out underground spaces, you get the most space for the least work by digging round spaces)
- The hex-like layout of QWERTY keyboards would lend itself to keyboard navigation nicely. (I'm often on a laptop or compact keyboard without a keypad)

One major gameplay difference would be that you could only be surrounded by 6 monsters, not eight. That would be a balance issue to address (though good players will avoid being totally surrounded, and good characters can deal with it anyway.)
But I realize it would be major change to the game and thus not likely to happen anytime soon. Given that, I agree that square LOS is the best option.

(0005583)
casmith789 (reporter)
2010-06-12 22:46

A hex game would be a completely different game. Not necessarily a bad one, but that is a seriously major change :) I wouldn't like to see that.

Atm it isn't too bad in 0.7 if you play with it, it just doesn't make complete sense, and the one in 0.6 makes more sense imo.
(0005584)
Luca (reporter)
2010-06-12 22:51

Yet another idea: restore 0.6 square range and circular LOS but prevent shooting out of LOS.

Thus, low-range conjurations will have a square target area, while longer range ones will have a "rounded square" one.
(0005585)
TGW (reporter)
2010-06-13 00:13

Cool, but stealth and conjurations are still broken due to inconsistent range.
(0005590)
Luca (reporter)
2010-06-13 01:58
edited on: 2010-06-13 01:59

Yes, the square LOS seems the best option.

Visibility corners could be rounded and smoothed graphically to improve aesthetics (think of the fog of war in a Civilization 3/4 game, e.g. http://i661.photobucket.com/albums/uu336/MechPlasma/Album2/VsMond047.jpg [^] and http://sunrisecodeworks.com/civ4screenshot20.jpg [^] )

(0005812)
OG17 (reporter)
2010-06-21 19:49

So is everyone okay with this now, or what? Making staggering gameplay sacrifices for the aesthetics of an ascii/tiles game is more than a little perverse, as is using an openly inconsistent system for fundamental game geometry, and I'd really prefer that this not become a perceived non-issue like double actions ostensibly did for .6.
(0005813)
KiloByte (manager)
2010-06-21 20:08

OG17: Yeah, that's exactly why we won't do staggering gameplay sacrifices for fixing a single corner case that breaks most of player assumptions.

Square LOS would mean you can just rip out the cardinal direction keys out of your keyboard and be no worse off. For example, compared to circular LOS, exploration gives you twice as big advantage for using diagonals in square LOS. Travel is, barring features of size 1, never worse when using bishop's moves. Throwing/etc lets you toss things what appears to be farther, and so on.

Circular LOS reduces the benefits from using diagonals. To get rid of them altogether, we would need to make moves take longer, but even then, 0.7 is fair in more cases than 0.6.
(0005815)
OG17 (reporter)
2010-06-21 22:58
edited on: 2010-06-21 22:59

Square LOS would make diagonal movements reveal more of the map in a turn, yes (not that this is much of a factor outside of wide-open areas), but LOS in combat should have far more weight than LOS in exploration. Every square-LOS in-combat throwing/etc ramification applies equally to enemies - things like stealth detection mechanics could be adjusted if they prove to be problematic, but overall, this isn't to a player's advantage, and would only serve to make all angles of attack equally attractive, instead of pushing a cardinal bias (or diagonal bias, if the character prefers closing to melee range).

Regardless, even if what you said was to be accepted entirely, there'd still be no reason for attack ranges themselves to be additionally uniquely truncated by certain angles of fire. It's artificial, unintuitive, trivially abusable, and does nothing but make firing from cardinal directions even more attractive (or, again, make approaching from diagonals even more attractive). And as this is effectively the only change from .6, I have no idea what you're saying regarding fairness. Even the old shift-firing-outside-of-LOS was only really exploitable by aoe attacks (and is indeed already fixed unintrusively); the current system is unsuitable for every spell and ability that has a limited range. Using .6's system with .7's limiting-range-to-LOS shift-click fix would be far better in every aspect than what's in .7 now, which is literally game-breaking.

(0005817)
Kate (developer)
2010-06-21 23:36

The circular range makes Sandblast with a wielded stone absurdly annoying, incidentally (it only has a range of 1 diagonally now).
(0005819)
Nobody (reporter)
2010-06-22 08:56
edited on: 2010-06-22 08:59

The sudden drop in the usefulness of ranged spells bothers me as well. I've made a table (attached as a picture, because I don't know how to do monospacing) summarizing the difference in spell ranges between the previous system and the current one. Spells with a range of 8 can still be targetted at any point within the player's LoS, but other such spells that extend past melee range lose a potentially significant number of tiles. (Average loss: 19.5) The spells hit hardest by the new targetting system are those with a range of 6, mainly the "Bolt of _" spells. These lose a total of 44 tiles of coverage, and mid-level conjuration specialists are likely to feel a noticeable dip in power compared to previous versions.

The changes have also made it so that the altered spells reach much further orthogonally than diagonally. Which is indeed different from previous versions, but in my opinion it doesn't seem particularly desirable.

(0005820)
KiloByte (manager)
2010-06-22 09:54

Hmm... if you people are got so used to ranged being longer when casting on diagonal, perhaps we can extend ranges all around.

Having them halfway between the current values and those *1.41 would simulate someone who casts at diagonal half of the time -- while making it fair in both cases.
(0005821)
KiloByte (manager)
2010-06-22 09:57

For sandblast in particular, we can set the range to sqrt(8).
(0005831)
OG17 (reporter)
2010-06-22 18:47

Kilobyte: ranges were never longer on diagonals; they were outright shorter, as diagonal LOS itself is significantly shorter (barring the shift-firing exploit). Now they're doubly shorter. There's absolutely no advantage in tacking on a piecemeal root system, this notion of "fairness" is still bizarre, and there's no need to touch base ranges, as they're fine when they're not being chopped up by diagonals and it wouldn't fix anything anyway. Simply put, spells should reach the edge of LOS, or if limited-range, reach that range regardless of angle. You're reinventing the wheel unnecessarily, and the thing isn't rolling.
(0005834)
OG17 (reporter)
2010-06-22 19:46
edited on: 2010-06-22 20:45

Maybe this isn't obvious, I don't know, but I get how .6's fixed limited-range spells "reward" approaching on a diagonal, as there's less or no dead space between when a monster comes onscreen and when it comes into range, sure. So .7 gives similar amounts of dead space at all angles. Great.

There's two details being overlooked here - namely, the existence of melee monsters, and the fact that crawl isn't played on a football field. .7 may be "fair" regarding dead space, but attacking from diagonals still somehow manages to be much less desirable, as when something actually gets into your attack range, it needs to take notably fewer diagonal steps before it starts pounding on you. What's more, the game has walls. Lots of walls. Even if your primary attack is limited-range - and therefore fair at any angle! - you're going to have any number of full-screen options, and again, certain monsters like to hit you. So diagonals again mean that you have less turns to use things like boundless attacks and disabling or buffing abilities, or to simply retreat to somewhere where dead space isn't a concern. This was also the case in .6, incidentally, but it's only amplified by .7's increased vulnerability of diagonals.

In effect, all .7 does is shift things from partly rewarding diagonals to fully rewarding cardinal directions (reversed for the melee-oriented player), and it throws a migraine in on top of it. I'm not about to claim that square LOS doesn't look awfully good here, but as you don't seem to like it and no one else is talking, we might as well make the best of what we have to work with! (That's .6.)

(0005836)
user308
2010-06-22 20:34

For what it's worth, I've been thinking through this whole discussion that square LOS / square ranges / square everything is the way to go. Is there a gameplay issue with that, or is it just aesthetics?

For range 1 / melee combat, as well as for travel, everything works on a square basis. It seems to be a Bad Idea to use multiple physics models / ways of abstracting physical distances. Any mixing will necessarily introduce artifacts and inconsistencies that a) require counterintuitive explanations to players and b) create loopholes / imbalances that punish or can be exploited.

It's an ASCII / tile game that is granular at the 1x1 tile level. I think it's a mistake to try to emulate a 3d world with Euclidian geometry. Just accept the fact that it's an orthogonal, digital geometry, not a real-world, analog geometry.

KISS: Keep It Simple, Silly. This is not some fancy game like Castle Wolfenstein.

I know that some developer probably feels justly proud of their clever bit of code for emulating euclidean geometry, but I think it's a mistake to hang on to that.
(0005837)
user308
2010-06-22 20:55

Just to rehash, it seems the only issues with square LOS / square ranges are:
1. You could get away without using your cardinal direction keys
2. It allows you to hit things farther away on the diagonal

These are pretty insignificant issues:
1: The economy of exploring diagonally is something noone cares about, esp. compared to inconsistencies in spell ranges or the effectiveness of stealth. You need the cardinal direction keys for all kinds of reasons - efficiency of uncovering territory is never a factor in deciding where I move

2: This is only true if you insist on inappropriately trying to force real-world geometry to a highly abstracted, granular game. Roguelikes as a genre are defined by being highly abstracted and granular.

It sounds like the only position with consistent support is for the square LOS option. Everything else requires compromise of some kind. Just stick to one geometric model. This is game mechanics, not quantum mechanics, it shouldn't hurt your brain.
(0005839)
OG17 (reporter)
2010-06-22 21:16
edited on: 2010-06-22 21:19

It's really just that a diagonal step would reveal more unexplored squares than a cardinal step, as diagonal ranges that "appear to be farther" are indeed illusionary. If the current viewport was expanded to fill its corners, the distance from the player to every point on the edge would be identical (ie, a square). e: because this is a grid-based game (do I even need to say this)

What's funny is that cardinal exploration would actually be the safer option under square LOS, as diagonal exploration would risk alerting that many more enemies at once. Granted, that's ignoring walls, but I imagine it's fitting, as we're certainly ignoring monsters!

(0005849)
user308
2010-06-22 23:04

Good point about the alerting of more monsters. On the whole though I think navigation / exploration issues are really secondary to melee / ranged combat mechanics.

I just don't think you can achieve realism, simplicity as well as consistency. Given the highly abstracted nature of roguelikes, realism shouldn't be the primary consideration, so the simplicity and consistency of the square seems to me without question the best way to go.
(0005911)
due (developer)
2010-06-26 04:09

There seems to be no solid proposal here, should go to Wiki.

- Issue History
Date Modified Username Field Change
2010-06-09 00:47 casmith789 New Issue
2010-06-09 00:54 MrMisterMonkey Note Added: 0005479
2010-06-09 01:02 Luca Note Added: 0005480
2010-06-09 01:02 OG17 Note Added: 0005481
2010-06-09 01:03 OG17 Note Edited: 0005481
2010-06-09 02:28 KiloByte Note Added: 0005484
2010-06-09 02:35 OG17 Note Added: 0005485
2010-06-10 21:12 Kyrris Note Added: 0005517
2010-06-10 21:37 MrMisterMonkey Note Added: 0005518
2010-06-10 22:40 user308 Note Added: 0005519
2010-06-10 23:09 OG17 Note Added: 0005522
2010-06-10 23:11 OG17 Note Edited: 0005522
2010-06-10 23:14 OG17 Note Edited: 0005522
2010-06-11 04:18 Luca Note Added: 0005527
2010-06-11 17:31 user308 Note Added: 0005539
2010-06-11 18:09 OG17 Note Added: 0005540
2010-06-11 18:12 Nobody Note Added: 0005541
2010-06-11 19:32 user308 Note Added: 0005546
2010-06-12 02:40 TGW Note Added: 0005562
2010-06-12 03:31 Luca Note Added: 0005563
2010-06-12 03:46 Luca Note Added: 0005565
2010-06-12 21:19 b0rsuk Note Added: 0005579
2010-06-12 22:31 user308 Note Added: 0005581
2010-06-12 22:38 user308 Note Added: 0005582
2010-06-12 22:42 user308 Note Edited: 0005581
2010-06-12 22:42 user308 Note Deleted: 0005582
2010-06-12 22:43 user308 Note Deleted: 0005519
2010-06-12 22:46 casmith789 Note Added: 0005583
2010-06-12 22:51 Luca Note Added: 0005584
2010-06-13 00:13 TGW Note Added: 0005585
2010-06-13 01:58 Luca Note Added: 0005590
2010-06-13 01:59 Luca Note Edited: 0005590
2010-06-13 01:59 Luca Note Edited: 0005590
2010-06-21 19:49 OG17 Note Added: 0005812
2010-06-21 20:08 KiloByte Note Added: 0005813
2010-06-21 22:58 OG17 Note Added: 0005815
2010-06-21 22:59 OG17 Note Edited: 0005815
2010-06-21 23:36 Kate Note Added: 0005817
2010-06-22 08:56 Nobody Note Added: 0005819
2010-06-22 08:57 Nobody File Added: table.png
2010-06-22 08:59 Nobody Note Edited: 0005819
2010-06-22 09:54 KiloByte Note Added: 0005820
2010-06-22 09:57 KiloByte Note Added: 0005821
2010-06-22 18:47 OG17 Note Added: 0005831
2010-06-22 19:46 OG17 Note Added: 0005834
2010-06-22 20:34 user308 Note Added: 0005836
2010-06-22 20:45 OG17 Note Edited: 0005834
2010-06-22 20:55 user308 Note Added: 0005837
2010-06-22 21:16 OG17 Note Added: 0005839
2010-06-22 21:19 OG17 Note Edited: 0005839
2010-06-22 23:04 user308 Note Added: 0005849
2010-06-26 04:09 due Note Added: 0005911
2010-06-26 04:09 due Assigned To => due
2010-06-26 04:09 due Status new => closed
2010-06-26 04:09 due Resolution open => suspended
2010-06-26 04:09 due Fixed in Branch => 0.7 development branch


Mantis 1.1.8[^]
Copyright © 2000 - 2009 Mantis Group
Powered by Mantis Bugtracker