Communication control

A server including a storage unit for storing a history of activities that each character in a virtual world has performed; a search unit for searching the storage unit to retrieve a history of activities in which a first character that performs an activity on a first client has changed the states of a second client that performs an activity on a second client; a calculation unit for calculating, on the basis of the retrieved history, a score indicating the extent to which the first character has changed the state of the second character; and a transmission control unit for controlling the frequency with which the states of the first character are changed according to an operation performed by a user on the first client.

CROSS REFERENCE TO RELATED APPLICATION

This application claims priority under 35 U.S.C. 119 from Japanese Application No. 2008-15446 filed Jan. 25, 2008, the entire contents of which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to controlling communications. In particular, the invention relates to a system, method, and program for controlling the communication frequency.

2. Description of Related Art

In recent years, virtual worlds have been developed not only for personal pleasure purposes such as games but also for business purposes and have been used by a number of users. In practice, a virtual world is created by clients that are operated by users and a server for collecting and managing various types of information. If a user operates a client, an influence that the operation has had on the virtual world is transmitted as data to the server. On the other hand, if the server transmits data to a client, the transmitted data is related to only the user of the client. According to this mechanism, an image is displayed on the screen of the client in such a manner that the image is updated in real time, as if to show the sight of a character serving as an avatar of the user.

For further background on technology for controlling a virtual world, see Japanese Unexamined Patent Application Publication No. 2007-50154.

However, if a great number of clients communicate with a small number of servers simultaneously, an enormous amount of data may need to be communicated. This may cause a delay in data update, which may impair the real-time nature of the virtual world. For example, even if a second character staying within sight of a first character is moved, information on the movement is not immediately transmitted from a second client to a first client for operating the first character. As a result, there occurs a delay before the second character is moved in an image indicative of the sight of the first character.

SUMMARY OF THE INVENTION

An object of the present invention is to provide a system, a method, and a program for solving the above-described problem. In accordance with the present invention, a server is provided which includes a storage unit for storing a history of activities, the activities having been performed by characters in a virtual world according to operations performed on corresponding clients; a search unit for searching the storage unit to retrieve a history of activities in which a first character has changed a state of a second character, the first character being configured to perform an activity according to an operation performed on a first client, the second character being configured to perform an activity according to an operation performed on a second client; a calculation unit for calculating a score (an index) indicating the extent to which the first character has changed the state of the second character, on the basis of the retrieved history; and a transmission control unit for controlling the frequency with which a state of the first character is transmitted to the second client, on the basis of the calculated score (index), the state of the first character having been changed according to an operation performed by a user on the first client. Also, there are provided a method and a program product for causing a computer to serve as the above-described server.

The above-described outlines of the present invention do not list all features essential to the present invention and subcombinations of the features can also fall within the invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Referring toFIG. 1, there is shown an overall configuration of an information system according to this embodiment. The information system includes a server100and multiple clients,200-1to200-N. The server100is coupled to the clients200-1to200-N via a communication network15such as the Internet.

The server100includes a communication interface102such as a network interface card (NIC) and a storage unit104such as a hard disk drive. The server100reads a program from the storage unit104and performs the program using a central processing unit (CPU), thereby serving as a virtual world server106.

The virtual world server106manages a virtual world in which multiple characters perform activities. Specifically, the server100manages data such as data on the respective positions, orientations, and/or appearances of the characters in the virtual world.

Each of the clients200-1to200-N includes a communication interface202such as an NIC and a storage unit204such as a hard disk drive. Each client reads a program from the storage unit204and performs the program using a CPU, thereby serving as a virtual world browser206.

The clients200-1to200-N are provided to operate different characters. For example, a user operates his or her avatar in the virtual world by operating the client200-1serving as the virtual world browser206. Another user operates his or her avatar in the virtual world by operating the client200-2serving as the virtual world browser206.

While the characters here are, for example, avatars of users as described above, the characters are not limited thereto as long as they are operated by users using the clients200-1to200-N. For example, the characters may be entities that perform activities in a game world such as a massively multiplayer online role-playing game (MMORPG).

