Random Chitchat 2012-2016
(12-12-2013, 10:28 AM)tigerw Wrote: How does MCS compare?

In my server MCS is lag free, and uses less ram. The great thing of bukkit is that it has all features and a good chunk manager. Ram has 151 mb free. The server has been up 1 day and me and one friend played on it. Also, it's very stable.
Thanks given by:
Just found something pretty usefull. Using F3 + B you can see the hitbox of an entity: [Image: 5KlWS.jpg] [Image: 5KlZJ.jpg]
Thanks given by:
Quite a bit hitbox for the xp orb.
Thanks given by: NiLSPACE
Weird thing has started happening to me. I set up a breakpoint in Decoda, that is hit everytime a player spawns in a world (HOOK_PLAYER_SPAWNED), and when the breakpoint is hit, Decoda pauses MCS, but it still manages to mis-parse the protocol, producing weird packet errors. I have no idea what's going on here, I'm suspecting a threading issue which could manifest in normal gameplay, but it hasn't yet, and the breakpoint amplifies it. But still, it's plain weird.

Yup, threading issue, a complicated one. Finally I untangled the mess.
1. The player connects
2. The client handle is created and added to cServer; the cServer's TickThread handles the packet processing for the client
3. The player logs in and spawns, the packet handler moves the client handle from the cServer to the specified cWorld and calls the OnPlayerSpawned hook.
4. Decoda breakpoint causes the cServer's TickThread to pause.
5. cWorld's TickThread is now in charge of handling the packets for the client handle; the thread is not paused by Decoda, so it runs and receives next packet
6. The next packet is stored in the ByteBuffer after the initial login packet
7. The next packet is processed and the ByteBuffer resets to the beginning of the "currently parsed" packet, to skip the PacketSize bytes of the packet correctly. However, because the login packet hasn't still been committed as processed, the ByteBuffer resets in front of the login packet instead of the next packet.
8. Bam, protocol error!

The question now is, how to handle this mess. And it doesn't need to be caused just by Decoda, it could be anything in a plugin taking a bit longer in the OnPlayerSpawned hook.
Thanks given by:
Just bought Fallout *for free* on http://gog.com . Maybe this time I'll actually enjoy the game.

Threading issue fixed. Along with possibly a few others. Now packets are read full, separated into a new cByteBuffer, and only then processed.
Thanks given by:
Does that also fix #187?
Thanks given by:
No, unfortunately not. That's a completely different issue, although it keeps bugging me quite a lot, too.
Thanks given by:
Yesterday I got my new computerTongue.
Intel core i5
nVidia gForce GTX 650 2g ddr5
8GB RAM DDR5

Do you think it will run Battlefield 4 well? Smile
Thanks given by:
I've been spending some time trying to compile Qt from source, because they no longer distribute the MSVC2008 binary package. It's been 5 days already and still it doesn't work Sad
Thanks given by:
It doesn't work because VS2008 isn't supported anymore, or something else?

(12-14-2013, 06:31 AM)tonibm19 Wrote: Yesterday I got my new computerTongue.
Intel core i5
nVidia gForce GTX 650 2g ddr5
8GB RAM DDR5

Do you think it will run Battlefield 4 well? Smile

I'm sure it will, the specifications seem fast.
Thanks given by: tonibm19




Users browsing this thread: 105 Guest(s)