NetEffect: A Network Architecture for Large-scale Multi

NetEffect: A Network Architecture for
Large-scale Multi-user Virtual Worlds
Tabas IS. Das, Gurminder Singh, Alex Mitchell, P Senthil Kumar, Kevin McGee
Institute of SystemsScience
National University of Singapore
Kent Ridge, Singapore 119597
Email: [email protected]
http://www.iss.nus.sg/RNDWHistoryCity
Abstract
server depending on the user’s choice on community. When a
user wants’ to change community, he is connectedto the new
server handling that community and disconnectedfrom the old
server. At any point of time, all users of a community are
connectedto the same server. Therefore users’ interaction with
the virtual world do not generate any inter-server network
We describe NetEffect, a highly-scalable architecture for
developing, supporting and managing large, media-rich, 3D
virtual worlds used by several thousand geographically
dispersed users using low-end computers (PCs) and modems.
NetEffect partitions a whole virtual world into communities,
allocates these communities among a set of servers, and
migrates clients from one server to another as clients move
through the communities. It devotes special attention to
minimizing the network traffic, in particular, the traftic that
must go through servers. HistoryCity, a virtual world for
children, has beendevelopedon NetEffect and is currently being
beta-testedfor deployment in Singapore.
tlilflk.
1.2 Need-to-Know Updating
NetEffect allows us to create a proper place-hierarchy for a
community. When users are outside a building, they do not need
to know about any update of objects inside the building. When
usersenter the building, they get object updatesfrom the server.
We call this technique need-to-know updating, since it defines
the scope of a user within a smaller area (building or room)
within a community. A server sends updates to a user only for
those objects in the place where the user is located. Thus needr&now updating can reducenetwork traffic significantly.
Key Words: Networked Virtual Reality, Client-Server Model,
Group Dead Reckoning, Distributed Interactive Simulation.
1. Introduction
1.3 Group Dead-Reckoning
We use the group deud-reckoning technique [Singh & Das,
19961in updating the movement and position information of all
available users in the same community. It doesn’t involve any
inter-server communication, which reduces network traffic
tremendously.
Handling a large number of simultaneous users is one of the
biggest challenges in current researchin the area of Networked
Virtual Reality. There are two major reasonsfor this: limitations
of network bandwidth and computational resourcesof network
entity. As a result, there are currently few systemswhich can
support large numbersof users with satisfactoryperformanceof
the network and associatedvirtual worlds.
The NetEffect architecture is designed to address these
limitations of network bandwidth and computational resources
by reducing inter-server communication and by making the
architecture scalable. This paper highlights six key techniques
which allow us to achieve our goal of supporting several
hundred simultaneoususers.
1.4 Point-to-point Connection
/
HistoryCity supports point-to-point ‘voice chat. The voice
data does not go through the servers as this is achieved by
opening a direct connection between two users. This point-topoint connectionminimizes load on the server.
1.5 Extensibility
This architecture is very extensible due to the fact that servers
are very loosely-coupled. We can extend our virtual world by
adding more and more communities with new servers without
affecting existing worlds. Moreover servers can be programmed
to provide application specific support. This extensible
architecture provides flexibility in increasing a system’s
computationalresources.
1.1 Partitioning and Client Migration
We partition the virtual world into many communities which are
distributed over multiple servers. A server can handle one or
more communities. A user can establish a connection to any
Permission to make digital/hard copies of all or part of this material for
personal or classroom use is granted without fee provided that the copies
;LTenot made or distributes for profit or commercial advantage, the COPYr$bt notice, the title ofthe publication and its date appear. ‘andnotice is
&a that copyright is by permission ofthe ACM, Inc. To copy otherwise,
to republish, to post on servers or to redistribute to lists, requires specific
permission andlor fee
ACM
1.6 Dynamic Load Balancing
NetEffect provides a load balancing technique which creates a
uniform distribution of user density over the servers.If there are
E%YT‘97 Lausanne Switzerland
Copyri&t 1997 ACM 0-89791-953+/97/9..$3.50
157
II. .:*;-....‘.._\“,Lg:,,.~..;.
i.’ I.. ., ,.__..L<_
,...._. . I
___..
-----
too many communities for available servers, it is possible for
one server to handle multiple communities. In that case, the
systemperiodically checks ddnsity of users at all communities
and at all servers. To balance load among all the servers, the
system dynamically transfers some communities from heavily
loaded servers to ones with less load. Dynamic load balancing
optimizes the performance of a network of computational
resources.
The rest of this paper describes the major features of
HistoryCity, a distributed environment developed using the
NetEffect architecture, highlights the merits and demerits of
NetEffect, and compares it with other systems. Finally it
discussesfnture work and enhancements.
2. A Sample Application - HistoryCity
We have developed HistoryCity, a virtual community for
children ages 7 11, as a collaborative, distributed
environment that can support 500 simultaneous users. It is
implemented largely in Java and is intended for existing
communications hardware (28k m&em) using currently
available consumertechnology (Pentium 90 MHz PC or better).
The servers can run on Sun Ultra-Spare workstations, or
Pentium Pro workstations running WindowsNT, communicating
with clients using TCPLIPover Internet.
elements are animated objects with associated sound-effects.
Small groups of users can interact in each personal room,
dynamically modifying these elements by adding, removing,
rearranging, or activating them. Participants can interact with
each other using point-to-point speechor traditional text-chat.
HistoryCity also contains several different types of agents:
story-tellers, reporters, poets, jokers, writers, pawn-brokers,
messengers,and a governor.The story-teller allows usersto read
stories, many of which are basedon the history, legends, fables,
and folk tales of Singapore.Similarly, the poet tells poems,the
reporter-providesHistoryCity news (a mix of historical and usercreated), and the joker presents jokes. Users submit stories,
poems,jokes, and news items of their own through the writer.
These are collected each day, added to the appropriate
databases,and made available as part of the agents’ repertoires
the folIowing day.
Pawn-brokersallow players to trade objects with the system.
Messengers allow users to locate each other; by sending a
messenger to locate another user, individuals can determine
where their friends are, whether they are online, or even
whether they are citizens of HistoryCity. The governor provides
users with a set of guidelines for appropriate behavior in
HistoryCity.
The agents in HistoryCity are static models. In the
community description obtained from server, agentsarc defined
as a special type of object. When a user interacts with an agent,
the client knows from the object type that the selectedobject is a
joker, story-teller, or other type of agent. Accordingly the client
requestsarticles from the server for that agent.
HistoryCity is designed to function as a historically-based
virtual community. In the following section we describe the
NetEffect architecture, and discuss how it was used to develop
HistoryCity.
3. HistoryCity
Figure 1: A sample screen from Commercial Square
community where
environment.
users
can see one another
in
the
Residents of HistoryCity explore, and live in, a virtual
Singaporeof 1870, completewith historical buildings, costumes,
’ and objects.At present there are 24 communities in HistoryCity,
each of them have several clubhouses. When users firs1 join
HistoryCity, they select avatars as their representations. and
these become the “bodies” that other users see. Currently
HistoryCity provides around 200 different avatars. A sample
screen of one of the communities is shown in Figure 1. When
usersbecomeclub members,they are given a PersonaIPageand
a Personal Room (with a Personal Theatre). Users can collect
objects from the environment and from other users, and create
interactive theatre pieces in their personal rooms. Theatrc
158
Architecture:
NetEffect
HistoryCity has been developedusing the NetEffect architecture.
NetEffect is a highly scalable client-server architecture where a
master server (MS) and n peer servers (PS) form the network
[see figure 21.Each server maintains a complete graph topology,
which allows the serversto communicatewithout going through
intermediary servers.A client is connectedto only one server at
any time. but can dynamically migrate from one server to
another. AI1 network entities (MS, PS and client) communicntc
with one anotherusing the TCP/IP connection oriented protocol.
The entire virtual world is divided into several communities
which are managedby peer servers. A peer server maintains
the database for its communities and handles its clients’
requests.A peer server also communicateswith other servers,if
necessary, but the inter-server communication has been
minimized in this architecture in order to reduce network traffic.
There is a bottleneck on how many users can be supported by
one such peer server for reasonableperformance.However, the
system can have many such peer servers,so the total number of
supportedusers can be large. HistoryCity has a total of 25 peer
servers,1 for eachcommunity and 1 news server.
,
Figure 2. Overview of N&Effect architecture. One master
server M and 3 peer servers SI, S2 and S3 are taking care of
their clients. SI manages Coml, SZ manages Corn2 and S3
manages Com3. All servers know which community is
handled by which server.
When a peer server starts up, it first connectsto the master
server which assignsan identity to the peer server. The master
server also takes care of initial connection and distribution of
clients, and maintains each user’s personal database. &I
HistoryCity, the personal database includes the user’s log-in
information, avatar description and inventory. When a user
leaves HistoryCity, their personal database is saved at the
masterserver through their peer server. At next log-in, the client
getspersonalinformation from the masterserver.
When usersjoin the world, their clients are connectedto the
master server first. The master server decides the starting
community for the client and instructs the client to connect to
that community-server. This decision about which community
the client is connected to may vary from application to
application depending on game logic. In HistoryCity, this
decision is made on the basis of the user’s location when they
last exited. However, if the master server finds that the desired
community-server is overcrowded, it locates the user at the
nearest community that is not overloaded, where nearest is
defmedin termsof the geographyof the virtual world.
After connecting to a community server, a client gets a
community description from a peer server, and constructsthe 3D
world. Users can then start navigating and can use portals to go
to other communities.
3.1 Network Connec&ity and Addressing
In this section, we explain the network connectivity and the
addressingmechanism for the communities and users. Before
the master server (MS) starts up, an initial setup is created by
the network operator, indicating how many peer servers (PS)
need to be started and which peer server will handle which
community. For example, S1 handles Corn], S2 handles Corn2
etc. When the master server is started up, it reads this initial
setup and creates a community allocation table. When a peer
server is started it connectsto the master server, which assigns
an identity to that PS (e.g. S1,S2)and sendsthe identity and the
community allocation table to the peer server. On the basis of
159
this community allocation table, the peer server initializes its
community database. Subsequently if any community is
migrated from one server to another, the master server updates
all the peer servers, which update their community databases
[for details, refer @Dynamic Load Balancing below].
The master server listens to two ports: one to accept
connections from peer servers and the other to accept
connections from users. The host addressof the master server
and the port number which acceptspeer servers are specified in
the peer server configuration file. When a peer server is started,
it readsthe configuration file, gets the master server addressand
connectsto the masterserver at the specified port.
Each peer server also listens to two different ports: one to
accept connections from other peer servers and the other to
acceptconnectionsfrom users. When a peer server is started it
connects to the master server, which broadcasts information
about the new peer server to all existing peer servers. The
existing peer servers connect to this new peer server. Thus a
complete network is achieved among the master and peer
servers.
After connecting to the master server, the peer server sends
the MS the host addressand the two port numbers at which the
peer server is listening. Thus the master server knows all the
port numbers and host addressesof all the peer servers. When
the masterserver informs other existing peer serversthat a new
peer server has joined, the master server sends new server’s
identity, host address,and the two port numbers at which the
peer server is listening. Thus the existing peer serversknow the
addressof any new peer server joining the network. When an
existing peer server connectsto a new peer server, the existing
PS sends its own host name and two port numbers. Thus the
new peer server knows all existing peer servers’ host address
and port information.
pi user only needs to know. the master server’s host address
and the port number. This information is stored in the client’s
configuration file. When a client connectsto the master server,
the MS decidesthe starting community and peer server. The MS
sendsback the host addressand port number of the peer server
to the client. Then the client closes the connection with the MS
and opens a new connection to the peer server at the specified
host and port. To migrate to another peer server, the client gets
the host addressand port number of the new PS from its current
peer server [For details, refer to Partitioning and Client
Migration below].
3.2 Partitioning and Client Migration
All servers have basic knowledge of the entire network
configuration. A server knows which community is managedby
which server. When users want to change communities, their
clients need to migrate to the peer server which handles the new
community. Consider a situation where a user wants to go from
CoJnJ t0 cOtn2.
The
&eIIt
first
sendsa rqUeSt
t0 itS peer server
SI to change wmmunity. Peer server S1 checks the load
condition of peer server S2 who is handling Com2. Load is
calculated basedon the number of clients connectedto the peer
server. If acceptable,peer server SI sends the Ip addressa3d
port information of SZ to the client with the reconnect
permission message.The client first connectsto server 5%.and
then closes the connection to SI. Subsequently SZhandles the
client’s requests. Figure 3 shows the steps for changing server
by a client.
If peer server SI finds that SZis overcrowded, or SZis not
available in the network, it informs the client with the
appropriatemessage.
r
(5)EstablishcormtoS2
(6)Clae connection
toS1
In this method, when a user moves from one plncc to
another, the client gets object updates from the server for the
new place. Tbe server broadcastsupdates of an object only to
those clients that are currently located in that particular plnce.
When the world contains many buildings, rooms, indoor and
outdoor scenes, this technique can reduce network traffic
significantly.
In the need-to-know upduring technique, the place hierarchy
is predetermined. It is input explicit by the environment
designerwhen the community is modelled.
(4)SendIP i”)for new
Reqforobjeds
community
3.4 Group Dead-Reckoning
technique was described in our
earlier paper [Singh & Das, 1996]. Here “group” refers to the
list of usersconnectedto a peer server. This technique is used to
eliminate sending messageseach time a user moves. Users send
their positions to their server at regular intervals. Instead of
broadcastingthe position of each individual user to the whole
group, the peer server accumulatesposition updates from each
player and broadcastsone big packet at regular intervals to the
whole group [seefigure 51.
The group dead-reckoning
Loadstatussending(3)
Figure 3. Steps involved when a client changes communities.
After reconnectingto the new peer server, the client requests
the community description from the peer server. Once it receives
the community description, it loads the scene.The entire process
of getting the description and loading the scenemay take several
secondsto a minute. But we have observed that this waiting
time is mostly due to loading of the scene at the client’s local
machine.The waiting time varies from community to community
depending on the complexity of the scene.However, getting the
community description from the server is almost immediate,
even though the servermay be supporting many users.
3.3 Need-to-Know Updating
A peer Ferver maintains the database for one or more
communities.When a user enters a community, the client needs
to get the community description from the server. If the entire
community databaseis sent at one time, the network packet size
could potentially make processing of those objects
computationally expensive. Moreover, all updates must be
broadcastto all userspresent in the community, which generates
a lot of network traffic.
To solve this problem, we have adopteda technique we call
need-to-know updating. A community can have a proper place
hierarchy. For example, a community has building 1 & 7-, and
building 1 has a room inside [see figure 41. When the user is
outside any building, he doesnot need any updatesfor the inside
of the buildings. Similarly when a user is inside the room, he
does not need to have any knowledge of the outside world and
people.
community
Building1
PositionOrientation Velocity
Figure 5. Format of Group Dead-Reckoning updatepacket.
This packet contains each user’s current position and
velocity vector. On receiving this packet, a user updntcs the
position of its group members.From then on, the client uses the
velocity vector to predict the position of individual players, until
the next packet is received. Group dead-reckoning used in this
environment has two main effects:
l
l
it reducesthe number of updatessent by a user
it reducesfurther number of updatessent by the server to its
group.
In the NetEffect architecture, there are two ways of forming
a group. In the first method, all users available in a community
can be included in the group dead-reckoning packet. This
involves less computation for peer server, but the client needsto
process all users’ position information which involves more
computation.In the secondmethod, peer server can include only
those users located in the same building or room as the user.
This involves more computationby the peer server.
In HistoryCity we use the first method, which involves less
computation by the peer server, becausewe want to reduce its
load so that it can handle a large number of simultaneous users.
This doesnot have a significant impact on the client since nccdto-know upduting has already filtered out extra object
information. It is also useful for the client to have position
information about all users to let the system provide fentures
such as an overview map with live position updates.
3.5 Point-to-Point Connection
Vuice communication plays a very important role in n
collaborative virtual environment. However, the problem with
Figure 4: Example of place hierarchy in a community.
160
1
1
I
I
voice ammunication is that it generatesa lot of network traffic.
The most effective way of exchanging voice data packets
betweentwo users is to open a direct connection between them.
since this technique does not cause any additional load on the
server. When a user wants to talk to another user, he sends an
audiorequest to his peer server, which locates the oihcr
user first and tells him to accept the audioChat request. The
sourceuser gets back the IP addressand port information of the
target user. Then the sourceuser opens a socket and connectsto
the target user. The target user acts as a server, whereas the
sourceuser acts as a client in audiochaf.
the load on a particular server exceedsa certain lit,
serverinitiates load balancing.
(3) com, reallocated
@a)Databue transfer
complete
(1)
Migrate
(3)
corn,to sz
r_I
MasterServer
Sl
a
I
‘, (5a) Opennew
(2)
Transfer. *
Corn,database:
s
UL,
P-
Locateuser tl
the master
connedion
.
(4) Rmnn- to St Clientsof copn,
(5) Closeconnedionto Sl
Ip etc.info
(3) UserCZ’scommunity,
Figure 7. Community
&rver S1 to SZ.
(7)Connectlo C,
Figure 6. Client Cl at St is connecting to client C2 at SZ for
audio chat. If Cl and C2 are both at the same server Sl, steps
(2), (3), (4) are not necessary.
Jn HistoryCity, we use the GSM compressiontechnique to
compress audio data in order to reduce the bandwidth
requirement. The initial connectionprocedureis shown in figure
6.
3.6 Extensibility
The architeciure is very extensible due to the fact that servers
are very loosely-coupled. When we extend our virtual world by
adding communities, starting up new servers has minimal
impact on the existing world.
Depending on the game play, peer servers can also be
programmedto provide g&e specific support..In Histoflity,
one of the peer serversis configured as.anews server. The news
server does not have any users; it collects all articles submitted
by all usersfrom all communities. Articles from usersare sent to
each user’s peer server, which then passesthe articles to the
news server. The news server compiles articles at midnight, and
after an administrator has determined suitability for posting,
published newspapersare dishibuted to all peer servers.
In a similar way, peer servers can be programmedto act as
chat servers, media servers etc. Thus our architecture can be
extendedto include serverswith various types of functionality.
3.7 Dynamic Load Balancing
When servers manage more than one community, there is a
possibility that some servers will becomeoverloadedwhile other
servers may be idle. To balance load among the servers.
NetEffect dynamically transfers communities from heavily
loaded servers to ones with less load. The master server
periodically checksclient density at each community, and when
Corn1 is being migrated
from peer
For example, community Coml needs to be migrated from
server SI to S2. The major stepsinvolved in this processare [see
figure 71:
1. Master server (M) sendsa messageto SI to transfer
community Corn1to S2
2. Peerserver S1sendscommunity Corn1databasetom
s2
3. Master server informs all peer serversabout reallocation of community CornI.
4. Peerserver S1broadcaststo all clients of Corn1to
. reconnectto SZ
5. Clients of community Corn1close their connection
with SI and open new connection to SZ
Thus communities are transferred dynamically fi-om one
server to another. There is a limitation in this community
migration process.While the migration is in progress,users are
prevented from modifying the world. Moreover, the time taken
to transfer the databaseis important. If the community database
is huge, it may take severalsecondson a slow network.
In HistoryCity, we determine the load on a server by
computing the total number of usersconnectedto it. However, it
may be possible that an environment where there are a large
number of static users generatesless load than an environment
with a smaller number of active users. In ‘this sense, the load
computation may not always be very accurate.It is possibly to
improve the load computation to take this inaccuracy into
account.
4. Related Work
Most existing networked virtual world systemscan support only
a handful of simultaneous users. SIMNJZT[Calvin et al., 19931,
NPSNET [Macedonia et al., 1995a&b] and RING punkhouser,
19M] are clearly in a different class when it comesto supporting
n%ber of users. SIMNET and its descendent,DIS (IEEE), can
support a few hundred users, whereasNPSNET is gearing up to
support more &an 1000 users. Instead of covering all important
networked virtual worlds, we will cover only SlMNET, DJS,
NPSNET, RING and Spline. Information on other interesting
networked virtual world systems can be found in VR-DECK
[Codella et al., 19931,DIVE [Carlsson & Hagsand, 1993a, &b],
EM [Wang, Green & Shaw, 199.551.
In SIMNET, all the virtual worlds consist of the sameset of
objects. The network model is object and event based, i.e.
objectsin the virtual world interact with eachother through a set
of defined events. Objects are autonomousin nature, i.e. any
changein any object is broadcastto all other worlds, regardless
whether they need the update or not. In order to reduce network
traffic, objects send information only about changes in their
statesor behavior. This reducesthe transmission(and reception)
of redundant information. Moreover, SlMNET supports the
dead-reckoning technique.
SIMNET has set a DIS standardwhich has been acceptedby
IEEE as the 1278 standard for distributed simulations. In the
DIS standard, the computers communicate via a network
protocol that consistsof a set of agreed-uponprotocol data units
(PDUs) and a set of rules for the exchangeof thesePDUs.
Unfortunately SIMNET, which was developedfor small unit
simulation, and its descendant,DIS, are currently not suitable
for large-scalemulti-player VES, This is becauseSIMNET and
DIS use broadcast for communication among virtual worlds,
which can quickly bog down virtual worlds with too many
network messages.
In order to solve this problem of scaling very large
distributed simulations, NPSNET [Macedonia et al., 1995b]
reduces network traffic by logically partitioning virtual
environments, associating spatial, temporal, and functionality
related entity classeswith network multicast groups.This solves
some of the problems with the existing DIS protocol, e.g.,
updating an entity, handing of static objects,distribute object on
demand.This exploits the actual characteristicsof the real-world
large-scale environments that are simulated by restricting any
entity’s processingand network resourcesto its area of interest
via a local Area of Interest Manager (AOIM). NetEffect follows
a similar approach. One of the major differences is that
NPSNET uses multicast protocol whereas NetEffect uses a
distributed server approach.NetEffect can filter out, or group,
network messages,which is not possible in NPSNET. Moreover
NetEffect includes the group deaLreckoning and need-to-know
updating techniques which can reduce network traffic
significantly.
SIMNET and NPSNET are designed for simulation
purposes.The contents of all their virtual worlds are the same.
This is not desirable for most applications as they may riced to
have differ&t objects for different worlds with sharedobjects.
RING [Funkhouser, 19951 supports interaction between a
large number of users in virtual environments with dense
occlusion (buildings, cities etc.). In RING, a state changein any
object is sent only to the small subset of worlds to which the
update is relevant. The state change is sent only to hosts
containing entities that can possibly perceive the change.Object
space visibility algorithms are used to compute the region of
influence for each state change. This reduces the number of
messagessignificantly if the virtual environments are deusely
occluded.Line-of-sight visibility is used to determine the region
of influence for each update. We can use the RING concept of
visibility within a community to improve the performance of
NetEffect further. The key problem is that each world needs to
162
calculate whether other worlds need this update or not, In order
to do this computation, RING uses a separate workstation
attachedwith eachclient.
WorldNet, the networking part of BrickNet [Singh et al,,
19941, uses a distributed server approach to reduce overall
network bandwidth. This is achievedby first identifying a group
whose updatesaffect one another and migrating these clients to
a commongroup server. This identification of a common group
may not always be easyor efficient. In the NetEffect architecture
there is no such problem, as users of a community are dwnys
connectedto the sameserver.
Spline [Mitsubishi Research]usesa centralized world model
to maintain the world database.It breaks the world mcxlel into
chunks called locales and communicatesinformation about n
locale only to thoseuserswho are interested in it. Spline servers
cache the current state of each locale, so that Spline processes
can obtain new locale information very quickly. This
architecture becomesa bottleneck when multiple users of all
locules modify their worlds, becausea huge amount of interserver network traffic is generated. In contrast, NetEffect
attemptsto minimize inter-server network traffic.
5. Conclusion
We have presentedNetEffect, a highly scalable architecture for
networked virtual worlds. There are several ideas behind this
architecture. The key idea is to partition the virtual world
geographically into communities and to distribute communities
over multiple peer servers. Users migrate to different peer
servers based on their community. Group dead-reckoning and
need-to-know upduhg further reducenetwork traffic.
The NetEffect architecture is highly effective for the class of
applications where the virtual world CM be partitioned into
smaller communities. Since these communities are distributed
over multiple Peer servers, and users are prevented from
gathering at a specific community, user-density is evenly
distributed. Thus supporting a large number of simultaneous
usersdependsmainly on the number of available peer servers.
The NetEffect architecture is not suitable for those
applications where the virtual world cannot be partitioned into
smaller communities. But this is a very rare case.
We have developed HistoryCity based on the NetEffcct
architecture. Our user environment is Pentium PCS,28.8 Kbps
modem and Internet. The HistoryCity virtual environments are
significantly large and complicated. Currently there are 24
communities. A client sends its position packet every 1 second
interval if it is not static, and server broadcastsgroup deadreckoning packetevery 1.5 secondinterval.
HistoryCity has been designed for 500 simultaneous users,
and is in the processof beta-testing. We believe the NetEffect
archifccture will scale up to support more than 500 users if we
add more communities and start more servers.
6. Future Work
The current version of NetEffect architecture has one master
server which maintains users’ personal dotabases.If the total
number of usersbecomesextremely large, the masterserver may
slow down a lot as the look-up time for the databaseincreases
significantly. This problem does not directly affect a user’s
world, because the user only communicates directly to the
master server at log-in. However, overall performance of the
masterserverwill degradeunder such circumstances.
A way to solve this problem is to repiicate the masterserver.
The user-databasecan be.divided under multiple masterservers,
which makes the architecture completely scalable. We plan to
implement this conceptin the next version of NetEffect.
7. Acknowledgment
Many people contributed in many ways to develop the NetEffect
architecture and HistoryCity. lhye Chean, Song Chuan, Murray,
Sizhen were fully involved in the technical implementation.
HistoryCity content was provided by Sonali, Karen, Patanjali,
Rosbe,Dmyar, PhuiLing, and many others.
8. References
[Calvin et al., 19931
Calvin, J., Dicken, A., Gaines, B., Metxger, P., Miller D.,
and Owen, D. (1993). The SJMNET Virtual World
Architecture. Proc. IEEE Virtual Reality Annual
International Symposium (VRAJS’93), Sept. 18-22.1993,
Seattle,Washington, USA, pp: 450455.
[Carlsson & Hagsand,1993a]
Carlsson, Christer, and Hagsand, Olof. (1993). DlVE - a
Multi-User Virtual Reality System. Proc. IEEE Virtual
Reality Annual International Symposium (VRAIS’93). Sept.
18-22,1993, Seattle,Washington, USA, pp: 394400.
[Carlsson& Hagsand,1993b]
Carlsson, Christer, and Hagsand, Olof. DIVE - A platform
for multi-user virtual environments. PergamonPress Ltd.,
Great Britain 1993,pp: 663-669.
[Codella et al., 19931
Codella, Christopher F., Jalili, Reza, Koved, Lawrence, and
Lewis, J. Bryan. A Toolkit for Developing Multi-user
Distributed Virtual Environments. IEEE Virtual Reality
Annual International Symposium (VRAIS’93), Sept 18-22,
1993,Seattle,Washington, USA, pp: 401-407.
~unkhouser, 19951
Funkhouser, Thomas A. RING: A Client-Server System for
Multi-user Virtual Environments. Symposiumon Interactive
3D Graphics,April 1995,Monterey, CA USA.
[Macedonia et al., 1995a]
Macedonia, Michael R., Zyda, Michael J., Pratt, David R.,
Barham, Paul T., and Zeswitz, Steven (1995). NPSNLT A
Network Software Architecture for Large Scale Virtual
Environments. Presence: Teleoperators and Virtual
Environments, MIT Press,Boston, 3(4).
macedontd et al., 1995bJ
Macedonia, Michael R., Zyda, Michael J., Pratt, David R..
163
--‘-r-
0..
F?RI
.A? .-..
L.
. . ..-
~--
Brutzman, Donald P., and Barham, Paul T. (1995).
Exploiting Reality with Multicast Groups: A Network
Architecture for Large scale Virtual Environments. IEEE
Virtual
Reality Annual International Symposium
(VRAIS’95). North Carolina, USA, Marcg 11-15, 1995,
pp:19-15.
[Mitsubishi Research]
Environment for learning, work and play (Research
Threads). A Mitsubishi Electric Research Laboratory.
http://www.merl.com.
FIorrison, 19951
Morrison, John. The VRLink
Networked Viial
Environment Software Infrastructure. Presence:Vol. 4, No.
2, Spring 1995, pp: 194-208. Massachusetts Institute of
Technology.
[Pratt et al.]
Pratt, David R., Locke, John, Macedonia, Michael, Zeswitz,
Steven R., Young, Roy David, and Zyda, Mike. NPSNETz
Ensuring world consistency in a shared Networked Virtual
Environment. Department of Computer Science, Naval
PostgraduateSchool.
[Shaw et al., 19931
Shaw, Chris, Green, Mark, Liang, Jiandong, and Sun,
Yunqi. Decoupled Simulation in Virtual Reality with The
MR Toolkit, ACM Transactions on Information Systems11,
3 (July 1993).
[Shaw &Green, 19931
Shaw, Chris, and Green, Mark. (1993). The MR Toolkit
PeersPackageand Experiment. Proc. IEEE Virtual Reality
Annual International Symposium (VRAXS’93), Sept 18-22,
1993, Seattle,Washington, USA, pp: 463-469.
[Singh et al., 19941
Singh, Gurminder, Serra, Luis, Png, Willie, and Ng, Hem.
(1994). BrickNet: A Software Toolkit for Networks-Based
Virtual Worlds. Presence: Teleoperators and Virtual
Environments,MIT Press,Boston, 3(l), pp: 19-34.
[Singh & Das, 19961
Singh, Gunuinder, and Das, Tapas K (1996). Large Scale
Multi-User Virtual Worlds. Proc. JFIP’96 14* World
Computer Congress,2-6 Sept. 1996, Canberra,Australia.
[Wang, Green & Shaw, 19951
Wang, Qunjie, Green, Mark, and Shaw, Chris. (1995). EM
- An Environment Manager for Building Networked Virtual
Environments. IEEE Virtual Reality Annual International
Symposium (VRAIS’95), North Carolina, USA, March ll15.1995. pp: 11-18.
[Zyda, 19951
Zyda, Michael J. Networked Virtual Environments. IEEE
Virtual
Reality Aniiual Intermational Symposium
(VRAJS’95), North Carolina, USA, March 11-15, 1995, pp:
230-231.