Assuming that the characters are avatars, this embodiment will be described below.

The mechanism for operating the avatars is as follows. Upon receipt of an operation from its user, the client200-1serving as the virtual world browser206changes data indicating the state of the user's avatar such as the position, orientation, and/or appearance of the avatar and stores the resultant data in the storage unit204.

For example, the data stored in the storage unit204is periodically collected by the server100serving as the virtual world server106so that the collected data is stored in the storage unit104. The same is true for the clients200-2to200-N except that the users and avatars thereof are different from the user and avatar of the client200-1.

On the other hand, the data stored in the storage unit104is transmitted to each of the clients200-1to200-N so that the transmitted data is stored in the storage units204. As a result, the states of the avatars of the users of the clients200-2to200-N as well as the states of the avatar of the user of the client200-1are stored in the storage unit204of the client200-1.

In this way, the virtual world server106synchronizes the states of the avatars stored in the respective storage units204of the clients200-1to200-N. Thus, the users of the clients200-1to200-N can grasp changes in states of the avatars of other users in real time and operate their avatars while feeling as if they themselves are experiencing the virtual world.

However, if too many clients200are coupled to the server100, the total amount of data to be synchronized becomes too large. This may causes a delay in data communications. That is, a delay in data communications may cause a delay in data synchronization, which may impair the real-time nature of the virtual world. In order to prevent such a communication delay, this embodiment performs proper communication are updated with a high frequency and other data are updated with a lower frequency. This communication control will be described in detail below.

FIG. 2shows functional configurations of the virtual world server106and virtual world browsers206according to this embodiment along with the storage unit104and storage units204. The storage unit104includes an activity history data base (DB)12and a state DB14. The activity history DB12stores the histories of activities of avatars in the virtual world. The state DB14stores the states of the avatars in the virtual world. The virtual world server106includes a synchronization unit120and a control system130. It accesses the activity history DB12and state DB14to perform synchronization.

The storage unit204of the client200-1includes an activity history DB22and a state DB24. The activity history DB22stores the history of activities of the avatar of the user of the client200-1. The state DB24stores the states of the avatar of the user of the client200-1and other avatars related to the user's avatar among the avatars in the virtual world. The “other avatars related to the user's avatar” here refer to avatars staying within the sight of the user's avatar or avatars present in the proximity of the user's avatar, or the like. That is, the state DB24caches a part of the data stored in the state DB14.

Virtual world browser206includes a synchronization unit220, an activity processing unit230, and a rendering unit240and accesses the activity history DB22and state DB24to perform synchronization. Specifically, first the synchronization unit120of the virtual world server106reads the states of the avatars from the state DB14, for example, periodically and transmits the read states to the synchronization unit220of the virtual world browser206. The synchronization unit220stores the received states in the state DB24. As a result, not only the state of the avatar operated by the client200-1but also the states of the avatars operated by the clients200-2to200-N are stored in the state DB24.

The states of an avatar include, for example, data on the position, orientation, appearance, and/or the like of the avatar in the virtual world. According to these pieces of information, the rendering unit240renders an image indicating the sight of the avatar operated by the client200-1. For example, according to information on the position and orientation of each avatar in the virtual world, the rendering unit240determines whether any other avatars are present in the direction in which the avatar is oriented.

If any other avatars are present in the direction in which the avatar is oriented, the rendering unit240renders an image showing the appearances of such other avatars, according to the information on the appearances of such other avatars.

An input unit250receives an operation performed by the user. Once the input unit250has received such an operation, the activity processing unit230updates the states of the avatar of the user. For example, if the input unit250receives an operation for moving the avatar from the user, the activity processing unit230updates the information on the position and orientation of the avatar stored in the state DB24.

In addition to such a movement, various types of activities are performed by an avatar. Among these activities is an interaction made between an avatar and another avatar. For example, such an interaction may be the transmission of a message from an avatar to another avatar. The transmitted message is displayed on the message window of a display unit260of the client200for operating another avatar that has received the message. The history of various activities including such message transmission is stored in the activity history DB22.

