I'm now 1 hour 50 minutes in to the build. I'm really keeping track of those minutes as time seems to fly by while programming.
I've got a clear idea in my head of what a level will consist of now so I've started programming the fundamentals needed.
I have created a Tile and Tile Group Class. The Tile Group stores all the possible types of Tile so that there'll only ever be one instance of an object. The Tile Group maintains a list of loaded and available tiles and includes a handy function to get the underlying tile.
I have also started work on the Level Class. Levels are initialised from Level files which are currently just simple graphics with different colours representing different tiles. The File is parsed and the appropriate Level Data is constructed using the Tiles in the Tile Group. To start with a single Level Object will be enough but later I can add a Level Manager to load levels and add state information to the individual Levels for revisiting them.
I'm going to throw together a simple rendering function that will look at a level and draw it's layout. Dodgy camera angles and bad textures are to be expected but this will let me get a good idea of how it's going to come together. After I see it all working I'll start work on the base construct to see how everything will tie together neatly.