This gives me a large number of units of concurrency, while allowing the overwhelming majority of the code to be written sequentially since most of the complicated bits (combat etc) happen within a room so I don't have to think about concurrency at all for those. The only communication between processes is moving monster / character data from one room to another when those entities move around the map.