About Store Forum Documentation Contact



Post Reply 
[Suggestion] Esenthel MMO Client (Network)
Author Message
Salival Offline
Member

Post: #1
[Suggestion] Esenthel MMO Client (Network)
Hi, I took some time today and looked through your mmo client for a while and I can say is that it will be very slow as an "mmo client" as you handle traffic now, mmo's often has lots of traffic at once and the way you process the packages right now in the "update" will be really slow. I think you should make support for async sockets for your mmo client (engine itself), Then make a packet queue and process them. it will increase the performance much more.

/Discuss
(This post was last modified: 12-20-2010 02:50 PM by Salival.)
12-20-2010 02:35 PM
Find all posts by this user Quote this message in a reply
Esenthel Offline
Administrator

Post: #2
RE: [Suggestion] Esenthel MMO Client (Network)
Quote:you process the packages right now in the "update" will be really slow
why exactly?

did you notice that commands to the server are queued?
12-20-2010 02:52 PM
Find all posts by this user Quote this message in a reply
Salival Offline
Member

Post: #3
RE: [Suggestion] Esenthel MMO Client (Network)
Right now you try to read data inside the main update thread all the time, And if you get some data, then you parse it and handle the data. And everything is done in the main update thread. And I think it becomes tough to handle many packages and parse them while you must do game updates and rendering things to?

What you think about this proposal.

First of all, engine is not thread-safe to create objects in diffrent thread. So this means we must use a queue. Would be awesome if engine would be capable of thread-safe in order to create the object in the world etc.
  • 1 - [Network Thread] -> Read -> Parse packets -> Put data into an some sort of data structure.
  • 2 - Add the data structure to queue.
  • 3 - Process this queue in the main update thread (Less load because everything is made in the network thread, Just access the data strukture Let's say CreateObject(QueueObj->pos)).

I talk about received messages from server not sending.

What do you think?
(This post was last modified: 12-21-2010 10:38 AM by Salival.)
12-21-2010 10:28 AM
Find all posts by this user Quote this message in a reply
Esenthel Offline
Administrator

Post: #4
RE: [Suggestion] Esenthel MMO Client (Network)
Hi. Thanks for the input. However data read from the server is actually not big and processed quickly. It is possible that reading it on secondary thread would actually be slower due to additional thread synchronization and collecting the data into temporary memory.
12-21-2010 01:54 PM
Find all posts by this user Quote this message in a reply
Post Reply