Sign in to follow this  

Server clock tick V JIT

This topic is 3489 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

For an MMORPG server I've seen a lot of designs using a heartbeat or tick mechanism internally. Meaning that all outgoing communications are batched up and only sent every 20ms or so.. Whats the benefit of this over a JIT or event based model that sends out data to clients ASAP and when it's relevant? - Thanks.

Share this post


Link to post
Share on other sites
Event-based systems are designed for lower server and redundancy (thus less bandwidth). The disadvantage is that you are sending information once. Although you send it close to right after it happens, you are only resending it if it is dropped. You rely heavily on the mechanics of a lossless and sometimes ordered data transfer. This makes TCP or lossless UDP a good medium.

Tick-based systems do not care about if the data made it there or not - it just keeps sending. No data is retransmitted if dropped. Instead, it just waits until the next tick and sends the newer information. Because you are not retransmitting, this means that if data is dropped, new data will shortly take over, resulting in a less day than if you were to retransmit along with the new data is going to be a lot more accurate than retransmitted data. This makes lossy UDP shine.

Which one to use is up to the gameplay. Refer to the billions of TCP vs UDP arguments on the net. If for your game, TCP sounds like it will work out better than UDP, you probably want to go with the event-based system. If not, go with the tick-based.

Share this post


Link to post
Share on other sites
Tick systems don't need to be based on "no re-send," but they often work well together.

The main reason to batch up messaging per client is that there may be multiple different actions that affect a client. For a silly example, if player A shoots player B, and player C heals player B, and player B also triggers a trap, all at the same time, then you want to batch those messages up and send them in one packet, rather than sending three packets, to save on packet header overhead.

Share this post


Link to post
Share on other sites

This topic is 3489 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this