[vworld-tech] Modern MUD server design

Jim Purbrick Jpurbrick at climax.co.uk
Fri Feb 20 02:17:25 PST 2004

> And thinking further (bear with me), what is specifically 
> about C++ that is undesirable?  

In my experience the lack of serialization and reflection is the big kicker.
You end up having to use IDL to generate code to make objects network aware,
of you have to invent reflection for C++, which we've done, but you then end
up not using C++, but C++ with reflection. 

The other thing I like about Python is the ability to stop it executing and
restart it, although I've not looked at this in detail. In C++ your options
are either to go very multithreaded, which is a world of pain, or do a
horrible request/response dance whenever you want to asynchronous stuff
without blocking the main loop. 

I agree with you about typing and using the compiler to catch errors, but in
my experience you have to do a load of type conversions anyway: objects have
to be created from the network, managed by the framework as high level
objects and then downcast to concrete objects for interactions. 

Maybe Java is a nice middle ground as it provides strong typing and language
level downcasting as well as providing serialization and reflection.

More information about the vworld-tech mailing list