That is really helpful, the Sync objectsd looks quite comprehensive.

I think it should be possible to not force users to inherited from TSyncObject, does Free Pascal Support Interfaces on all platforms? If so that might be a good way around the problem, as objects that want to be sync'd just need to support the ISyncOBject interface.

So who would use this engine if it was based on Indy? I got the impression some people are in favour of writing this engine from scratch, which is a fair point but I for one am not a Networking expert so using Indy which has already tackled most of the platform specific issues seems to me like a good idea.

So where do we go from here....

I will attempt to draw up a class heirachy on top of Indy. For example a "TGameServer" for example will derive from TIdUDPServer etc. Then we can split the work up into well defined packages and those of you who want to help out will work on a package (which will probably contain 1 or 2 classes)

I will also try and think of a good name for this "project"