Ralph:

While simple in concept, this is not at all simple in implementation.  Our
team is doing something "like" this, but a completely different type of
application.  Some thoughts in no particular order:

1. This can be done, but there is nothing in Java3d that will help you do
this.
2. Having the behaviors on the server and not on the client would mean that
you would have to replicate the scene graph modifications to the client.
Depending on the types of modifications you are making, this could be a slow
and expensive process.  For example, using a rotation interpolator on an
object on the server would require something like 40+ messages a second to
each client just to keep the orientation matrix updated on the client for
that one object.
3. Replicating the scene graph cannot be done with serialization on the J3d
objects as they stand now, since they are not serializable.  This means
either writing your own sierialization methods, to define higher level data
structures which describe your scene graph and then transport them.
4. handling collision detection on the server is almost guaranteed to cause
bad lag conditions which will result in the client seeing no real CD in real
time.  Basically objects on the client will just move through other objects
and latency will cause "snap back" as the CD message from the server comes
back.
5. It should be possible to run your scene graph on the server into an
offscreen buffer, but probably the best way would be to use mixed mode or
some other mode which lets you calc the behaviors without ever calling the
render stage.

Final thoughts.  I am not sure having the scenegraph actually up and running
on the server is the best idea.  I would favor keeping your objects on the
server in an architecturally simpler model, then let each client have the
ability to respond to high level messages at the object level, and let them
make changes to their scene graph as needed.  I hate to say it, but this is
not a trivial undertaking.  I would guess you could create a non-scalable,
non optimized version of what you are describing in about 2 man weeks, if
you are an expert in comm and java3d.

Dave Yazel
Cosm Development Team

> ----------
> From:         Ralph Jones[SMTP:[EMAIL PROTECTED]]
> Reply To:     Discussion list for Java 3D API
> Sent:         Friday, October 27, 2000 9:22 AM
> To:   [EMAIL PROTECTED]
> Subject:      [JAVA3D] A simple question...
>
> Hi,
>
> This may sound a little simple, but remember I'm only learning!
>
> I am trying to make a server/client app with Java3D.  I want the server to
> control all my behaviours, and the client to simply reproduce the scene
> from
> the server.  However, the client will be able to interact with the scene
> (e.g.  A box is moved about by the client, but the server controls
> collision
> detection).
>
> I have a couple of questions regarding achieving this:
>
> Will I hit major problems with synchronizing the server and multiple
> clients?
> Will the server be able to control my universe but without actually
> rendering any output?  If yes, what is the best method for doing this?
>
> I hope I'm making sense, but I'm still picking up the lingo!
>
> Thanks for any help,
>
> Ralph.
>
> ==========================================================================
> =
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the
> body
> of the message "signoff JAVA3D-INTEREST".  For general help, send email to
> [EMAIL PROTECTED] and include in the body of the message "help".
>

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to