Games::Rezrov is an Perl implementation of the
Infocom gaming engine. You might check that out.
Again, the distributed, decoupled nature of your
problem seems like a natural application for POE.
In fact, if you use Tk before you
use POE, POE will substitute it's event loop
for Tk's.