Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR ASSIGNING A SERVER TO USERS IN A MULTIPLAYER ELECTRONIC GAME
Document Type and Number:
WIPO Patent Application WO/2023/055288
Kind Code:
A1
Abstract:
A method of assigning a server to a plurality of users in a multiplayer electronic game is disclosed. The method includes measuring a network characteristic such as a ping value for a network connection between computing devices associated with a plurality of users and a plurality of servers to obtain corresponding network values; assigning corresponding server tags to each of the plurality of users based on the respective network values, each server tag identifying a corresponding server; and assigning a server to the computing devices associated with each of the plurality of users based on the corresponding network values and/or a capacity of all servers corresponding to assigned server tags.

Inventors:
FENG LUSHA (SG)
Application Number:
PCT/SG2022/050316
Publication Date:
April 06, 2023
Filing Date:
May 13, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GARENA ONLINE PRIVATE LTD (SG)
International Classes:
A63F13/352
Domestic Patent References:
WO2020247484A12020-12-10
Foreign References:
CN109966736A2019-07-05
CN111135586A2020-05-12
US20060258463A12006-11-16
Attorney, Agent or Firm:
PIZZEYS PTE LTD (SG)
Download PDF:
Claims:
CLAIMS

1. A method comprising assigning a server to a plurality of users in a multiplayer electronic game, the method comprising: measuring a network characteristic for network connections between a computing device associated with each of a plurality of users and a plurality of servers to obtain corresponding network values of the network connections; assigning a server tag to each of the plurality of users based on a lowest network value obtained for the corresponding user, each server tag identifying a corresponding server having the lowest network value for the network connection with the computing device associated with the corresponding user; comparing the server tags assigned to the plurality of users to determine whether there is a majority of a same server tag assigned; and when there is a majority of the same server tag assigned to the plurality of users, assigning a corresponding server identified by the same server tag to the computing devices associated with the plurality of users.

2. The method according to claim 1 wherein the network characteristic is a ping value.

3. The method according to any preceding claim wherein the network values are reevaluated for each user at the end of a stage of the game, and if the network value for a user has changed by a predetermined amount at the end of the stage of the game, a new server tag is assigned to the user based on a new network value for the user.

4. The method according to claim 3 wherein whether a new server tag is assigned depends on one or more of: whether the plurality of users was formed by agreement; the value of the network value determined during the preceding stage; a capacity of servers; and number of users awaiting team allocation.

5. The method according to claim 1 wherein, where there is no majority, the assigned server is assigned based on a capacity of all servers corresponding to assigned server tags.

6. The method according to any preceding claim wherein the plurality of users is formed before the commencement of the game.

7. The method according to claim 6 wherein the plurality of users is formed by agreement among the corresponding users to form a group.

8. The method according to any of claims 1 to 6 wherein the plurality of users is formed through allocation of users to a group.

9. The method according to claim 8 wherein a user is allocated to the group based on the user’s server tag.

10. The method according to claim 8 or claim 9 wherein a user is allocated to the group based on an allocation waiting time for the user.

11. The method according to any preceding claim wherein the server tag correlates to a physical location of servers.

12. The method according to any preceding claim wherein the assigned server is a server located at a physical location associated with the corresponding server tag.

13. A system comprising one or more computers and one or more storage devices storing computer-readable instructions that, when executed by the one or more computers, cause the one or more computers to perform the method of any one of claims 1 to 12.

14. One or more non-transitory computer storage media storing instructions that, when executed by one or more computers, cause the one or more computers to perform the method of any one of claims 1 to 12.

Description:
METHOD FOR ASSIGNING A SERVER TO USERS IN A MULTIPLAYER

ELECTRONIC GAME

TECHNICAL FIELD

[0001] The current disclosure pertains to electronic games, and in particular, assigning a server to users in a multi-player electronic game.

BACKGROUND

[0002] Many modern electronic games are provided as networked games and are often provided as simultaneous playing experiences for multiple players. Certain of these games involve the grouping of players into teams who co-operate or compete during gameplay, but who share a common playing environment which is provided by a gaming server.

[0003] Each of the players for such games will connect to the gaming server via a computer network. Due to the vast number of different networking infrastructures, the characteristics of the computer network can differ widely from user to user.

