First update for a while, been very busy.
Early last month I wrote a watchdog daemon for cyphesis that keeps a server running, initialises it and monitors it, to automate game server administration.
Ranges have now been implemented, which massively reduces the bandwidth used by each client in a game. Range is currently based on axis aligned square areas rather than circles as it really should be. The reason for this is primarily to maximise performance.
Cleaned up and optimised much of the cyphesis code. This together with changes to the Atlas protocol library means that server load is much lower than previously.
Wrote the collision detection code for cyphesis using AABB collision detection and prediction algorithms. Finally added in simple collision resolution so walking characters can no longer walk through each other.
Added MetaServer functionality to cyphesis, based on the WorldForge metaserver example code provided. All seems to work fine, but is as yet unsupported by any clients. This combined with the information that a client can now retrieve by sending a "get" operation directly after connection should mean that a client could offer a nice menu of all current running servers.
Currently working on making the handling of C++ base classes with python derived classes more generic so that more code can be moved into C++.