Jump to content

  • Log In with Google      Sign In   
  • Create Account

Interested in a FREE copy of HTML5 game maker Construct 2?

We'll be giving away three Personal Edition licences in next Tuesday's GDNet Direct email newsletter!

Sign up from the right-hand sidebar on our homepage and read Tuesday's newsletter for details!


We're also offering banner ads on our site from just $5! 1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


#ActualShuun

Posted 11 April 2013 - 05:19 AM

So after all those dedicated posts about Component object model i decided to use that into my game, utilizing Artemis.Net.

Now, about networking it is unclear, on how i should properly integrate that, without messing up my components/systems.

 

I'm planning to use Authorative server model.

 

So basically from what i understand, i would have an 'agreed' clean/begining state of objects in both server and client. Then, when a component from any of entity updates, it is marked 'dirty' and is added to some sort of queue 'send list'. Or when it is needed to create new entity, a 'create this entity from this template' type of message is sent.

 

What is unclear, is how to properly implement this right from the start, so i have a nice system to work with, that i will not have to change later. Where do i store the 'dirty' flag? In each component? How do i manage different versions/generations of entity?

 

How do i manage cycles or behaviours, that are consistent and depend on system? For example, if i have circle on ground, that changes its color to,say, red, if player steps on it, and continues to pulse and change its behaviour, depending on color. I would have a 'Pulsates' component in entity, that has property like 'isPulsating' and 'currentPulseColor', that would change every frame. But i dont want to send pulsating color every frame, if i know, that if i had a message update of 'isPulsating', i can calculate pulsating color just from that, i dont need updates on pulsating color every frame from server. How do i manage and distinguish between things like 'isPulsating' and 'currentPulseColor'? And then again, i would sometimes need to know everything, for example, if the circle was not in range, and then becomes visible, i dont know for how much long it had been pusating and therefore cant calculate its color, and i need that data...

 

 

hplus0603 Had a little insight into this a while a go, could you maybe help me with this? biggrin.png

 


#1Shuun

Posted 11 April 2013 - 05:12 AM

So after all those dedicated posts about Component object model i decided to use that into my game, utilizing Artemis.Net.

Now, about networking it is unclear, on how i should properly integrate that, without messing up my components/systems.

 

I'm planning to use Authorative server model.

 

So basically from what i understand, i would have an 'agreed' clean/begining state of objects in both server and client. Then, when a component from any of entity updates, it is marked 'dirty' and is added to some sort of queue 'send list'. Or when it is needed to create new entity, a 'create this entity from this template' type of message is sent.

 

What is unclear, is how to properly implement this right from the start, so i have a nice system to work with, that i will not have to change later. Where do i store the 'dirty' flag? In each component? How do i manage different versions/generations of entity?

 

How do i manage cycles or behaviours, that are consistent and depend on system? For example, if i have circle on ground, that changes its color to,say, red, if player steps on it, and continues to pulse and change its behaviour, depending on color. I would have a 'Pulsates' component in entity, that has property like 'isPulsating' and 'currentPulseColor', that would change every frame. But i dont want to send pulsating color every frame, if i know, that if i had a message update of 'isPulsating', i can calculate pulsating color just from that, i dont need updates on pulsating color every frame from server. How do i manage and distinguish between things like 'isPulsating' and 'currentPulseColor'?

 

 

hplus0603 Had a little insight into this a while a go, could you maybe help me with this? :D

 


PARTNERS