[0004] Many of these networked games may require large amounts of data to be transmitted between the user and the server, often during gameplay. Techniques such as buffering which may be used in other applications to ameliorate poor network performance, cannot be applied due the large degrees of freedom available to the users during gameplay. In such circumstances even small differences in network characteristics between users can provide for vastly different gameplay experiences.

[0005] In the instance where users interact as a group, either co-operatively or competitively, it is necessary, for the purposes of the gameplay, that each user be presented with aspects of the same game environment. Therefore, if one of the players of the group experiences a delay in their network connection, causing a pause in the gameplay, this pause would have to be effected for all of the players of the group to maintain the simultaneity of their respective gameplay experience. However, this may significantly degrade the gameplay experience for all the users. SUMMARY

[0006] According to a first aspect, there is provided a method comprising assigning a server to a plurality of users in a multiplayer electronic game, the method comprising measuring a network characteristic for network connections between a computing device associated with each of a plurality of users and a plurality of servers to obtain corresponding network values of the network connections; assigning a server tag to each of the plurality of users based on a lowest network value obtained for the corresponding user, each server tag identifying a corresponding server having the lowest network value for the network connection with the computing device associated with the corresponding user; comparing the server tags assigned to the plurality of users to determine whether there is a majority of a same server tag assigned; and when there is a majority of the same server tag assigned to the plurality of users, assigning a corresponding server identified by the same server tag to the computing devices associated with the plurality of users.

[0007] The network characteristic may be a ‘ping’ value. As used herein the ‘ping’ value refers to a roundtrip timing for a packet such as an ICMP packet. The timing may be an average timing taken over a predetermined number of packets, e.g. 100 packets. The network values may correlate to ping values.

[0008] The network values may be re-evaluated for each user at the end of a stage of the game, and if the network value for a user has changed by a predetermined amount at the end of the stage of the game, a new server tag may be assigned to the user based on a new network value for the user. Whether a new server tag is assigned may depend on one or more of whether the team was formed by agreement; the value of the network value determined during the preceding stage; a capacity of servers; and number of users awaiting team allocation.

[0009] Where there is no majority, the server may be assigned based on a capacity of all servers corresponding to assigned server tags. Potential servers may be tested for assignment in sequence wherein a following server in the sequence is tested for assignment if the previous server lacks capacity. The sequence may correlate to a number of tags assigned to the plurality of users.

[0010] The plurality of users may correspond to part and/or all of a team in the game. The plurality of user may correspond to all users participating in an instantiation of the game. For example, the game may comprise a number of teams where each member of a team works co- operatively with the other members of their team, but a number of teams compete against each other within the game. In an embodiment, the plurality of users refers to all users for a given instantiation of the game, whether competing or co-operating with one another.

[0011] The plurality of users may be formed before the commencement of the game.

[0012] The plurality of users may be formed by agreement among the corresponding users to form a group.

[0013] The plurality of users may be formed through allocation of users to a group. The users may be allocated to the group based on a user’s server tag. Alternatively, or in addition, users may be allocated to the group based on an allocation waiting time for a user.

[0014] The server tag may correlate to a physical location of servers. The assigned server may be a server located at a physical location associated with the corresponding server tag.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015] The accompanying Figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views and which together with the detailed description below are incorporated in and form part of the specification, serve to illustrate various embodiments, by way of example only, and to explain various principles and advantages in accordance with a present embodiment.

[0016] Figure 1 is a schematic diagram illustrating a number of users connecting to a networked electronic game according to an embodiment;

[0017] Figure 2 illustrates a team of users and three server rooms with corresponding servers to illustrate an example of an operation of an embodiment;

[0018] Figure 3 is a flow diagram illustrating a method of assigning a server to a plurality of users in a multiplayer electronic game according to an embodiment; and

[0019] Figure 4 is a flow diagram illustrating a method of allocating teams to a game according to an embodiment. DETAILED DESCRIPTION

[0020] The following detailed description is merely exemplary in nature and is not intended to limit the claims or the application and uses of embodiments. Furthermore, there is no intention to be bound by any theory presented in the preceding background or the following detailed description.

[0021] It is the intent of certain embodiments to teach a method for assigning a server to users in a multiplayer electronic game.