Each synchronization unit220transmits the states and activity history of the avatar updated or stored in these ways to the synchronization unit120, for example, periodically or in response to a request from the synchronization unit120. Then, the synchronization unit120stores the received states in the state DB14and the received activity history in the activity history DB12. Thus, the states of all the avatars present in the virtual world are collected into the state DB14and the histories of the activities of these avatars are collected into the activity history DB12.

If an excessive number of clients200are coupled to the server100simultaneously, too high a processing load may be imposed on the server200or too high a load may be imposed on the communication network15. This may reduce the frequency with which the states of the avatars are synchronized. A control system performs communication control so that data synchronization is properly performed in such an environment. This control will be described below with reference toFIG. 5.

Referring toFIG. 3a, there is shown one example of data structures of the state DB14and state DB24according to this embodiment. The state DB14stores the states of the avatars in a manner that the corresponding states are associated with each avatar. There are various types of states. As examples of such states,FIG. 3ashows the position, orientation, and affiliation of each avatar, and objects staying within sight of each avatar. As seen in the diagram, the states include not only items specific to each avatar, such as the position or name of the avatar, but also items that each user can recognize via a user interface208(shown inFIG. 2) such as the display unit260, such as objects staying within sight of the avatar.

For example, the position of an avatar1011is a position (112,225) in a coordinate system of the virtual world and the orientation thereof is a direction represented by a vector (135,221) in the coordinate system. The affiliation of the avatar1011is 12. The IDs of avatars staying within sight of the avatar1011are1012,1023, and the like. A conceptual diagram of the virtual world including the positions and orientations of these avatars is shown inFIG. 3b.

FIG. 3bis a conceptual diagram of a virtual world represented by data stored in the state DB14according to this embodiment. InFIG. 3b, each avatar is represented by a node and the orientation of each node is represented by an arrow connected to the node. An avatar1012stays within sight of the avatar1011and the avatar1011stays within sight of the avatar1012, that is, the avatars1011and1012face each other. Also, the avatars1011and1012stay within sight of an avatar1013, that is, the avatar1013is oriented to the avatars1011and1012.

As seen in the diagram, the virtual world may be a world including the positions and orientations of avatars, like the real world. Or the virtual world may be a world including no concepts such as the positions and orientations of avatars, like a world in which communications are established via only character media such as chats or electronic mails. Or the virtual world may be a world in which avatars are present in a coordinate system more similar to the real world, such as a three-dimensional coordinate system.

The state DB24has a data structure almost identical to that of the state DB14shown inFIG. 3aexcept that it includes only a part of the records stored in the state14, and will not be described.

Referring toFIG. 4, there is shown one example of a data structure of the activity history DB12and activity history DB22according to this embodiment. The activity history DB12stores activities in a manner that, for each activity, the activity identification (ID) of the activity, the ID of an avatar that has performed the activity, the ID of the type of the activity, and the description of the activity are associated with one another. Note that the description of each activity is shown to clarify the activity and is not always essential as a content of the activity history DB12.

The activity ID refers to, for example, a serial number assigned to each of activities performed in the virtual world. For example, if the avatar1011performs an activity three times, the performed activities are assigned different IDs such as 12212, 12213, and 12214. The activity 12212 shows that the avatar1012has come into sight of the avatar1011. The type of the activity 12212 is identified, for example, using a numerical value30-1012.

On the other hand, the activity 12213 shows that the avatar1011has received a message from the avatar1012. The type of the activity 12213 is identified, for example, using a numerical value31-1012. The activity 12214 shows that the avatar1011has heard a sound of the avatar1012. The type of the activity 12214 is identified, for example, using a numerical value32-1012.

Also, an activity 13452 shows that the avatar1012has come into sight of the avatar1011. The type of the activity 13452 is identified, for example, using a numerical value20-1011. This activity is symmetrical to the above-described activity30-1012. As seen in the diagram, all the symmetrical multiple activities may be stored in the activity history DB12.

