high level networking

Hello All!

I am hoping to get some update on the current state of the distributed networking components from David, Josh, or someone on here who knows what they are talking about…

I have been working on getting the sample chat sample program running from Panda version 1.05 with no success.

I have followed the tips listed in the following threads:

Bugs from “lem”:
discourse.panda3d.org/viewtopic.php?t=2843 – not fixed in my version of the souce (1.5.3)
discourse.panda3d.org/viewtopic.php?t=2844 – not fixed in my version of the source
discourse.panda3d.org/viewtopic.php?t=2846 – looks fixed in my version of the source

Unfortunately no one replied to “lem” on the status of the first two, so I tried with and without his suggested fixes… Still no results :smiley:

Adding “keyword p2p” in my dc files:
discourse.panda3d.org/viewtopic.php?t=1152

This seemed to get dcparse (now named p3dcparse) to read my files… I think my dc files are working because my program output now includes “DCFiles:: read of sample.dc”

Turning off SSL random seed generation:
discourse.panda3d.org/viewtopic.php?t=312

Seemed to have no effect…

I also found this pdf cs.princeton.edu/courses/arc … /panda.pdf that gives a brief overview of the Panda3d networking, but isn’t too helpful as far as implementation goes… It was helpful nonetheless in getting a more firm idea of the general process and capabilities of the distributed code.

The results of my efforts have lead me to various errors, the most common being:

  1. Client connects, runs the connectionSucces callback function
  2. Server says “Sending DOID range 1000001 1000000”
  3. Client says “distributed(warning): Could not send datagram.”
  4. Client sys “ClientRepositorywarning: Lost connection to game server”

To add to my confusion I also am seeing that some files have multiple versions, ie:

DistributedObjectGlobal
DistributedObjectGlobalAI
DistributedObjectGlobalUD
DistributedObject
DistributedObjectAI
DistributedObjectOV
DistributedObjectUD

Some of these are obviously made to be global while some aren’t, and I was able to glean from the in-code comments that the OV version was for “owner view,” but am having trouble sorting out the difference between normal, UD, and AI versions.

I see in the Panda3D CVS that drannali and others have been making patches to the distributed source as recently as two weeks ago so I am hoping that there is a revamp to the networking code underway!

I should also mention that I tried both doxygen and pydoc to get some automatic documentation working for Panda3D with no success, until I found pydoctor ( codespeak.net/~mwh/pydoctor/ ) which was written for Twisted Matrix auto-documentation, but worked great for Panda3D also!!! It does a good job of parsing out any comments for modules/classes/methods.

Hope everyone is having a fabulous start to their week… Many thanks in advance for any help you can give me in sorting this out or at least an update on what works, what doesn’t? :smiley:

I would love to help write an High-level networking how-to section for the manual, or at least put out a document describing how I got everything to work, that is, once I get it all working, so please give me a hand so that I can help others taking this path in the future!!

OK, here’s the situation.

Here in the Disney VR Studio, we designed the DistributedObject system for use with our MMO’s. Most of the client part of this system was released as part of Panda (this includes the dc system, the DistributedObject class, and ClientRepositoryBase.py). The server part of it, however, is part of our private server system, and has never been released to the public.

At some point (somewhere around Panda 1.0.5), CMU made an effort to release a server implementation; they put a student on the task, and the student came up with ClientRepository.py and ServerRepository.py. However, this CMU effort has not been maintained since, and this is why the chat sample application was removed from the distribution.

In the meantime, Disney has continued development on our own part of it; this is what you see with checkins by dranalli and others. Unfortunately, some of our changes have caused bugs in the CMU implementation, which shares a lot of our code (these are the kinds of bugs that lem was reporting, for instance).

In order to bring the CMU implementation up to snuff, it will require a dedicated individual to not only learn how the system is intended to work, and to repair the CMU implementation; but also be willing to continue to maintain the CMU implementation in the future to avoid this situation; and maybe to write some additional sample applications and manual pages to show others how it can be used.

Are you willing to be this individual?

As to learning the system’s design, you might find it helpful to check out the three videos on this very subject, which are available in the manual. They describe the system from Disney’s point of view, but I think this will be essential to understand how the system is intended to work.

David

WOW! I don’t know how I missed those videos after hunting and Googling like a madman for everything I could find on the DO system.

The videos were great and after watching them a few times I have a pretty good feel for the components of the OTP server and how it works. You have some very smart people there!

As to whether or not I am the dedicated individual who can bring the open source / CMU server up to speed with the OTP server, I am not yet sure… It definitely widens the scope of my project, but it is very interesting and I have been looking for an open source project to dump some time into :slight_smile:

I will give it my best shot over the next month and let you know what I come up with!

Thanks for the reply!
Zach

Hi Dude,

you disappeared and i was wondering if you got some progress on this topic, whether you released anything or not I’d be interested to hear it…

regards.

Hi Radu,
I regrettably did not get far with this project - I was working on it while unemployed, but found a job a few weeks after posting this.

Good luck to you!
Zach