Mailing List
Home
Forum Home
Softimage
Carrara
trueSpace
Dir3d-l
Maya - a powerful 3D animation and visual effects software
Macromedia Flash Development
Subjects
Subject: Cameras
Subject: scaleDown command
Subject: black out solved
Subject: Aircraft Tutorial
Subject: Mathematical XYZ ?
Subject: Re: Its done This vs That
Subject: Re: Its done first week
recommendations for screen video captures?
Subject: 3DExplorer "Oddity "
Subject: Re: New Director
Subject: ProTeam renewals
Fuel 's new websites (X post)
Blue peter create a make toy
targeting groups question
XPost: Shockwave 3D game ( sort of )
Subject: RES: RES: RES: Fish Modeling
Emitting particles from object intersection
Fuel 's new websites (X post)
Subject: Re: Texturing
Big Break Contest Videos
Subject: New Plugins
Models and Texture on my updated site
Error Installing Patch tS6 6
Subject: Plasma?
Looking for Inspiration
Subject: Weird EMail Q
Subject: Re: It 's done first week ?
Subject: Cherry not cranberry
Subject: Re: New game
Camera Animation Problem
Subject: Particle plugins?
 
Fuel 's new websites (X-post)

Fuel 's new websites (X-post)

2004-03-04       - By Brian Robbins

 Back
Reply:     1     2     3     4     5     6     7     8     9     10     >>  

> Ok, am curious, because I am working on something extremely
> similar myself :) Firstly, it looks very nice indeedy, and
> collision is pretty good generally (modelsunderray with
> proxies I assume?).

Actually there's very few proxies.  In most cases I'm doing
modelsUnderRay() against the actual geometry that you see.  There's a
few places where we have proxies, most notably the rails on the
treehouse, and all the cacti.

I'm also casting 3 rays per movement, more or less corresponding to the
body position, and the two shoulders.  This provides a reasonably decent
collision detection, but it's definitely not perfect.  If you really
want to, you can squeeze through some of the walls :(

> The models are very sweet :)

Thanks, I'll pass that on to our modelers.

> Basically I'm mostly interested in the MU stuff.
> At a rough guess you are interpolating over a time interval
> then extrapolating after using last direction. Can you
> confirm / deny this? :)

More or less yes, that's correct.  All the communication is going
through FlashCom using remote shared objects.  There's one object per
character in the world, and each object has a position (x,y,z) rotation
(x,y,z) and their last movement vector(x,y,z), and their current action
(such as walk, run, etc).

All remote avatars have a target transform which they interpolateTo
every frame.  When I receive updated information for a player, I move
their targetTransform to the new location/rotation.  Additionally on
exitFrame, I move the target transform by their stated movement vector.

In general I've found this to provide the best overall movement, but as
you noted it's definitely not perfect.  The biggest problem we had was
actually with the bucket elevator going down to the caves.  Our current
method provides the best display of that case . . .

> Also, how many updates a second are
> you doing,

Until a couple days ago I had it set to 4, but I recently changed it to
8.  This is definitely something that I'm playing around with.
Fortunately because we're using FlashCom, updating this is as simple as
changing 1 line: setFPS(X)

> what's the max number of users per world and any
> idea on overall bandwidth?

This is something that we're still tweaking.  The systems are in place
for us to arbitrarily limit the number of people who can be in each
junkyard "room" at one time.  Right now we're not using that so we could
potentially have hundreds logged in at once.  One of the things we're
doing over the next several days is examining the lag issues for players
to see what the ideal number will be.  Internally we've had 12 people
logged in at once with a good experience for everyone.  I'm hoping that
we can keep it around that limit or more for the public at large.

> The MU 'experience' as it were is pretty bad for me - not
> sure on other people, but then again I'm still in Colombia -
> where's the server located?

I'm not sure exactly where the server is located.  North America, and I
believe East Coast, but I'm not 100% sure.  It's too bad the experience
wasn't very good for you.  How many people were on at the same time?

Also, did you try out Blackjack?  It's obviously a turn-based game, but
there are some instances where you'll notice the effects of lag
(visually, but it shouldn't affect the gameplay) I'm curious how that
experience was for you.

> Interaction between people is minimal - I like the effort to
> collide with other people but naturally it has it's
> limitations, particularly with not very smooth movement (2
> people walking towards each other will pass through).

Yeah, again this is something we keep going back and forth on.  There's
just something strange about being able to walk through and/or stand on
someone though :)

> Basically gimme the lowdown, and in return, here's what I'm doing:
>
> Each room - max of 8 people. It's FPS so you don't see the
> others. Position / angle / state updates sent 4 times a
> second - I only send data that has changed from last update.
> I only ever interpolate, never extrapolate. This means even
> on an ideal connection you are generally looking at an image
> 1/4 second > old (since if I receive an update, even
> instantly, I use that as the end point for interpolating from
> the previous snapshot). But of course, you have to add your
> ping to this, and then each person is behind that by a
> minimum by an amount equal to their ping (so in my case
> people might be up to a second behind :( ) up to half a
> second (if their sending of data update to the server is just
> past the server sending it's latest positions).

Yes, if the environment is setup right for it, this method I think will
give you the least amount of visual errors for users.  Unfortunately we
have several elevator objects and the visual inaccuracies are VERY
noticable.  In our opinion even worse than the errors we have now.

However, it looks like I may need to go back to a system more like
yours, and just put in special case instances for elevators that will
"lock" remote avatars to the ground they are on.  I was hoping to avoid
that . . .

> The plus side is you never get the walking through objects
> effect I see almost all the time on yours, and movement is
> generally always at the 'proper' speed. It'd probably help
> yours if the ground was flat, that'd cut out the majority of
> it :)

Yes, I think that's the biggest source of visual errors is when you see
players walking through the ground.

> The bad side is that of course ping fluctuates so
> motion can be a bit stop-start, although I'm hoping to sort
> this a bit more obviously.

I'd suggest setting up a system like ours where each remote user has a
target transform, and is constantly moving towards it.  This way all
remote movements are smoothed out, and it should greatly reduce any
jerkiness.

> No collision with people! Just didn't think it was worth it
> really - might change my mind on this though since it's not
> that hard to ignore objects if they end up intersecting -
> although this is highly likely to happen should 2 people be
> moving - if 1 is stationary then proper collision isn't hard
> to work out :)

Yeah.

> I've yet to work out proper server load, but I'm hoping (probably too
> much) that using MUS TCP 8 people should run fine on  a 56k modem.

I would hope so.  As I mentioned we're using FlashCom and I'm not sure
how well MUS TCP would work for those speeds.

> I'll post up a demo as soon as I think it's stable enough -
> it's not far off now, although it's looking ugly as hell.

Looking forward to seeing it!

-Brian

 Brian Robbins
 Senior Creative Technologist, Fuel Industries
 <http://www.FuelIndustries.com>


__ ____ ____ ____ ____ ____ ____ ____ ____ ____
Dir3d-l mailing list
Dir3d-l@(protected)
http://nuttybar.drama.uga.edu/mailman/listinfo/dir3d-l