Those skilled in the art will recognize that the occurrence of an activity and storing/managing the detected activity can be accomplished in various ways. One such way is as follows. First, the activity processing unit230of the client200-1detects that the position or orientation of an avatar (hereafter referred to as “user avatar” in the sense that the avatar is operated by the user of the client200-1) has changed, according to an operation of the user received by the input unit250. Then, the activity processing unit230determines the sight of the avatar on the basis of the changed position or orientation.

Next, the activity processing unit230selects the IDs of avatars staying within the determined sight on the basis of the position of each avatar stored in the state DB24. The selected IDs are stored in the state DB24such that the IDs are associated with the user avatar. The activity processing unit230stores the history of activities indicating that these avatars have come into sight of the user avatar, in the activity history DB22.

More specifically, the activity processing unit230keeps, in the activity history DB22, a record indicating the activity and having a new activity ID. In the record, the activity processing unit230sets the ID1101of the user avatar as the ID of the avatar that has performed the activity. Also, in the record, the activity processing unit230sets an ID indicating the activity type. For example, the activity type ID is created by combining a prefix30indicating that another avatar has come into sight of the user avatar and a suffix1012indicating such another avatar.

The above-described process is repeated in each of the clients200-1to200-N and then the activity history DB22of each client200and the activity history DB12are synchronized. Thus, the histories of the activities in the virtual world are collected into the activity history DB12.

A process of controlling communications on the basis of the histories of the activities collected in this way will now be described with reference toFIG. 5.

FIG. 5shows one example of a functional configuration of the control system130according to this embodiment. The control system130includes a search unit500, a calculation unit510, a measurement unit520, a transmission unit530, and a reception unit540. The control system130controls the frequency with which changes in state of each of the multiple avatars in the virtual world are transmitted to each of the clients via the communication network15.

As a representative part of such control, control of the frequency with which the states of a first avatar, which performs an activity according to an operation performed on a first client (for example, client200-1), are transmitted to a second client (for example, client200-2) for operating a second avatar will be described. First, the search unit500searches the activity history DB12for the history of activities in which the first avatar has changed the states of the second avatar.

The “activity” here refers to, for example, a display of a display object indicating the first avatar on a screen of the second client200-2indicating the sight of the second avatar, as seen in the above-described example. Or the activity may be an arrival of a message transmitted from the first avatar at the second avatar. Or the activity may be a hearing of by the second avatar of a sound emitted by the first avatar in the virtual world.

In the case of a virtual world for a game, the activity may be that the first avatar is within the range of a gun that the second avatar possesses in the virtual world. Or the activity may be that the first and second avatars each possess an object of the same type that an object sold by the first avatar is purchased by the second avatar.

Next, the calculation unit510calculates a score indicating the extent to which the first avatar has changed the states of the second avatar, on the basis of the retrieved history of activities. Or, since a weight indicating the extent to which the states are changed is associated with each activity type, the calculation unit510may sum up such weights of the retrieved activities so as to calculate a score.

The measurement unit520measures the total amount of communications performed between the server100and clients200-1to200-N during a past predetermined period, for example, on the basis of the communication state of the communication interface102. Then, the transmission control unit530controls the frequency with which the states of the first avatar are transmitted to the client200-2, on the basis of the measured total amount of communications and the calculated score.

For example, a higher score indicates that the second avatar has been significantly influenced by the first avatar. In this case, there is a high possibility that the user operating the second avatar wants to know changes in states of the first avatar in detail upon occurrence of such changes.

For this reason, the transmission control unit530increases the frequency with which the states of the first avatar are transmitted from the server100to the client200-2, in proportion to the magnitude of the calculated score. If the above-described total amount of communications is larger than a predetermined target amount of communications, too high a load may unfavorably be imposed on the communication network15or server100.

In such a case, the transmission control unit530reduces the frequency with which the states of the first avatar are transmitted from the server100to the client200-2even if the above-described score is the same. Thus, the load imposed on the communication network15and server100is maintained at a proper level.

The control system130performs the above-described communication control with respect to all combinations of the avatars in the virtual world. Subsequently, the search unit500, calculation unit510, and reception control unit540control the frequency with which the server100receives the states of the avatars from the clients200-1to200-N, according to the steps below.

