Shared Universes among various computers

Hi Java Guys!!!

I´m just learning about MMOG technology and I have some questions about rendering the same java virtual universe among different clients through the net. Let me explain you…

I wanted two Java JFrames pointing to the same virtual universe. I´ve solved it by manually creating two (or more) Viewing Superstructures branches and attach´em to the same Locale object belonging to just one VirtualUniverse instance, then I put two (or more) different Canva3D objects in the frames that I wanted at the begining and DONE!!!
But my problem goes beyond than sharing THE SAME Virtual Universe in the SAME machine. Could you guess what is it??? … ha ha … I know you can!!!

Exactly!!! Would not be even more interesting be able to share that SAME Universe between (or among) different computers by using a network connection???

I tried by sending the Canvas3D object through the net (java.io.Serialization) and receive it at the other side in order to be used in a JFrame located “ailleurs”, but the operation was not succesful.
I´ve found some interesting ideas about the use of RMI, but I cannot conceptualize how exactly would work.

  • I know how to create a simple cube.
  • I know how to stablish communication by using RMI between two computers.

So… how to make clients able to SEE that universe??

… so, what to do?, could be better send the universe or some Viewing superstructures (writeObject(), readObject())??, How to make two or more computers render THE SAME VIRTUAL UNIVERSE at real time?, so many answers?, and if so, what would be the best one?
I read some documentation, nevertheless I want to use a logic in which the server HOSTS the Virtual Universe COMPLETELY, and for each client trying to acquire it, the server sends a kind of “WINDOW” that points to that same universe; I mean, dinamically LOAD 3D objects into the client in order to avoid memory leaks in the client side when treating with complex and big Virtual Universes.

I would like to receive your comments and suggestions to develop my applications.

Thanks for your time and attention.

Good Bye.

Hi,

A while ago I made a multi user gaming engine that consisted of a server and many clients; I came across the same problem as you.

Before I go into detail, will your universe be having 3d objects added and removed from it throughout its use?? (ie, will a person have to appear if someone logs in, will a building have to appear if someone builds it, etc…)

Many networked games (ie on the playstation) have the 3d universe (world) built within the client, therefore, each client will not have to download the universe from a server (which helps towards bandwidth usage). All the server does is pass messages to and from each client.

When I made my multi user games engine I tried streaming the universe to each client, because the universe would be constantly getting larger, however, you do not need to do this. Here’s my suggestion:

Each client has a basic 3d universe, which possibly contains the ground, sky, etc… all the basic features. Also, have a library of 3d objects which the client has access to all the time, and upon login the server can stream some sort of file containg a map of the 3d universe and what and where objects need to go. if someone else logs in on a different computer, that client will pass a message to the server which in turns relays the message to all the other clients that are logged, telling them where the newly logged user is and what 3D object they are. Each client then independantly loads that 3D object into the universe (scenegraph is more precise).

If and when new objects appear in the library the server can pass out a message to each client telling them that a new object has arrived, then each client can download the object from the server (I would suggest have this as a text file which your client can load in and convert into a 3D object).

By doing this each client can use there bandwidth to the full for the actual game play (or whatever you client server app is doing) instead of using it to download large scenegraphs and 3d objects.

Hope this helps

J-Ware