[0022] An embodiment involves assigning a server to a plurality of users, such as a team or other group (which may be co-operative, competitive or a mixture of the two), based on network characteristics of network connections between the users’ computing devices and a plurality of servers. Each user is allocated a server tag which identifies one of the plurality of servers as the preferential server for that user. This server tag may be assigned based on a measurement of the network characteristic. For example, the ping values of the network connections between each user’s computing device and each available server may be measured, and the tag assigned to each user corresponding to the server which has the lowest ping value for the network connection with the user’s computing device.

[0023] If a majority of the users within the team share a server tag, then the server corresponding to that tag may be assigned to all the users in the team. Alternatively if there is no majority, then the server will be assigned based on server capacity. In an embodiment, the next available server is assigned to the team. In a further embodiment, this may be the next available server with the corresponding lowest ping value (or other most favourable network characteristic, as the case may be).

[0024] In an embodiment, the ping value (or other network connection meter) may be determined for a server room. In this instance a server room may be physical location housing a number of servers which share common or similar network connections so that, generally speaking, a network characteristic determined for the room may apply for all physical servers at that location. The step of assigning a server to the team may then comprise determining a server room according to the tags, or capacity of server rooms, and assigning one of the servers from the selected room to the team. [0025] Online games such as multiplayer online battle arena (MOBA) games involve teams of players completing against one another. By assigning the same server to the team (and preferably to each team engaged in the same gameplay) based on network characteristics, embodiments may be able to minimise the risk that a bad network connection for one of the players will adversely affect the gameplay experience for all the players. It has been found that the average ping value measured over a predetermined number of packets such as 100 packets, may provide a reliable metre of network reliability. Therefore, if the majority of the users of a team share a server tag based on a minimized ping value, then that server may be assigned to all the players in the team.

[0026] In an embodiment, the game may involve a number of teams where members of the same team play co-operatively, but different teams compete with one another. In such an embodiment, the teams may be formed and allocated a server tag as described. Different teams are then allocated to servers according to their tags, or server capacity, as described. For example, if two teams have the same server tag, then they may be allocated to the same server.

[0027] Teams of users may be formed by agreement between the users, by automatic allocation, or a combination of these two mechanisms. Where users are allocated automatically, the system will attempt to match the user with a team having the same, or similar, network characteristics. However, where this ‘matchmaking’ process is taking too long, then the user may be assigned to the next available team. For example if the user is waiting longer than one minute, then that user may be automatically assigned to a team. Other timeout values may also be used, depending on circumstances.

[0028] The game may involve a number of stages (such as levels), and each user’s network characteristic may be evaluated during each stage. In an embodiment, if the team has been formed by agreement between the users, then the respective server tags will not change even if the network value exceeds a predetermined maximum (for example an average of 200 ms for a ping value). If the team has been formed, even partly, through automatically allocation, then the server tag may be changed if the network characteristic changes during the preceding stage. For example, if the user’s ping value exceeds 200 ms for a portion of the stage, then the server tags may be re-evaluated to determine if a different server tag (corresponding to a lower ping value) may be more appropriate, and the team reformed on this basis. Similarly, if the team formed by agreement is dissolved, then server tags may be re-evaluated if the users’ network characteristics have exceeded a predetermined value for a stage of the game. [0029] It has been found that a predetermined value of 200 ms for the ping value may justify re-assigning server tags, and then reassigning the user to a different team as this value may significantly affect the gameplay experience.

[0030] Figure 1 is a schematic diagram illustrating a number of users connecting to a networked electronic game according to an embodiment. The system 10 illustrated in Figure 1 comprises a plurality of users 12A, 12B, 12C, . . ., 12N with corresponding computing devices 14A, 14B, 14C, ..., 14N. It is to be realised that the user computing devices 14A, 14B, 14C, ..., 14N may be desktop, table, mobile or other kinds of computing devices.

[0031] Each of the users use their respective computing device to connect to a network 32 which is here drawn amorphously, but it is to be realised that embodiments are not limited to the type of computing network connection involved and both wired and wireless networks are possible. Furthermore, in this embodiment the network is a TCP/IP network, but other embodiments will apply to other kinds of networks.

[0032] A load server 16 is connected to the network 32 and, in this embodiment, operates to regulate and control network traffic by allocating servers to users’ computing devices according to embodiments. The server 18 includes a data storage 18 on which instructions are stored. The server 18 further includes other typical computing elements such as interfaces, processors etc. which are not illustrated here for the sake of simplicity.