With respect to each of the avatars in the virtual world, the search unit500searches for the history of activities in which the states of the avatar have been changed by any other avatars. Subsequently, with respect to each of the avatars in the virtual world, the calculation unit510calculates a score indicating the extent to which the states of the avatar have been changed by each of such other avatars, on the basis of the histories retrieved with respect to the avatar.

Then, with respect to each avatar, the reception control unit540selects the largest one of the scores indicating the extent to which the states of the avatar have been changed by each of other avatars. The reception control unit540controls the frequency with which the server100obtains the states of the avatar, on the basis of the selected largest score.

For example, assume that the extent to which the states of the first avatar have been changed by the second avatar is represented by a numerical value “105.” Also, assume that the extent to which the state of the first avatar has been changed by the third avatar is represented by a numerical value “120.” The larger of these values, “120,” is selected.

Then, the reception control unit540controls the frequency with which the server100obtains the states of the first avatar from the client200-1, on the basis of the selected largest value.

As is understood from the above-description, with respect to each avatar, the largest one of the frequencies with which the states of the avatar are transmitted from the server100to each of the clients200-1to200-N is set for the frequency with which server100receives the states of the avatar from the client200for operating the avatar.

Referring toFIG. 6, there is shown a flow of a process in which the control system130according to this embodiment controls communications on the basis of an activity history. The control system130performs the following process each time a predetermined time tshas elapsed. First, the search unit500, calculation unit510, and measurement unit520collaboratively perform a process of calculating a score (step S600).

Referring toFIG. 7, details of the process in step S600ofFIG. 6are shown. First, the search unit500selects a first avatar that has performed activities (step S700). The selected first avatar is defined as an avatar A. Then, the search unit500selects a second avatar that has been influenced by the activities (step S710). The selected second avatar is defined as an avatar B. A score to be calculated is defined as lA,B. The lA,Bis previously initialized to 0.

Subsequently, the search unit500searches the activity history DB12for one of activities in which the avatar A has changed the states of the avatar B during a time period between (T-ts) and T, where T is the current time (step S720). The retrieved activity is defined as int (A,B). Then, the calculation unit510determines the weight of the retrieved activity on the basis of the activity type thereof (step S730). The determined weight is defined as Wint(A,B).

Subsequently, the calculation unit510adds the weight Wint(A,B)to the halfway calculated score lA,B(step S740). If any activity in which the avatar A has changed the states of the avatar B has not been retrieved (“NO” in step S750), the process returns to step S720and the search unit500searches for such an activity.

If all the activities in which the avatar A has changed the states of the avatar B have been retrieved (“YES” in step S750), the calculation unit510determines whether searches have been made with respect to all combinations of the avatars (step S760). If searches have not been made with respect to any combination (NO in step S760), the process returns to the step S700and the search unit500continues to make searches with respect to such a combination.

If searches have been made with respect to all the combinations of the avatars (YES in step S760), the process in the step S600is complete.

Referring toFIG. 8, there is shown a specific example of the scores calculated by the calculation unit510according to this embodiment with respect to each combination of the avatars. Arranged in the lateral direction of this table are the identifiers (A, B, C, D, E and F) of avatars, which have changed the states of other avatars. Arranged in the vertical direction of this diagram are the identifiers (A, B, C, D, E and F) of avatars, whose states have been changed by other avatars.

The numerical values in the table are scores indicating the extent to which the states of each avatar have been changed. For example, the extent to which the avatar B has changed the states of the avatar A is represented by a numerical value 10. On the other hand, the extent to which the avatar B has changed the states of the avatar A is represented by a numerical value 8. These numerical values can be understood as the degrees of attention or the magnitudes of influence in the virtual world.

For example, if the avatar B has changed the states of the avatar A, it is understood that the avatar A has been significantly influenced by the activities performed by the avatar B. If the avatar B has sent a number of messages to the avatar A, it is considered that there is a high possibility that the avatar A wants to know about the avatar B. who is the sender of the messages. In this case, it is understood that the avatar A is paying a high degree of attention to the avatar B.

