Re: [Opentnl-general] Opentnl-general Digest, Vol 5, Issue 1
Brought to you by:
mark_frohnmayer,
s_alanet
From: Ben G. <be...@ga...> - 2008-03-11 23:05:05
|
Hey Jochen, I tried to recreate your scenario but was unable to experience any abnormal behavior under the TNLTest app. Specifically, I performed these steps: Update the GhostConstants enum in tnlGhostConnection.h to read: enum GhostConstants { GhostIdBitSize = 15, ///< Size, in bits, of the integer used to transmit ghost IDs GhostLookupTableSizeShift = 15, ///< The size of the hash table used to lookup source NetObjects by remote ghost ID is 1 << GhostLookupTableSizeShift. MaxGhostCount = (1 << GhostIdBitSize), ///< Maximum number of ghosts that can be active at any one time. GhostCountBitSize = GhostIdBitSize + 1, ///< Size of the field needed to transmit the total number of ghosts. GhostLookupTableSize = (1 << GhostLookupTableSizeShift), ///< Size of the hash table used to lookup source NetObjects by remote ghost ID. GhostLookupTableMask = (GhostLookupTableSize - 1), ///< Hashing mask for table lookups. }; Note that only the GhostIdBitSize and GhostLookupTablesizeShift were changed. And in testGame.cpp line 578 changed the number of AI players to be 1500, just as you showed in your mail. When I run two instance of TNLTest, they behave as expected (although there is lag). No disconnections occur. Is it possible that having so many ghosted objects is making your system max out, so that the server can't keep up with incoming requests and the client is disconnected? TNL is pretty efficient but the test app is not optimized for large quantities of AI. Are you using TNL 1.5.0 or another version? I used the zip file available for download at OpenTNL.org, and compiled with the latest Visual C++ 2008 Express (downloaded today). Regards, Ben Garney GarageGames.Com On 3/10/08, ope...@li... < ope...@li...> wrote: > > Send Opentnl-general mailing list submissions to > ope...@li... > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/opentnl-general > or, via email, send a message with subject or body 'help' to > ope...@li... > > You can reach the person managing the list at > ope...@li... > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Opentnl-general digest..." > > > Today's Topics: > > 1. BUG? TNLTest Connection reset (Jochen St?ber) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Mon, 10 Mar 2008 14:56:54 +0100 > From: Jochen St?ber <joc...@ke...> > Subject: [Opentnl-general] BUG? TNLTest Connection reset > To: <ope...@li...> > Message-ID: <002701c882b6$992cadc0$cb860940$@st...@ke...> > Content-Type: text/plain; charset="iso-8859-1" > > Hi, > > I wrote a networked app which recently hit the 1024 ghost boundary for a > single connection. The TNL doc states that the max number of ghost can > easily be raised by manipulating the GhostConstants enum in > tnlGhostConnection: > > > My tnlGhostConnection.h now looks like this: > > enum GhostConstants { > GhostIdBitSize = 16 , ///< Size, in bits, of the integer used to transmit > ghost IDs > GhostLookupTableSizeShift = 16, ///< The size of the hash table used to > lookup source NetObjects by remote ghost ID is 1 << > GhostLookupTableSizeShift. > > MaxGhostCount = (1 << GhostIdBitSize), ///< Maximum number of ghosts that > can be active at any one time. > GhostCountBitSize = GhostIdBitSize + 1, ///< Size of the field needed to > transmit the total number of ghosts. > > GhostLookupTableSize = (1 << GhostLookupTableSizeShift), ///< Size of the > hash table used to lookup source NetObjects by remote ghost ID. > GhostLookupTableMask = (GhostLookupTableSize - 1), ///< Hashing mask for > table lookups. > > }; > > But whenever the ghost count exceeds 1024 the client terminates its > connection to server, just to immediately reconnect, drop the line again > and > forth. > > I suspect that this might be abug in the TNL because TNLTest.exe which > comes > with the TNL lets me reproduces the error if I increase the number of > players in the game from 15 to over 1024 in the TestGame constructor, i.e. > in line 578: > > for(TNL::S32 i = 0; i < 1500; i ++) > { > Player *aiPlayer = new Player(Player::PlayerTypeAI); > aiPlayer->addToGame(this); > } > > > Did anyone encounter the same problem? > > Cheers, > > Jochen > > > > > ------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > ------------------------------ > > _______________________________________________ > Opentnl-general mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/opentnl-general > > > End of Opentnl-general Digest, Vol 5, Issue 1 > ********************************************* > -- Ben Garney GarageGames.com |