From: Marek V. <mvo...@ce...> - 2004-10-11 06:56:12
|
> Sorry, I realize this list is usually Czech only, but hopefully someone will > be able to read this. The list used to be private and has been opened to public quite recently. > Just thought I'd let you know that about a month ago I was searching > SourceForge for massively multiplayer middleware. I do this every few > months, because you never know what might pop up. Imagine my surprise when I > found Massiv, a project that's obviously been in development for several > years, with full documentation! > > I have taken a look at several pieces of massively multiplayer middleware, > including Quazal Eterna, Planeshift, Nevrax, and a few non massively > multiplayer networking libraries that implement distributed objects such as > ReplicaNet and ZoidCom. > > Quazal Eterna was never really a viable option cause it's very very > expensive, but I really like their architecture. Planeshift seems to send > XML based messages, and the overhead seemed pretty high. Nevrax was good, > but I originally thought the networking code was too tough to follow, and I > wasn't sure about whether they were going anywhere with their engine. Turns > out I was wrong because Ryzom looks amazing - but still, Massiv seems to > have a really nice architecture. This is nice to hear! > So... I started porting this thing to C#. Why C# you might ask? Because, > although I am a very experienced C++ programmer, within the last few months > I've started playing with Axiom, which is a 3D engine based on a popular > LGPL rendering engine called Ogre. Axiom seems to run on par with Ogre, and > that was very impressive. Since C# can be much easier to write tools in, I > decided to see if I could use C# for my game instead of C++. So, now I've > decided to see if I can port Massiv to C# as well. Well, I am no C# expert but I am aware of some of its features and I can tell that if Massiv was to be written in C#, some of its features would not have to be implemented because they are directly supported by the CLR runtime or they could be implemented differently. Support for introspection or garbage collection come to mind, for example (another question is how the Massiv semantics would fit to CLR). Also in C# you can tag class members by user defined attributes which could have been exploited to dump the need for describing classes in IDL. I do not know if the current architecture can easily be adopted to the CLR environment as it is been designed to exploit modern C++ features and to make the use of the middleware easier than using other (read no "C++ friendly") systems like CORBA. It is quite likely that some of the subsystems (properties, pointers) would have to be completely redesigned/rewritten in order to target the CLR. What is the intention of the port? If you are going to write a C# based middleware using the ideas taken from Massiv, then go ahead, but remember that we (6 members) were writing Massiv for almost 3 years and it was not an easy task. Anyway, good luck! I did not want to discourage you from the work on the port I only wanted to point at potential pitfalls. > So, I just wanted to let you know that I really agree with moving the > license to LGPL, since in my opinion it makes Massiv much more appealing to > a broader range of developers, and Massiv will benefit from it. OK. Since David Li seems to have been busy recently I will do all the changes. > If anyone wants to help with a C# port of Massiv, please let me know. I'm > currently half-way through the files under the "net" folder of core. To test if the port is ever possible please look at the sources in the property and pointer directories. These contain the most "advanced" parts of the core that heavily realy on the use of C++ templates. -- Markoid |