from how i understand now, a smarfoxclient object CONTAINS a room and a user?
No, I don't think you understood. The SmartFoxClient doesn't contain any Room or User. It handles the flow of the server-client relationship. The server actually holds the User and the Room. Well, the server allocates them, and the smartFoxClient keeps track of them. So Room and User are classes on their own, they live in memory, but the smartFoxClient holds references to them.
can they contain multiple(can i override the sf object to do so) or is it only one each?
Yes, you can. As I said, the smartFoxClient holds references to the Rooms, he keeps them inside an array, so you can have as many Room as you want and the smartFoxClient will keep track of them in his roomList array. Now off course, for every Room in the client, so must the server have.
It's pretty much the same for Users, except it's actually the Rooms which keeps track of the Users. Every Room is aware of the user inside itself. They store them inside a userList array. It also separates the local user from the other users. So you can easily know who you are. Now if you wanted to know if their can be 2 local user, well I'm not sure, you could make 2 connection to the server from the same machine, and you could try it inside the same .swf, but I'm not sure.
anybody care to explain a basic game design paradigm to get this started? (example: should i create a client that has a room and a player with coordinates x,y or is that too simple?)
Well, I can try...
On the client side, you need to make a smartFoxClient. Then have it login to the server, this will create a User and log him in to the server. Then have the smartFoxClient join a predefined room on the server that you set up inside the config.xml. This will have the effect of creating a Room and moving your User inside it. Then yes, simply create two userVariables x and y, so the server will hold their value. Now every time you move, update the UserVariables.
On the server, you need do nothing else then create the room in the settings.xml.
At this point, if you start two instances of your game, the server will hold two Users connected inside the same room and their respective x and y coordinates.
So that the client gets aware of the other users, you need to add some events. OnUserEnterRoom and OnUserLeaveRoom. Have it so that when a user join the room, you create everything required for displaying, like his avatar. And make it so you destroy everything when he leaves the room(unless he never needs to leave the room). Then to update their coordinates, add an OnUserVariablesUpdate event and simply retrieve the x and y of the user who just moved from the event and assign it to your corresponding avatar or whatever the players are and your done.
also, if i want 'real-time', should i lower the server pollspeed to something really low? or keep it around 300ms and just write a clever way to animate the players while the updates are occuring?
I don't know about the poll speed. I don't even know what it does. But I guess writing a clever animation would be the more efficient lag wise way of doing it. But you have to ask yourself, do you want real time as in lag free experience, or real time as in second and millimetre accurate interaction?
Well, I hope it helped, and if you have anymore question just ask. People on this forum are pretty nice and quick to answer, especially Lapo, but
that's understandable from him, but other users are surprisingly helpful also.