Thanks for the explanation, pronpu! I'm thinking in the lines of a fast paced game (let's say it is similar to Quake, but not exactly a FPS). If for some reason two players are handled by two nodes, and they need to know about the other's position (they both are running around so their positions update many times per second, and the game's engine needs to do some processing on these objects), then with Galaxy the nodes would need to read data from each other everytime the position changes if I understand it correctly. I was wondering if there are some standard techniques to reduce this communication.
updating them frequently would result in network IO isn't it?
Well, after an object is updated (once or multiple time), a read from any other node would require a network roundtrip. Just items close to one another "across the border" won't cause network IO, even if clients need to see items on both sides. You can just send the data to the client from both nodes.
It's only when the items interact that inter-node IO would be required. Now, if one node initiates a transaction, all items in that transactions are transferred to that node (to be "owned" by it), and then they stay there. So, for example, if a character stands right on the border and touches an object on side, that object will be transferred to the character's node; if the character then touches an object on the other side, this, too, will be migrated to the same node, and any further interaction with those two objects will no longer require network IO.
So, potentially you'll have a problem if two characters stand on either side of the border, kicking, say, a ball between them back and forth. But how fast could that happen? Would your game allow them to pass the ball hundreds of time a second?
andyaustinMember Since 21 Aug 2012
Offline Last Active Aug 29 2012 08:51 AM