Referring again toFIG. 6, calculation unit510calculates the sum of the scores calculated with respect to each of the avatars (step S610). Also, in preparation for a later calculation, the calculation unit510calculates the ratio of the sum of the above-described scores calculated with respect to each avatar for a second period between (T-ts) and T to the sum of scores previously calculated with respect to each avatar for a first period between the (T-2ts) and (T-ts).

The measurement unit520measures the amount of communications between the multiple clients200and server100during the period between (T-ts) and T on the basis of the state of the communication interface102or the like (step S620). The amount of communications may be, for example, the average of proportions of the occupied communication band. Or the amount of communications may be the number of packets used by the communication interface102during communications.

Also, in preparation for the later calculation, the measurement unit520calculates the ratio of the above-described amount of communications measured with respect to the second period between (T-ts) and T to the predetermined target amount of communications. On the basis of the values calculated or measured in these ways, the transmission control unit530calculates the frequency with which the states of each avatar are transmitted from the server100to each client200(step S630). One example of this step is shown inFIG. 9.

Referring toFIG. 9, details are shown of the process in step S630ofFIG. 6. The search unit500selects the first avatar that has performed activities (step S900). The selected first avatar is defined as an avatar A. Then, the search unit500selects the second avatar that has been influenced by activities performed by the avatar A (step S910). The selected second avatar is defined as an avatar B. The score previously calculated with respect to the combination of the avatars A and B is defined as lA,B.

Subsequently, the transmission control unit530calculates the frequency of transmission of the states on the basis of the score lA,B(step S920). This transmission frequency refers to the frequency with which the states of the avatar A are transmitted from the server100to the client200for operating the avatar B. A specific example of calculation of this frequency will be described below.

Here, an example of calculation of a transmission cycle, which is the reciprocal of the transmission frequency, is shown. First, the transmission control unit530previously calculates a reference value that will serve as a reference for calculating a transmission cycle. If a period between (T-ts) and T is defined as a second period, this reference value is calculated on the basis of a reference value corresponding to a first period between (T-2ts) and (T-ts), which is a period immediately before the second period.

Here, the reference value corresponding to the second period is defined as K2and the reference value corresponding to the first period is defined as K1. The ratio of the sum of the scores with respect to the second period to the sum of the scores with respect to the first period is defined as P1/P2(which is previously obtained in step S610). Also, the ratio of the above-described amount of communications calculated with respect to the second period between (T-ts) and T to the predetermined target amount of communications is defined as Q2/Qs(which is previously obtained in step S620).

The transmission control unit530calculates the product of the ratio P1/P2and ratio Q2/Qs. Then, the transmission control unit530multiplies the reference value K1corresponding to the first period by the calculated product so as to calculate the reference value K2corresponding to the second period. This calculation is represented by the following formula:
K2=K1×P1/P2×Q2/Qs

The reference value K2is increased as the sum of the extents to which an avatar has changed the states of another avatar is increased. The reference value K2is also increased as the amount of communications is increased.

Subsequently, the transmission control unit530divides this reference value by the score lA,B, which is previously calculated with respect to the combination of the avatars A and B. Then, the transmission control unit530sets the value obtained by performing this division for the frequency with which the states of the avatar A are transmitted from the server100to the client200for operating the avatar B.

Here, the ratio between the score sums, P1/P2, is used to calculate the reference value. This is intended to adjust the frequency with which the states of each avatar are transmitted, according to changes in the sum (it is assumed that this sum is in proportion to the total amount of communications) of the scores. Also, the ratio between the total amounts of communications, Q2/Qs, is used to calculate the reference value. This is intended to make the communication amount close to the target communication amount. Thus, the frequency with which the states of each avatar are transmitted is increased as much as possible while maintaining the total amount of communications at a given level.

The control system130repeats the above-described steps with respect to all combinations of the avatars (step S930). Since the reference value is a constant value regardless of which avatars are combined, it is sufficient to calculate the reference value only once.

