I'm working on a text-based adventure game engine for my job. Actually it's being rewritten again due to bad design decisions (I was using an old BASIC program as guide). Also I'm writing it in Spanish.

What I did was to read about existing game engines (i.e: Aetheria) then created an UML and start coding. Actually, our UML-Class diagram is very different than Aetheria's one, but it was a good guide to know what we would find. Also, our engine will be sript guided using a custom language, but theoretically it should be possible to create a game in plain Object Pascal.

Our schema uses a grid-map, much like a tile-map, each cell is a room. You can stack maps to create floors. This way is easy to build maps.