
This is a mockup of what I will be creating, which is just a basic room with an avatar moving about.
I had actually done some basic designing before doing the mockup, which was a bad idea. The graphics that I have chosen behaved differently than I expected, specifically it is the walls being rendered on top of a tile. So basically I started designing before having a complete picture of the requirements ... naughty me. I should know better.
The way the map will be rendered is first are all tiles rendered, basically the floor. Then on top of the tiles, all items, avatars and walls are rendered.
My initial thoughts are that walls, items, avatars etc. are map objects that are placed on tiles. The map objects do not in any way refer to the internal state of a map tile, but are just an object located on a tile. An obvious example of an attribute for a tile would be if it is blocking or not, i.e. can an avatar pass through? But then again it may not be as simple. There are instances where a map object would manipulate the attribute of a tile being passable or not. This could be chest that does not allow, unless it is smashed. This could be solved having the tile knowing which objects are stacked on it, and these objects have state modifiers which the tile can query. I will be going back to the drawing board and work some more on the design.