[0033] The system 10 comprises three server rooms 20, 24 and 28 which are connected to the network 32. In this embodiment, each server room comprises three servers so server room 20 comprises servers 22A, 22B, and 22B; server room 24 comprises servers 26A, 26B and 26C; and server room 28 comprises servers 30A, 30B and 30C. In this embodiment the server rooms 20, 24 and 28 represent corresponding physical locations and the servers located within a server room therefore generally share similar network characteristics. In a further embodiment, servers may be allocated to virtual rooms according to their respective network characteristics.

[0034] Each of the servers of the system 10 comprises storage and the other elements necessary to operate as a server, and will not be further referred to herein.

[0035] Figure 2 illustrates a team 40 of users and three server rooms with corresponding servers to illustrate an example of an operation of an embodiment. In this embodiment, the team 40 comprises five users 12A, 12B, 12C, 12D and 12E operating corresponding computing devices 14A, 14B, 14C, 14D and 14E. The server rooms 20, 24 and 28 illustrated in Figure 1 are the server rooms available so that the team 40 may be allocated to one of the servers in those server rooms.

[0036] The team 40 may represent users who will play co-operatively, competitively or a mixture of both.

[0037] The operation of an embodiment will be discussed with reference to the process (or workflow) 50 of Figure 3 operating on the devices illustrated in Figure 2. In this embodiment, the process 50 is carried out by the load server 16. However, it is to be realised that it is not necessary to have a dedicated load server; instead the functionality to be discussed below may equally be carried out by one of the servers in the server rooms or the functionality may the distributed among a number of different servers located at different physical locations.

[0038] The process 50 illustrated in Figure 3 begins at step 52 and moves on to step 54 where each new user is assigned a server tag. A slightly different process may be followed for users who are already part of the game, and the different process in this respect will be described in further detail below.

[0039] For a new user joining the game, the load server 16 will determine a network characteristic of a network connection between that user and each of the server rooms. In this embodiment, the average ping value for the time taken for an ICMP packet to complete a round trip from the user’s computing device (e.g. 14A in Fig. 2), taken as the average for 100 packets, will be measured between the user’s computing device and each of the server rooms 20, 24 and 28 (referred to here as the “ping measurement” and the “ping value”). In further embodiments other network characteristics may be used instead, or as well as, the ping value.

[0040] The user (12A, in this example) will be assigned the tag corresponding to the server room which has the lowest ping value. If other network values are used then a suitable comparison will be performed to determine the most favourable value for the measurement used.

[0041] As illustrated in Fig. 2, the server room 20 has been given the tag “a”, server room 24 has been given the tag “ ” and server room 28 has been given the tag “y”. It is to be realised that the tags may be arbitrary and may merely serve to identify and distinguish server rooms. Furthermore, although this embodiment operates at the level of server rooms, other embodiments may apply tags directly to individual physical servers, or to virtual servers, or groups of virtual servers, established in the cloud.

[0042] This process is repeated for each new user joining the game. For the sake of illustration, it is supposed that each of the five users illustrated in Fig. 2 are new users, and the following ping values are obtained for each user and each server room:

[0043] In this example, the server tag is assigned according to the lowest ping value so that server tags are assigned as follows:

[0044] The process 50 will then proceed to the following step, step 56, where a determination is made as to whether a team has been formed with the user. It is to be realised that this step is particularly applicable to those types of games such as MOBAs where it is necessary to compete as a member of a team. In these types of games, there are two basic mechanisms for forming teams. Either the users form a team prior to joining the game, or ask to be allocated to a team. A combination of the two mechanisms is also possible where a group of users assemble, but they do not have enough members to form a complete team, in which case the remaining members of the team are allocated automatically.

[0045] At step 56, if the users have pre-formed a complete team, then the process will proceed to step 66 where the server tags for all users in the team are compared. At the following step, step 68, a determination is made as to whether there is a majority of any particular server tag among the tags assigned to the users of the team. For example, with reference to the values provided above, and assuming that all the users 12A to 12E form a complete team, then there are three a tags, one p tag and one y tag, and therefore there is a majority of a tags.

[0046] If, as in this example, there is a majority of one of the tags among the team, then the process will proceed to step 72 where the server is assigned according to the majority tag. In the example considered, since the majority tag is the a tag, a server corresponding to the a tag will be assigned to the entire team. Since the a tag corresponds to the server room 20, one of the servers 22A, 22B or 22C will be assigned to the team (depending on capacity of the servers).

