A concept I'm trying to wrap my head around is the idea of not showing enemies if they are behind a wall or too far from the player or have some kind of hide attribute.

So for the walls part of my idea I was thinking to use a special collision tile but I don't know how to implement those (though I've seen some people using custom collision tiles for water or terrain) I'd love to know how to do that..

For enemies too far from the player or stealthy enemies is there a simple toggle that isn't pos.x/pos.y that will render the enemy unseen or do I have to make my own attribute.