Referring toFIG. 10, an example is shown of the downlink synchronization cycle calculated by the transmission control unit530according to this embodiment. The states of the avatar B are transmitted from the server100to the client200for operating the avatar A in cycles of, e.g., 0.18 sec. The states of the avatar A are transmitted from the server100to the client200for operating the avatar B in cycles of, e.g., 0.225 sec. Each blank field indicates that there is no relevant history. In comparison withFIG. 8, it is understood that the state update cycle is shortened as the score indicating the extent to which the states have been changed becomes larger.

Referring again toFIG. 6, if the calculated frequency, with which the states are to be transmitted, is out of a predetermined frequency range, the transmission control unit530modifies this frequency so that the frequency falls within the range (step S635).

Referring toFIG. 11, an example is shown of the downlink synchronization period modified by the transmission control unit530according to this embodiment. The states of the avatar B are transmitted from the server100to the client200for operating the avatar A in modified cycles of, e.g., 0.20 sec. The states of the avatar A are transmitted from the server100to the client200for operating an avatar F in modified cycles of, e.g., 10 sec.

In this case, the range of the cycle is from 0.2 sec. to 10 sec. This is because, even if the cycle range is set to a value smaller than 0.2 sec., the states may not be transmitted due to the limitation of performance of the server100, communication network15, and clients200or because it is meaningless to set the cycle range to a value smaller than 0.2 sec. since such a short cycle exceeds the limit of the perception ability of a user who attempts to experience the virtual world. This is because, even if the cycle range is set to a value larger than 10 sec., it is not so meaningful in terms of a reduction in communication traffic or because it is not appropriate to set the cycle range to such a large value since the update of the virtual world is delayed too much.

Referring again toFIG. 6, the transmission control unit530controls the data transmission frequency by operating the communication interface102according to the calculated cycle (frequency) (step S645). Thereafter, with respect to each avatar, the reception control unit540sets the frequency with which the server100receives the states of the avatar from the client200for operating the avatar (step S650). This step will be described with reference toFIGS. 11 and 12.

First, the reception control unit540selects, with respect to each avatar, the largest frequency (shortest cycle) from among the frequencies with which the server100transmits the states of the avatar to the clients200for operating other avatars. For example, the reception control unit540selects the shortest cycle, 0.225, from among the cycles listed on a column A shown inFIG. 10.

Then, the reception control unit540sets the selected highest frequency (shortest period) for the frequency (cycle) with which the server100receives the states of the avatar from the client200for operating the avatar. As a result, as shown inFIG. 12, the cycle with respect to the avatar A is set to 0.225. This means that the server100receives the states of the avatar A from the client200for operating the avatar A in cycles of 0.225 sec.

By repeating the above-described process with respect to each avatar, the reception control unit540sets, with respect to each avatar, the frequency with which the server100receives the states of the avatar from the client200for operating the avatar.

Referring back toFIG. 6, if any of the set frequencies, with which the server100is to receive the states, is out of a predetermined frequency range, the reception control unit540modifies this frequency so that the frequency falls within the range (step S655).

FIG. 13shows an example of the uplink synchronization cycle modified by the reception control unit540according to this embodiment. Cycles in which the server100receives the states of the avatar B are changed from 0.18 sec. to 0.2 sec. Cycles in which the server100receives the states of the avatar F are set to the largest value, 10 sec. The reason the range of the reception frequency is set is similar to that for the transmission frequency. For example, this is because too high a frequency is inappropriate in terms of performance of the server100or clients200.

Reception control unit540controls the data reception frequency by operating the communication interface102according to the set cycle (frequency) (step S660inFIG. 6).

Referring toFIG. 14, an example is shown of a hardware configuration of a server100according to this embodiment. The server includes a CPU peripheral unit, an input/output unit, and a legacy input/output unit. The CPU peripheral unit includes a CPU1000, a RAM1020, and a graphic controller1075, which are coupled via a host controller1082. The input/output unit includes a communication interface1030, a hard disk drive1040, and a compact disc-read-only memory (CD-ROM) drive1060, which are coupled to the host controller1082via an input/output controller1084. The legacy input/output unit includes a ROM1010, a flexible disk drive1050, and an input/output chip1070, which are coupled to the input/output controller1084.