[0047] If all of the servers 22A, 22B and 22C in server room 20 are full, then the team will be assigned to the next available server with capacity, which may be in a different server room (i.e. with a different tag). This may avoid unnecessary waiting for the users.

[0048] If it is determined at step 68 that there is no particular majority tag for the team, then, at step 70, the next available server with capacity is assigned to the team. In an embodiment, where applicable, the servers with the most number of (potentially equal) tags in the team will be considered first. In such an embodiment, the tags of the member of the team are considered for assigning. For example, if members of a team have a, and y tags, first all servers corresponding to the a tag are considered. If all of those are full, then all servers corresponding to the p tag are considered and if all of those are full, then all servers corresponding to the y tag are considered. In an embodiment, servers corresponding to tags which none of the members of the team have, are not considered. The number of members sharing a tag may be taken into account when considering the order in which servers corresponding to tags should be considered for assignment. In this embodiment, servers with tags not corresponding to at least one member of the team are not considered for assignment.

[0049] Once a server has been assigned, the process proceeds to step 74 where the game, or the next level or match within the game, as appropriate, will start. [0050] Referring back to step 56 where a determination is made whether the users have already formed their team, if no team, or no complete team, has been pre-formed by the users, then the load server 16 will allocate users to teams to form complete teams. In the first step of this process, step 58, a determination is made as to whether the user has been waiting longer than a predetermined time. In this embodiment, the predetermined time is set at one minute, but in other embodiments the predetermined time may be set differently.

[0051] If it is determined at step 58 that the user has been waiting longer than the predetermined time, then the process proceeds to step 64 where the user is assigned to a team with available allocations. Thereafter, the process will proceed to step 62 to determine if the team is full or if there are still available allocations waiting to be filed. If the team is full, then the process proceeds to step 66. Step 66 and the process from that step onwards has been discussed above; the process proceeds in the same manner then with the team as when the team is pre-formed by the users.

[0052] If a determination is made at step 62 that the team is not yet full, the process will return to step 58 to allocate users to teams.

[0053] If it is determined at step 58 that the user has been waiting less than the predetermined time, then, at step 60, an attempt will be made to allocate the user to teams with users having the same tag. In this process, a determination will be made of the majority tag for the existing members of the team, and a user will be selected, if possible, having the same tag. It may be desirable to increase the number of users with the same tag to avoid or minimise the risk that disparate network characteristics between members of the same team will adversely affect the gameplay for all the users.

[0054] If there is no clear tag majority for a team, then the user with the most favourable network value (in this case, the user with the lowest ping value out of the available users) may be selected to fill at least one of the available team allocations and the number of tags reevaluated to determine if one of the tags now has a majority.

[0055] Step 74 represents the beginning of the game, or then next level in the game, as appropriate, and step 76 the end of that level. Unless the game is then ended or the team has been dissolved, at the following step, step 78, the ping values for all the users in the team will be re-evaluated. For those users whose ping values have changed significantly, the assigned tags will be re-assigned and they may be re-assigned to different teams. For example if it is determined at step 78 that a user’s ping value during the preceding level or game has exceeded 200 ms for the server to which the user is currently assigned, then the user’ s tag may be changed and they may be reassigned to another team. In certain embodiments it has been found that a ping value exceeding 200 ms may significantly influence the quality of gameplay. By reassessing the various ping values and potentially assigning a new server to the user, not only the gameplay for this user, but also the gameplay for the other users of the erstwhile team, may be improved.

[0056] In further embodiments other factors may be taken into consideration when determining whether to assign a new server to the user, e.g. the user may be assigned to a new server and a new team only if their participation of the previous team was not by agreement. The user may only be assigned to a new server if the new server has a predetermined capacity (such as a predetermined number of users). Similarly, the user may only be reassigned if the number of users awaiting team allocation exceeds a predetermined number as this may increase the chances that the new team to which the user is assigned is more favourable.

[0057] Once the ping values and server tags have been re-evaluated for the team members, where necessary, the process will return to the start 80/52. Then, as described, server tags are determined for any new users which have joined. It is to be realised, that the process of allocating tags and the team (i.e. steps 54 through to 72) may occur while a game or level is being played by other uses, and may occur as soon as users log on to the load server 16.

