Angband Forums (http://angband.oook.cz/forum/index.php)
-   Vanilla (http://angband.oook.cz/forum/forumdisplay.php?f=3)
-   -   Targetting and LOS discussion wiki page (http://angband.oook.cz/forum/showthread.php?t=2046)

 d_m June 25, 2009 22:18

Quote:
 Originally Posted by RogerN (Post 21189) The project_path() algorithm could be rewritten to treat both walls and monsters as diamonds instead of squares. In this case, then neither y nor o will block the arrow. In fact, even if both of them were present at the same time the arrow could still squeeze between them... but that could be handled by a special case since it's probably not desired behavior.
That seems reasonable. I worry that packs of novice rangers will become way more deadly if they can easily shoot around each other, but maybe that's ok.

Quote:
 Originally Posted by RogerN (Post 21189) I don't like the idea of having a 50% chance of one of them blocking the arrow. But if both o and y are present, you could randomly choose which one gets hit.
At that point I think having a determinstic order for which gets hit is better (e.g. hit "o" if present, then hit "y" if present, then hit target).

Quote:
 Originally Posted by RogerN (Post 21189) I think it's important to ensure the projection paths are symmetrical. If o or y is blocking for @ then it should also be blocking for p.
Agreed.

 takkaria June 25, 2009 22:23

Quote:
 Originally Posted by d_m (Post 21191) That seems reasonable. I worry that packs of novice rangers will become way more deadly if they can easily shoot around each other, but maybe that's ok.
If we're looking at a different system for V, then I would say you don't want that kind of behaviour changing. The idea is to find a system that fixes the current problems without widely impacting on gameplay where the system wasn't previously suboptimal.

 d_m June 25, 2009 22:28

Quote:
 Originally Posted by takkaria (Post 21192) If we're looking at a different system for V, then I would say you don't want that kind of behaviour changing. The idea is to find a system that fixes the current problems without widely impacting on gameplay where the system wasn't previously suboptimal.
I think that's a good metric to use. It helps to get your perspective on this.

 Pete Mack June 26, 2009 07:28

Here's a summary of what I understand from this discussion, along with some of my preferences.

I will assume that walls are convex hulls around diamond-shaped wall grids--it makes more sense than anything else.

Definitions:
LOS(p1, p2) line from point p1 to point p2 misses (or is tangent to) any intervening wall diamonds.
T(a, b) grid b is targetable from grid a. (Targeting Line of Sight TLOS)
V(a, b) grid b is visible from grid a. (Visual Line of Sight VLOS)
C(a) center point of grid a

These are my desiderata:
1. Target symmetry
1a. assuming a is not a wall and b is not a wall.
T(a, b) == T(b, a)
1b. For ghosts in the wall, ghost is treated as in an empty square for T(G,@), but is treated as a wall block for T(@, G)

2. LOS symmetry
V(a, b) == V(b, a)
3. Dominance of V over T. This guarantees VLOS for reverse T(G,@)
T(a, b) => V(a, b)
4. Unpermissive TLOS (I lean towards 4a)
4a By center:
LOS(C(a), C(b)) <==> T(a, b) [ <==> T(b, a) ]
4b Existential:
p1 a p2 b LOS(p1, p2) <==> T(a, b)
4c. Existential2:
p1 a, p2 b LOS(p1, p2) <==> T(a, b)
5. Permissive VLOS. (I lean towards 5a)
5a. By center
LOS(C(a), p2 b) | LOS(C(b), p1 a) <==> V(a, b)
5b. Existential:
p1 a, p2 b LOS(p1, p2) <==> V(a, b)
Am I missing anything in this? In this case, a picture may be worth a thousand words, but a little math is worth a thousand pictures. (You may conclude what you will by transitivity :D )

EDIT: definitions improved for clarity.
... and completeness, and correctness. (5b was badly wrong. 4c was missing.)

 d_m June 26, 2009 13:41

I will have to start copy-pasting that post to get the set notation ;)

So one of your implied desiderata is that set the set of visible squares is a proper superset of the set of targetable squares, right (since it follows from 4 and 5)? Where does that rank? In other words, is that property more important than the particulars of 4 and 5, or less so?

 PaulBlay June 26, 2009 13:57

Quote:
 Originally Posted by Pete Mack (Post 21202) Here's a summary of what I understand from this discussion, along with some of my preferences.
You use VLOS once (Visual Line-of-Sight ?). Any difference to the LOS definition at the start of your post?

I'm going to agree with you on 1, 1a and 1b (tweaking on the 1b situation would be for another thread another day).

Agree on 2.

Is 3. defined the right way around?

TLOS (True Line of Sight ?) isn't defined either.

... 考え中 ...

 Pete Mack June 26, 2009 16:16

Quote:
 Originally Posted by d_m (Post 21210) I will have to start copy-pasting that post to get the set notation ;)
Get them from the source.

Quote:
 So one of your implied desiderata is that set the set of visible squares is a proper superset of the set of targetable squares, right (since it follows from 4 and 5)? Where does that rank? In other words, is that property more important than the particulars of 4 and 5, or less so?
More important. 4(a-b) and 5(a-b) are particular models that seem to have nice properties, and have already been mentioned in these threads.

Paul writes
Quote:
 You use VLOS once (Visual Line-of-Sight ?). Any difference to the LOS definition at the start of your post?
Yes, VLOS is visual line of sight. LOS(p1, p2) means that there's an unobstructed (by diamond-shaped walls) line between p1 and p2. VLOS and TLOS (targeting LOS) are properties of grids, not points.

Quote:
 Is 3. defined the right way around?
Yes, Targeting implies visible.

Quote:
 I'm going to agree with you on 1, 1a and 1b (tweaking on the 1b situation would be for another thread another day).
1b is a corollary ofhttp://angband.oook.cz/forum/images/icons/icon13.gif a reasonable model forhttp://angband.oook.cz/forum/images/icons/icon14.gif 1a, 2 and 3. I added it for what I thought was clarity :o . Also, sorry about changing notation (T->TLOS, V->VLOS) midstream. I will fix my original post.

 Pete Mack June 26, 2009 16:46

Quote:
 Originally Posted by PaulBlay (Post 21211) TLOS (True Line of Sight ?) isn't defined either.
By the way, I don't know what true line of sight means, or even if it's a meaningful concept for grids. Maybe 5b?

 PowerDiver June 26, 2009 18:42

Quote:
 Originally Posted by aeneas (Post 21181) I'm still trying to figure out why it should be changed. But I agree that if it is changed it should be changed so that you can target anything you can see. This still poses problems, when you have ESP. Anyway, I looked over my recent posts with the help of a friend and came to the conclusion that a few of them were not as civil as they should have been. I happen to be missing the part of my personality that cares about civility. So I apologize if you found my earlier posts overly rude. I don't understand that, but I'm willing to take it on faith.
Why to change? "It breathes, you die." I find it incredibly irritating to die to a ranged attack from a monster that is within my light radius but is not visible. I find it very irritating to have a death drake in a wall breathe on me but I cannot target it in return. I believe you should support pure spellcasters. I think if a passwall monster can melee an adjacent spellcaster, the spellcaster ought to be able to target it without having to cast stone-to-mud first. I consider each of these to be a much much bigger deal than how you model pillars.

We need a highlighting method anyway for the situation where you fire a launcher. In 3.1 there are visible monsters that are technically targetable, but are out of firing range. Solving that properly should be extendable to ESP.

I've changed my mind again. You've convinced me that a top priority should be that the display should make LOS totally obvious. I now think my original proposal is best, because everything can be displayed obviously with a properly designed font. I just need to add the restriction that dungeon generation does not ever produce an unattached wall tile.

Draw segments between centers of wall tiles that are adjacent horizontally or vertically, and LOS between tiles is interrupted if any such segment intersects the line from the center of one tile to the center of the other. That's the whole model. It allows for walls of width 0, such as the separation of the moat from the interior of a pit, so unfortunately I cannot predict approval, but maybe I'll present a decent case. That intersection problem has been extremely well studied, so efficient implementation is not an issue. To describe everything with proper pictures will have to wait until next week.

Stone to mud will occasionally have to destroy multiple wall symbols instead of 1, but that doesn't seem like a dealbreaker, and in my model it should be interpreted to destroy a 20'x20' area in the center of 3x3 10'x10' tiles so it might even be consistent with common sense except for one special case involving a door.

I guess my radius-0 obstructing pillars can only appeal to a select few. I should have known anything I thought was really cool would be a mistake.

As to your apology, nothing to apologize for, to me anyway. If anything, I am flattered to be called a revolutionary.

 Marble Dice June 26, 2009 20:26

Eddie, you talkin' about something like this?

Code:

```##║.║#####║.║######  ##║.║#####║.║######  ##║.║#####║.║######  ##║.║#####║.║###### ##║.║#####║.║######  ##║.║#####║.║######  ##║.║#####║.║######  ##║.║#####║.║###### ##║.║#╔═══╝+╚═══╗##  ##║.║#╔═══╝+╚═══╗##  ##║.║#╔═══╝+╚═══╗##  ##║.║#╔═══╝+╚═══╗## ##║.║#║.........║##  ##║.║╔╝.........║##  ##║.║╔╝.........║##  ##║.╚═╝.........║## ══╝.╚═╝.........║##  ══╝.╚╝..........║##  ══╝.╚╝..........╚╗#  ══╝.............╚╗# ......@.........║##  ......@.........║##  ...............@.║#  ......@..........║# ══════╗.........║##  ══════╗.........║##  ══════╗.........╔╝#  ══════╗.........╔╝# ######║.........║##  ######║.........║##  ######║.........║##  ######║.........║## ######╚═════════╝##  ######╚═════════╝##  ######╚═════════╝##  ######╚═════════╝## ###################  ###################  ###################  ################### ###################  ###################  ###################  ################### #╔═══════════════╗#  #╔═══════════════╗#  #╔═══════════════╗#  #╔═══════════════╗# #║...............║#  #║...............║#  #║...............║#  #║...............║# #║.╔═══════════╗.║#  #║.╔═══════════╗.║#  #║.╔═══════════╗.║#  #║.╔═══════════╗.║# ═╝.║...........║.║#  ═╝.╨...........║.║#  ═╝.╨...........║.║#  ═╝.╨...........║.║# .@.║...........+.║#  ..@............+.║#  ...............+.║#  ...............+.║# ═╗.║...........║.║#  ═╗.╥...........║.║#  ═╗.╥.@.........║.║#  ═╗.;@..........║.║# #║.╚═══════════╝.║#  #║.╚═══════════╝.║#  #║.╚╡.╞════════╝.║#  #║..;.╞════════╝.║# #║...............║#  #║...............║#  #║...............║#  #║...............║# #╚═══════════════╝#  #╚═══════════════╝#  #╚═══════════════╝#  #╚═══════════════╝# ###################  ###################  ###################  ###################```
This is probably as good as you can get with the standard extended ASCII, as it lacks solid corner pieces to go along with these: █ ▄ ▌ ▐ ▀ Dwarf Fortress uses similar graphics for smooth walls.

Do you no longer feel that DFOV would make LOS very obvious, especially with the highlighting feedback on visible tiles? I assume targeting in DFOV would use the same algorithm as visibility, except including monsters for obstruction. Combined with a targetting UI that considered range and absorption from monsters when accepting targets, I have trouble imagining how anyone could surprise themselves.

All times are GMT +1. The time now is 07:28.