How we made the line of sight algorithm
FAKE'S-COM » Devlog
The TIC-80 Fantasy Console is an awesome game making platform, but unfortunately we could not find a way to raycast in it, to check visibilty. We wanted to check whether the line of sight was obscured by map tiles or not, so we had to roll our own algorithm.
We came up with the following algorithm, written in pseudocode:
algorithm isClearLine(posFrom, posTo, mapData): // One of the exit conditions - if we're standing on it, we can definitely see it. if posFrom == posTo: return true eightClosest = getEightTilesAround(posFrom) // left out of here, not really related to the algorithm. closestTile = nil closestDist = +Infinity // Find the closest tile to the posTo position for tile in eightClosest: if distance(tile, posTo) < closestDist: closestDist = distance(tile, posTo) closestTile = til // Check if it's obsturcted if mapData[tile.x][tile.y].obstructed: return false else: // if the tile is not obstructed, repeat the check starting from it return isClearLine(tile, posTo, mapData)
Get FAKE'S-COM
Download NowName your own price
FAKE'S-COM
An XCOM clone written using the TIC-80 fantasy computer
Status | In development |
Author | Kozova1 |
Genre | Strategy |
Tags | Tactical, Turn-based, Turn-Based Combat, Turn-based Strategy |
Leave a comment
Log in with itch.io to leave a comment.