OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: XML for Online Games

[ Lists Home | Date Index | Thread Index ]
  • From: "Bullard, Claude L (Len)" <clbullar@ingr.com>
  • To: Sam Hunting <sam_hunting@yahoo.com>,Linda van den Brink <lvdbrink@baan.nl>, xml-dev@lists.xml.org
  • Date: Tue, 31 Oct 2000 11:30:51 -0600

It's all about shared illusions.

Latency:  in this context, timing issues of maintaining 
shared state among distributed systems that 
use stateless protocols.   The classic case 
is maintaining a coherent image for all of 
the users when each platform has different 
performance properties both locally (eg, 
processor speed, polygon update support) and 
globally (network performance, UDP vs TCP).  

Consider the problem of a game or simulation 
in which a character or agent drops a glass.  
If the physical properties of time are invariant, 
all of the users should be able to see if the glass is 
caught or hits the floor.  Given the time 
to react, one might see it differently 
as long as updates depend on the timing illusion 
(how long to hit the floor).
 
It is possible to create inconsistent 
conditions.  Inconsistencies that create 
false or superstitious assumptions can 
make for funny problems in a game.  These 
same inconsistencies can kill if the 
simulation is a real time control.  B2B 
systems use rollback for business objects 
that do not close correctly.  Parallel 
processing in operating systems can do 
similar tricks.  Fine, but in a 
simulation, it isn't too cool if the glass 
jumps back onto the table.  That's an 
update oopsie.

Stuff like this occupied a significant 
amount of the VRML 2.0 design discussions. 
If you go into 3D chat rooms, you can 
see funny behaviors as avatars move around. 
These inconsistencies are acceptable.  For 
the next level of gaming, they are not.

There are standards like Distributed Interactive 
Simulations (DIS) which take up the problems 
of designing messages for updating parts of a 
view to all participating users.  Attention is 
paid to ensuring that simulation events are 
prioritized effectively.  Simply being able 
to suspend and rehydrate isn't enough.  Games 
are written with a lot of attention to getting 
rid of superfluous compute cycles.  For example, a game 
played in an open space has significantly more 
problems than one forced into a world of cube 
space (walls, ceiling, etc) where occlusion 
can be used effectively (eb, a BSP tree) to 
eliminate objects from a current context.  

The author creates the world with these problems 
in mind.  For example, Level of Detail (LOD) 
switch nodes can be used to enable lower levels 
of fidelity of representation to speed up the 
display.  At the longest distance from an object, 
a bitmap can be used.  At an intermediate distance,  
a low-res polygon representation is used.  Up 
close, the full-monty is available.  Different 
texturing techniques can also be used to reduce 
load time in RAM-impoverished environments, and 
pre-lighting a texture (using shading) can be 
used to reduce the compute-intensive problems 
of calculating lighting.  

Remember, regardless of the name, all displays are really 2D 
and framerate is the critical metric.  Optimization 
for maintaining a high enough framerate to pull 
off the illusion of 3D animation is a problem 
shared both in the authoring and in the implementation 
of software and hardware.  3D is an illusion 
convenient for authoring and navigation, but  
framerates are 2D update problems.

Toss a network into that and a need to preserve 
that illusion regardless of network or platform 
performance, and you have a challenge.  This is 
why the 3DOnTheWeb projects are significantly 
more complicated than just saying, "We'll use 
XML for interoperability."  Performance is the 
sine qua non for illusions.  XML solves some 
problems but not the hard ones where we have 
to share illusions.  Ask yourself if you get 
faster performance from a meta-API (the DOM) 
or a bound API (toss the XML and use the object 
property names directly).  This issue has 
strained the X3D effort severely and lead 
to systems that will interoperate with 
X3D (eg, Sony Blendo) and those that 
will use the DOM (eg, Xj3D).   X3D has 
been a very good test case for the feasibility 
of XML ubiquity and the DOM API.

Len Bullard
Intergraph Public Safety
clbullar@ingr.com
http://www.mp3.com/LenBullard

Ekam sat.h, Vipraah bahudhaa vadanti.
Daamyata. Datta. Dayadhvam.h


-----Original Message-----
From: Sam Hunting [mailto:sam_hunting@yahoo.com]
Sent: Tuesday, October 31, 2000 9:52 AM
To: Bullard, Claude L (Len); Linda van den Brink; xml-dev@lists.xml.org
Subject: RE: XML for Online Games


 > BTW:  using XML in games is not that novel.  The 
> X3D effort has an XML encoding and can be applied 
> to games, there is a talkingHead application that 
> uses XML, and extending the persistence of games 
> via XML serialization is a straightforward application. 
> The latency issues are a much harder problem 
> than picking XML for message formats.

Can you expand a little on these "latency issues", Len? Thanks....






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS