Perfect Thanks, I will read more on that.
Lapo wrote:
You will have to figure out a way to only extract the information that you need to send from the User object and serialize it to some other simplified type, which then can be transmitted and deserialized back on the other end. Hope it makes sense. It might not, if you've never done this before
Not a problem, I can just as easily send just the IDs and then get all the information client side from those IDs. I was just thinking of doing it this way since that is how the proximity list update did it, but after reflection, I am guessing that is done in the client api as well and not actually sent over the network as User and Item lists.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Lapo wrote:
No I don't think I did that, but I have possibly misunderstood your previous post.
[/quote]
Lapo wrote:
The only part where I am confused is this, from your previous post:
I am trying to basically duplicate the PROXIMITY_LIST_UPDATE but with info for the entire room and send it just to my master client.
Java is new for me so still learning(sorry)
I don't understand why you need to "duplicate" it, where you need to duplicate it also.
Can you expand on this?
This seems to be a fundamental concept that I have wrong, and that worries me.
I will go into detail again why/how I am trying to do this.
A normal room sends user entered and user exited signals to ensure that each player knows what other players are in the room.
An MMORoom sends proximity list updates to let each player know what is in their AOI. This helps the players client by reducing the need for as much network traffic as well as system resources.
A normal room does not have server items. (or does it? I will have to read back on that again)
An MMORoom has MMOItems that can be set up as server controlled NPCs if done properly.
I want to manage all of the NPCs(mmoitems), Their AI, Their physics, and in time probably even the players themselves through an authoritative approach.
Terminology may be my issue here....
Master Client is what I have been calling the single Stand Alone Unity application that will manage the NPCs, AI, etc.... will be on a local connection (in time) with the smartfox server and will be in charge of sending ALL transform and most variable updates to the smartfox server.
Player Client is what I have been calling the Stand Alone Unity applications (built for windows and android specifically but perhaps others in time). It will send player control variables and/or player transforms to the smartfoxserver depending on my stage of learning and the stage of the project. It will receive all information from the smartfoxserver and in time do its work in making it pretty and attractive. (for example changing animations based on movement, environment, and other variables)
The Player Client only needs to know about its AOI as it does not control any serious logic itself.
However, the Master Client controls ALL the logic, and thus requires ALL the information to make those decisions.
The Player Client uses PROXIMITY_LIST_UPDATE well and as intended.
The Master Client requires something more like a normal room with Joined and Left notifications, but also needs it for items as well.
The way I understand it, this need is very similar to the PROXIMITY_LIST_UPDATE except that it is not for the Master Clients AOI (it doesnt have one as it has not 'character' in the game, and never sets a position) but more where the Master's AOI encompasses the entire room.
Here is a scenario that perhaps explains it better.
The Master Client Logs on.
The Master Client Joins the room. (hopefully before any players do, but it is irrelevant)
The Master Client receives a list (my 'Master List') of all the players and items in the room.
The Master Client instantiates them in its physical world and takes control of them, each sending updates back to the server.
The Master Client tells the server to add an mmoitem at x,y,z which it does.
The Server sends the Master Client my 'Updated Master List'
The Master Client then Instantiates any added players or items and removes any removed players or items.
The Master Client controls them and continues sending their info to the server.
The player clients continue getting their AOI updates and 'playing' the game.
In my mind this seems logical, and I thought you had said it was logical up above when I first described it.
Here is a most beautiful mspaint rendition of what I am talking about:
