Hello again, David.
As I think you know, I’m the guy who wrote the Beginner’s Guide to Panda3D 1.6.2 for Packt Publishing.
I’m working on a game that I’m hoping to get finished by the end of January to help alleviate my horrible under-employment. The game is intended to be multiplayer, over the internet. I want to use the distributed networking system for it.
To do that, I need to know how to use the distributed networking system. Since I’m going to learn the thing anyway, I also intend to write up some documentation for it to put in the panda3D manual, and I intend for that documentation to be as complete as reasonably possible. If that means writing another book, I’ll write another book. Hopefully it won’t be necessary to go to that extreme. I also want to create a sample program to be distributed with Panda3D.
I’m sending you this message because I know I’m going to need your help to learn the system.
I sent you a couple messages about it a while back, and you sent me some links to examples, but I had abandoned the project I was working on at the time without digging into the examples. The project was for my personal use, and I realized that the payout wasn’t worth the effort it would require.
I looked into the examples earlier this morning, and I ran into some problems that generated new questions.
First, I looked into a thread you linked me to where a gentleman named Zanz was doing the same exploration I am now. I copied down his first working example and tried to run it, but issues arose. For your convenience I’ve uploaded the files for his example and some panda3D files from the 1.7.2 build that I think are related to the issues to my web space and I’ll provide links to it, so you can look at the files in another browser tab while you read about the issues.
links omitted from quotation
Okay, so the first time I tried to connect to a server with his example, I got an error stating that the myClientRepository class had no attribute named sendSetZoneMsg. Such a method doesn’t exist in his file, so I looked in the ClientRepository.py his class inherits from, and I didn’t find that method, or any similar methods, there either. I also didn’t find it in the ClientRepositoryBase.py that ClientRepository inherits from and couldn’t find anything relevant. I didn’t dig any deeper down in the ancestry since it didn’t seem likely I’d find what I was looking for (a method that could be doing what sendSetZoneMsg is supposed to do).
I commented out the line in Zanz’s file that called myClientRepository.sendSetZoneMsg(self.zone) and tried again. This time I got an error telling me that myClientRepository had no attribute named createWithRequired. At this point I became fairly certain that the ClientRepository or ClientRepositoryBase class has under gone some significant changes since Zanz’s example was created. I looked in ClientRepository.py again and I found a couple of methods that seem to be likely renames/rewrites/substitutes for the createWithRequired method, those being generateWithRequiredFields, generateWithRequiredOtherFields,
and generateWithRequiredOtherFieldsOwner. None of those take the correct number of arguments though.
That’s as far as I got with Zanz’s example.
I also tried your Tagger game. I downloaded the source using the link from the end of your forum post and ran two copies of the game. The first one I gave the option -s to start a server, the second I gave the option -p 192.168.1.65:4430 to try and connect to the server I was running on the same computer. I got the IP address from my OS and the port from the print out of the tagger game, which stated that it couldn’t connect to server at 127.0.0.0 port 4430. When I did this, the client program loaded up and I entered my street name, then it went to a gray screen that said “waiting for server” and sat there for 5 minutes or so before I closed it. I have no real idea what’s going on there.
I realize I’m getting long in the tooth here, and I apologize for that. I’d appreciate it if you could either help me get these examples working, or better yet, if you would be willing to help me get the distributed system working for my game. I’d happy to share my game’s source code at your request, if you’re up to helping on that.