The host controller1082couples the RAM1020and the CPU1000and is configured to access the graphic controller1075and the RAM1020at a high transfer rate. The CPU1000operates according to programs stored in the ROM1010and RAM1020so as to control each component. The graphic controller1075acquires image data generated by the CPU1000or the like on a frame buffer provided in the RAM1020and displays the acquired image data on a display unit1080. Alternatively, the graphic controller1075may include a frame buffer for storing image data generated by the CPU1000or the like.

The input/output controller1084couples the host controller1082, and the communication interface1030(which is a relatively high-speed input/output device), the hard disk drive1040, and the CD-ROM drive1060. The communication interface1030is one example of the communication interface102and communicates with an external device via a network. The hard disk drive1040is one example of the storage unit104and stores a program and data to be used by the computer. The CD-ROM drive1060reads a program or data from the CD-ROM1095and provides the read program or data to the RAM1020or hard disk drive1040.

Also coupled to the input/output controller1084are the ROM1010and relatively low-speed input/output devices, such as the flexible disk drive1050and the input/output chip1070. The ROM1010stores a boot program to be executed by the CPU1000when the computer is booted up, a program dependent on the hardware of the computer, and the like. The flexible disk drive1050reads a program or data from the flexible disk1090and provides the read program or data to the RAM1020or hard disk drive1040via the input/output chip1070. Coupled to the input/output chip1070, for example, via a parallel port, a serial port, a keyboard port, a mouse port, or the like are the flexible drive1050and various types of input/output devices.

A program to be provided to the computer by the user is stored in a recoding medium, such as the flexible disk1090, the CD-ROM1095, or an integrated circuit (IC) card. The program is read from such a recording medium via the input/output chip1070and/or input/output controller1084and installed to the computer so as to be executed. Operations that the program causes the computer or the like to execute are the same as the operations of the server100described with reference toFIGS. 1 to 13and will not be described.

The above-described program may be stored in an external storage medium. Besides the flexible disk1090and CD-ROM1095, storage media include optical recording media such as a digital versatile disc (DVD) and a phase change rewritable disk (PD), magneto-optical recording media such as a MiniDisc (MD), tape media, and semiconductor memories such as an IC card. Further, a storage device, such as a hard disk or a RAM, provided in a server system connected to a dedicated communication network or the Internet may be used as a recording medium so that the program is provided to the computer via such a network.

As described above, according to this embodiment, the frequencies with which the clients and server communicate with one another to create a virtual world are controlled on the basis of the extents to which each avatar has changed the states of other avatars in the virtual world. Thus, information the user wants is properly selected and updated with a high frequency; information that is not so important is updated with a lower frequency. As a result, the resource of the communication network is effectively used.

Thus, for example, the appearance, position, orientation, and the like of an avatar that has just made an assault in a game of a virtual world are more frequently updated on the screen. Also, the appearance, position, orientation, and the like of other avatars included in an image indicating the sight of the avatar in the virtual world are frequently updated on the screen. On the other hand, the appearance, position, orientation, and the like of other avatars not included in an image indicating the sight of the avatar in the virtual world are not updated frequently on the screen. Also, the states of avatars not related to the assault or sight are hardly communicated between the server100and clients200.

The above-described control provides, for example, the following advantages. A virtual world with a high real-time nature is created efficiently using an existing communication network or server. Thus, additional capital spending may be reduced while creating a virtual world of high quality. Also, a virtual world including more avatars is created while using the existing communication network or server. Thus, additional capital spending may be reduced while creating a more large-scale virtual world.

While the present invention has been described with reference to a preferred embodiment thereof, the technical scope of the invention is not limited thereto. It is apparent for those skilled in the art that various changes and modifications can be made to the embodiment. For example, at least part of the functions of the server100may be provided in each of the clients200-1to200-N. It is apparent from the description and the appended claims that an embodiment to which such a change or modification is within the scope of the invention as set forth in the following claims.