Hi, I decided to add walls to tile based movement. These probably would be more occasional as they wouldn't form typical solid tiles but thin walls and doors between tiles. See image below. If a tile needs a wall and it's a wall with a door, in addition to neighbors (NESW directions) I have an array of doors in each Tile data cell: Tiledata neighbors = new Tiledata; Door doors = new Door; Then I have a bunch of ifs to decide if there's a wall or block in move direction. Finally I check if it has a open door. Only if the direction is not blocked, I allow transition from tile to tile. My questions Anyone have idea how old school dungeon crawlers and some other types of games handled these? I bet these didn't use OOP style. Like here I've got a Tile cell, which knows it's neighbor cell tiles and each cell has a list of walls in NESW directions around it. I haven't found any articles on this topic, but I remember some games that used this kind of tile movement. I was considering also some sort of tile-wall-tile type structure bit like in Pac-Man, but I haven't quite got it right in my head yet. So I got it working but it feels clumsy and ugly. I feel there must be cleaner way to do this.