[0058] Figure 4 illustrates a process 100 of allocating teams to a game according to an embodiment. It is to be realised that the process 100 is similar to the process 50 of Figure 3, but teams are considered in place of users.

[0059] The process starts at step 152 and at the following step, step 154, tags are assigned to each team. It is to be realised that the tag assigned to a team occurs according to the process 50 of Figure 3 where the server assigned to the team at step 70 or step 72 corresponds to the tag for the team.

[0060] At the following step, step 156, it is determined whether a game has been formed by agreement. If all the places for a game have been filled by agreement among the players, then the process will proceed to step 166 where a comparison is made of all the tags of the teams in the game. At step 168 a determination is made if there is a majority for one tag. If there is a majority, then at step 172, the game is assigned to the server corresponding to the majority tag. If there is no particular majority tag, then the teams are assigned to servers according to capacity among the existing tags for the teams.

[0061] At step 174 the game will start and once completed (step 176), tags for teams may be re-evaluated at step 178 if the ping value (or other network metric) has changed.

[0062] Turning back to step 156, if there are spaces in the game remaining for allocation by the load server 16, then the process proceeds to step 158. If it is determined at step 158 that the team has been waiting longer than a predetermined time (in this case more than 1 minute, but other times could be used), then the team will be allocated to the next available game (step 164). However, if the team has not been waiting longer than the predetermined time, then, at step 160, the load server 16 will wait until a team with the same tag is available for allocation to a game.

[0063] At step 162 a determination is made as to whether the game is full. If the game is full, the process will proceed to step 166 and proceed as described above. However, if the game is not full at step 162, the process will return to step 158.

[0064] In this manner, embodiments may be applied to games require two or more teams which compete or co-operate within a particular game. Although the term “game” has been used in the description above, it is to be realised that the same process may apply to a part of a game such as a level, or across a number of related games. The process 100 of Figure 4 may not apply to games where players do not compete in teams.

[0065] Furthermore, in certain examples, all user allocations in a game may be filled by agreement or by invitation to a particular game. In this case, no comparison of network metrics may be made, and all applicable users may be allocated to a game running on a particular server regardless of their network characteristics. This may apply to games involving teams or those not involving teams.

[0066] Embodiments may be implemented in a game that may be operable using a variety of devices or game systems. For example, a device may be a personal computer, a home entertainment system, a portable gaming device, or a mobile computing device. The present methodologies described herein are fully intended to be operable on a variety of devices or game systems. Any hardware platform suitable for performing the methodologies described here is suitable for use with embodiments. Computer-readable storage media refer to any medium or media that participate in providing instructions to a CPU for execution. Such media can take many forms, such as but not limited to, non-volatile and volatile media including optical or magnetic disks and dynamic memory, respectively. Common forms of computer- readable media include, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, any other magnetic medium, a CD-ROM disk, digital video disk (DVD), any other optical medium, RAM, PROM, EPROM, a FLASHEPROM, any other memory chip or cartridge.

[0067] Various forms of transmission media may be involved in carrying one or more sequences of one or more instructions to a CPU for execution. A bus carries the data to system RAM, from which a CPU retrieves and executes the instructions. The instructions received by system RAM can optionally be stored on a fixed disk either before or after execution by a CPU.

[0068] Unless specifically stated otherwise, and as apparent from the following, it will be appreciated that throughout the present specification, discussions utilizing terms such as “receiving”, “identifying”, ‘initiating”, “tagging”, “transmitting”, “running”, “incrementing”, “determining”, “assigning”, “approving”, “selecting”, “sending”, “calculating”, “determining”, “replacing”, “generating”, “initializing”, “outputting”, or the like, refer to the action and processes of a computer system, or similar electronic device, that manipulates and transforms data represented as physical quantities within the computer system into other data similarly represented as physical quantities within the computer system or other information storage, transmission or display devices.

[0069] In the application, unless specified otherwise, the terms "comprising", "comprise", and grammatical variants thereof, intended to represent "open" or "inclusive" language such that they include recited elements but also permit inclusion of additional, non-explicitly recited elements.

[0070] It will be apparent that various other modifications and adaptations of the application will be apparent to the person skilled in the art after reading the foregoing disclosure without departing from the spirit and scope of the application and it is intended that all such modifications and adaptations come within the scope of the appended claims.