Ich arbeite an einem Roguelike und habe dafür einen FoV-Algorithmus (Ray Tracing / Casting Field-of-View) erstellt, der darin besteht, Bresenham-Linien zu jedem Punkt in einem durchgezogenen Kreis zu zeichnen. Es ist artefaktfrei (und ziemlich effizient), aber es fehlt eine wichtige Anforderung von mir: Symmetrie (wenn Sie ein Monster sehen können, muss es Sie auch sehen können).
Hier ist ein Beispiel für das nicht symmetrische Verhalten meines Codes. Im linken Bild stehe ich in einer Ecke (rote 'X'-Blöcke = Wand). Ich kann die oberen rechten Kacheln sehen. Wenn ich jedoch zu einer dieser Kacheln wechsle (rechtes Bild), kann ich die Kachel, von der ich stamme, nicht mehr sehen.
Ich glaube, ich bin vielleicht auf der Suche nach einer Form des zulässigen Sichtfelds, aber nur, weil der Artikel im Roguebasin vorschlug, Symmetrie zuzulassen. Gibt es alternative Mittel, um Symmetrie zu erhalten?