Match making based on proximity measures between devices
Abstract
This record has no abstract on file.
Term
Term ended
Expired 20 April 2024, 2.4 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
6 claims: 6 independent, 0 dependent
- 1ゲームをプレイすることができるコンピュータデバイスにおいて、複数のゲームからプレイすべきゲームを選択する方法であって、前記複数のゲームのセッションが複数の他のコンピュータデバイスにより生成される方法において、 前記コンピュータデバイスからゲームの突合せシステムに複数のゲームの分類を要求するステップであって、当該要求の中には前記複数の他のコンピュータデバイスおよび前記コンピュータシステムの地理的な位置情報を含むステップと、 前記ゲームの突合せシステムにより前記コンピュータデバイスと前記複数の他のコンピュータデバイスとの間の距離を計算し、 前記コンピュータデバイスおよび前記ゲームの突合せシステムのいずれかにより複数のゲームを、前記ゲームの突合せシステムにより計算された距離に基づいて分類するステップと、 当該得られたゲームの分類をコンピュータデバイスにおいて表示するステップと を備えたことを特徴とする方法。
- 2前記計算するステップの前に分類の対象となるゲームを、前記ゲームの突合せシステムにおいてフィルタリングするステップをさらに有することを特徴とする方法。
- 3複数のコンピュータデバイスと結合するゲームの突合せシステムであって、前記複数のコンピュータデバイスの各々は、複数のゲームをプレイすることが可能で、プレイすべきゲームを前記複数のゲームの中から選択し、前記複数のゲームのセッションが複数の他のコンピュータデバイスにより生成されるゲームの突合せシステムにおいて、 前記コンピュータデバイスから複数のゲームの分類についての要求を受け取るステップであって、当該要求の中には前記複数の他のコンピュータデバイスおよび前記コンピュータシステムの地理的な位置情報を含む、受け取る手段と、 前記ゲームの突合せシステムにより前記コンピュータデバイスと前記複数の他のコンピュータデバイスとの間の距離を計算する手段と を備えたことを特徴とするゲームの突合せシステム。
- 4複数のコンピュータデバイスと結合するゲームの突合せシステムであって、前記複数のコンピュータデバイスの各々は、複数のゲームをプレイすることが可能で、プレイすべきゲームを前記複数のゲームの中から選択し、前記複数のゲームのセッションが複数の他のコンピュータデバイスにより生成されるゲームの突合せシステムにおいて、 前記コンピュータデバイスから複数のゲームの分類についての要求を受け取るステップであって、当該要求の中には前記複数の他のコンピュータデバイスおよび前記コンピュータシステムの地理的な位置情報を含む、受け取る手段と、 前記ゲームの突合せシステムにより前記コンピュータデバイスと前記複数の他のコンピュータデバイスとの間の距離を計算する手段と、 当該計算された距離に基づいて前記複数のゲームを分類する手段と、 当該得られた前記複数のゲームの分類を前記コンピュータデバイスに送る手段と を備えたことを特徴とするゲームの突合せシステム。
- 5複数のゲームをプレイすることが可能で、プレイすべきゲームを前記複数のゲームの中から選択し、前記複数のゲームのセッションが複数の他のコンピュータデバイスにより生成されるコンピュータデバイスにおいて、 ゲームの突合せシステムに複数のゲームの分類についての要求を送る手段であって、当該要求の中には前記複数の他のコンピュータデバイスおよび前記コンピュータシステムの地理的な位置情報を含む、送る手段と、 前記コンピュータデバイスおよび複数の他のコンピュータデバイスの地理的な位置情報に基づいて決定された複数のゲームの分類を前記ゲームの突合せシステムから受け取る手段と、 当該受け取った複数のゲームの分類を表示する手段と を備えたことを特徴とするコンピュータデバイス。
- 6複数のゲームをプレイすることが可能で、プレイすべきゲームを前記複数のゲームの中から選択し、前記複数のゲームのセッションが複数の他のコンピュータデバイスにより生成されるコンピュータデバイスにおいて、 ゲームの突合せシステムに複数のゲームの分類についての要求を送る手段であって、当該要求の中には前記複数の他のコンピュータデバイスおよび前記コンピュータシステムの地理的な位置情報を含む、送る手段と、 前記コンピュータデバイスおよび複数の他のコンピュータデバイスの地理的な位置情報に基づいて計算され、前記コンピュータデバイスと前記複数の他のコンピュータデバイスの各々との間の距離を示す距離情報を前記ゲームの突合せシステムから受け取る手段と、 当該受け取った距離情報に基づいて前記複数のゲームを分類する手段と、 当該得られた複数のゲームの分類を表示する手段と を備えたことを特徴とするコンピュータデバイス。
Independent claims6
88 paragraphs, as filed
The present invention relates to an online game, and more particularly to a match based on a measure of proximity between devices.
Traditionally, game systems with dedicated consoles have been stand-alone machines for a limited number of players (eg 2-4 players). Personal computer-based games are gaining in popularity, in part because they allow games to be played online with many remote players over the Internet. Therefore, one trend with dedicated game consoles is to provide the ability to facilitate games over networks, such as Internet-based online games.
<p> One problem faced with online games, whether personal computer-based or dedicated game console-based, is network latency. When users of two different devices play games online with each other, the transmission of data between the devices can cause various delays. Such delays can adversely affect gameplay, such as the game appearing to be slow or "stagnation" to one or more users. Given the conditions in which network latency can adversely affect gameplay, it is beneficial to reduce network latency between devices for online games.</p>
<p> Matching based on proximity measures described below helps solve the other problems mentioned above.</p><p> Matching based on the degree of proximity between devices is described herein.</p><p> In one aspect, a record of distances between groups of network addresses is maintained. Then select the order for the online game session to return to the computing device requesting information about the current online game session. This order is at least partially based on distance records. These current online gaming sessions may be short sessions (eg, ending when all computing devices leave), or as an alternative (eg, at a particular time during that duration, one computing device. It may be a longer session, such as a tournament (which lasts longer, even if you are not in the game at all).</p>
Throughout the specification, the same numbers are used to indicate similar components and / or features.
FIG. 1 is a block diagram showing an exemplary environment 100 in which butting based on the degree of proximity between devices can be used. Multiple computing devices 102 (1), ..., 102 (c) are coupled to the matching system 104. The coupling between device 102 and system 104, and between device 102, can be any of the various couplings that allow communication between system 104 and each device 102 and / or device 102. In one embodiment, the coupling includes the Internet and may optionally include one or more other networks (eg, a local area network (LAN) or a wide area network (WAN)). For example, each computing device 102 can be located on a home-based LAN and each home-based LAN can be coupled to the system 104 via the Internet. This coupling can be performed using any variety of network types and techniques, including wired and / or wireless networks.
The computing device 102 allows users of each device to play games with each other. Online games typically refer to two or more devices that communicate with each other, allowing one or more users of the devices to play games with each other. Normally, this communication is performed on the Internet, but as an alternative (instead of or in addition to the Internet) it can also be performed on other networks.
The matching system 104 maintains information about multiple game sessions hosted by the computing device 102, allowing players to explore game sessions, generate new game sessions, join game sessions, and end game sessions. , Allows you to obtain information used by computing devices that communicate data with each other. A game session hosting device is a device that can respond to the start of a game session, such as by having the matching system 104 (or another alternative device) generate a new game session. As an alternative, the hosting device can be selected and determined in several other ways. For example, hosting devices can be selected at random or by other criteria.
In some embodiments, a game session refers to an example of a game title that includes one or more players. Such game sessions are also referred to herein as short-term game sessions. If all players in a game session end the session (for example, if they end the game session, log out of system 104, and power down the device), the game session ends. A game session can include multiple rounds of play, or as an alternative, a new session can be generated for each round of play.
In other embodiments, the game session lasts for a longer period of time, such as days, weeks, months, or years. Such game sessions are referred to herein as long-term game sessions or persistent game sessions. An example of such a persistent game session is a tournament. In tournaments, multiple matches between different players usually take place over a long period of time. Each match can be viewed as an individual gameplay session that is part of the tournament game session. Tournament game sessions do not end until the individual gameplay sessions are complete. Therefore, in a tournament game session, no individual gameplay session may be played (for example, no computing device is playing a game or even powered on in a tournament game session).
As used herein, game sessions refer to these short-term game sessions and these persistent game sessions, as well as the individual gameplay sessions of persistent game sessions.
Information about multiple game sessions, each with a plurality of different game titles, can be maintained in parallel by the system 104. The player can leave (end) the game session and join the game session. After the session reaches a certain point in gameplay, the ability to join the session can be limited, or, as an alternative, the player can optionally join and leave the game session during gameplay, and the game session At the end, the player may be different from at the beginning of the game session. Limitations on the ability to join and leave a game session can be changed by game title at the request of the game title designer.
When a player using a computing device participates in a game session, the computing device can also be referred to as participating in the game session. The device used by each player playing in a game session is also referred to as a member or part of the game session.
The computing device 102 synchronizes and decodes a television signal (even a broadcast signal, cable signal, satellite signal, etc.) with additional functionality (eg, a digital video recording function that can act as a digital VCR). It may be a dedicated game console that incorporates a desktop PC, workstation, portable computer, cellular phone, internet device, server computer, etc.). In addition, various types of devices 102 can use the butting system 104 at the same time. For example, a user of a dedicated game console can participate in and play a game session for a user of a portable computer, or a user of a game console manufactured by one manufacturer manufactured by another manufacturer. Users of the dedicated game console can participate in and play game sessions.
An embodiment of one particular example of Environment 100 in Figure 1 can be found in US Patent Application No. 10 / 170,003, a co-application for co-application on June 10, 2002.
FIG. 2 is a block diagram showing the exemplary butting system 104 in additional detail. The matching system 104 includes a control module (matching module 122) and a record 124 describing the current online game session. These current online gaming sessions include short-term and persistent gaming sessions. The matching module 122 receives requests for creating, joining, ending, exploring, etc., game sessions. These requests are received from the requesting device, such as the computing device 102 in FIG. When such a request is received, the matching module 122 interacts with the other components of the matching system 104 as suitable for executing the received request.
The matching system 104 maintains a plurality of records 124 that store information describing various game sessions currently managed by the matching system 104. Since there are usually multiple online game sessions, the matching system 104 usually always contains multiple descriptions. The game session managed by the butt system 104 is usually such a game session generated by the butt system 104. Some game sessions managed by the matching system 104 are public, so additional players can participate in the session, while others are closed, so additional players can participate in the session. Some cannot participate in. Record 124 can be maintained using any of a variety of data structures. In one embodiment of the example, information about each game session is stored as input to one or more tables.
The matching system 104 is designed to facilitate the setting up of game sessions across multiple computing devices. In most of the description herein, the matching system 104 is described as managing the game session, as it manages the transfer of game data between multiple devices that are members of the game session. is not it. Rather, the computing device transfers game data between multiple computing devices or through other server devices (not shown in Figure 2) during gameplay. Alternatively, some game data transfers are done via the matching system 104.
When multiple computing devices participate in an online gaming session, one of the devices is also referred to as the host of the gaming session (and also the host device). In one embodiment, the host of the game session is the device that generated the game session. In other embodiments, other criteria are used to determine the host of the game session. A game session host is typically a device used in determining proximity to another device that can participate in a game session, as described in more detail below. However, other devices that are part of the game session can be used instead.
Various information can be maintained in record 124 for each game session. In one embodiment, this information includes at least a description of the game played in the game session and an identifier of the host of the game session.
The description of the game includes the title of the game and one or more attributes of the game. An attribute is a piece of data related to a game session, or a player in a game session. The attributes of the game can be changed by the game based on the request of the designer of the game title. For example, the attributes are the skill level of the player starting to generate a new session, the desired skill level of other players who can participate in the new session, the location of the game in which the play takes place (eg, during the day,). Nights, specific stadiums, specific cities, specific tracks, weather conditions, etc., objects to use during play (eg, car type, plane or spaceship type, etc.), various characters in the game It can show features (eg, special powers available, magic spells available, etc.). In addition, game titles are specific to the request, not included (eg, different types of requests can be used for each game title).
The game session host identifier is the address structure of the host computing device. This address structure contains sufficient information and allows the measurement of accessibility as described herein. The identifier may be an IP address (eg, according to Internet Protocol version 4 (IPV4), or Internet Protocol version 6 (IPV6), or, as an alternative, a network identifier or other form).
In one embodiment, this address structure is referred to as the fully qualified address (XNADDR) for the host computing device. The fully qualified address of a host computing device contains enough information that even if the host computing device is placed behind a network address translation (NAT), such as a network router, other computing devices will host it. Give access to computing devices.
An example of a fully qualified address for a computing device is an Ethernet (registered trademark) MAC address for the computing device, a local IP (Internet Protocol) address for the computing device, which is believed to be possessed by the computing device. Is the IP address that is then used by the matching system (for example, by a NAT device (or an intermediary that acts on behalf of the matching system), such as a router located between the computing device and the matching system) The IP address and port on which the matching system (or intermediary) receives the data packet from the computing device (which may be different from the receiving IP address), which may be the same as or alternative to the local IP address of the computing device. A logical device number (matching system (or intermediary)) that uniquely identifies the matching system (or intermediary) within a cluster of multiple matching systems (or intermediaries). (Identifier assigned to), security parameter index (SPI) value (eg SPI)<sub>1</sub>And / or SPI<sub>2</sub>), And the computing device id. The content of a fully qualified address is based on the information embedded in the data packet received from the computing device, as well as the information received when establishing a secure connection between the computing device and the matching system (or intermediary). Can be decided.
The IP address at which the matching system (or the intermediary that acts on behalf of the matching system) receives data packets from a computing device determines the degree of proximity for that computing device, as described in more detail below. Used when. IP addresses are usually assigned by an Internet Service Provider (ISP) and can be changed over time. For example, this IP address is the IP address at which data packets are sent by computing devices over the Internet. In addition, multiple devices can share the same IP address (eg, multiple devices can be placed on a LAN with a router placed between the Internet and the LAN, and the IP of the router on the Internet. The address is the IP address to which data packets are sent from all devices on the LAN).
The matching system 104 also includes a filter module 126 that filters game sessions that do not meet the criteria specified by the request to participate in the game session. During operation, if the device wishes to participate in a game session (eg, in response to a request to join a user's game session), the device, whether short-term or long-term game session, Communicates to the matching system 104 a request for a description and / or identifier of the current game session in which it can participate. The matching system 104 returns the description and / or identifier to the device requesting one or more current game sessions, which allows the device to select one of the game sessions to participate in. The device can automatically select one of the game sessions (eg, indicated by the software running on the device), or, as an alternative, input on the user's device (eg, the user can play various games). You can select one of the game sessions in response to (selecting one of the game sessions from the session table display).
The matching system 104 identifies a set of descriptions 124 and returns them to these requesting devices. The filter module 126 operates to select only the description 124 for the set to be returned to the requesting device. This description 124 meets the criteria specified by the requesting device. For example, the requesting device can be specified to include only players of a certain skill level in a game session, only a particular race track, only a particular arena, and so on. In addition, the filter module 126 acts to select only one set of descriptions 124 that should be returned to the currently available requesting device to participate (eg, the game session is full of players and is currently it. If no more can participate, the game session will not be returned as part of a pair to the requesting device).
One or more of these descriptions 124 that meet the criteria specified by the requesting device are returned to the requesting device. In some embodiments, the matching system 104 limits the number of descriptions 124 returned to the requesting device. In one embodiment, the matching system 104 returns only 50 descriptions 124 to the requesting device, but can impose different restrictions in various embodiments. By limiting the number of descriptions 124 returned to the requesting device, the range of network bandwidth used to send the description, as well as the amount of data to be presented (eg, displayed) by the requesting device, can be reduced.
When a set of descriptions 124 to be returned to the requesting device is obtained, the classification module 128 can classify the descriptions in the set so that the descriptions can be displayed in a specific (classified) order by the requesting device. To. This description can be sent to the requesting device in this classified order, or as an alternative, the appropriate ordering instructions can be sent with the description and assembled on the requesting device in that classified order.
Classification module 128 classifies descriptions according to the degree of proximity generated for each game session. The degree of proximity per game session indicates the approximate distance between the requesting device and the host device for that game session. Alternatively, this distance may be the distance between the requesting device and another device participating in the game session (eg, a device that is not the host device that is part of the game session). In some embodiments, the classification module 128 operates on the assumption that data transfer between devices that are close to each other is usually faster than data transfer between devices that are farther from each other. Therefore, the expected delay in data transfer between devices is usually smaller for devices that are in close proximity to each other.
Devices that are relatively close to the requesting device (and therefore have a low expected delay in data transfer between the requesting device and other devices that are part of the game session) by classifying the game description by the degree of proximity. The game session hosted by is more prominent to the user of the requesting device. For example, such a game session can be displayed at the beginning of a list of game session descriptions. Therefore, the user is more likely to choose such a game session, which enhances the user experience.
The degree of proximity can be generated in a variety of ways. One way that can generate the degree of proximity for two devices is by determining the approximate geographic location of each device (eg, with respect to longitude and latitude). This location information can be obtained by various methods. For example, a user may have a geographic location associated with himself recorded when the user registers or logs on to use the services of the matching system 104. In another example, an organization or company generates information that maps IP addresses to geographic locations. The IP address of the host device can be found from the game session description (eg in XNADDR, which is part of the description), and the IP address of the requesting device can also be found (eg, inspect XNADDR for the requesting device or received from the device). It can be found (by examining the source IP address of the data packet). Such information that maps IP addresses to geographic locations can be obtained, for example, from the Digital Envoy of Norcross, GA.
In some embodiments, the matching system 104 maintains an IP mapping table 130. The information that maps the IP address to the geographic location is stored in the mapping table 130, which allows the classification module 128 to determine the geographic location of the device based on that IP address. Once the geographical location for the two devices is obtained, the distance between the two devices can be easily calculated in one of a variety of ways. For example, it can be assumed that the device is on a sphere (earth), so the spherical distance between the two devices can be calculated. In another example, it can be assumed that the device is on a plane (eg, a map of the United States), and thus the linear distance between the two devices can be calculated. The calculated distance between the two devices can then be used as the degree of proximity for the two devices.
Other methods that can generate a degree of proximity for two devices are based on the geographic location of the device, but rather than maintaining the geographic location of each IP address, there are multiple IP addresses. Grouped together within a "bucket" or "group" of. The number of buckets that group IP addresses is variable and you can choose your design. In one embodiment, IP addresses in the United States are divided into about 150 buckets, but different numbers of buckets (more or less than 150) can be used instead. For example, in other embodiments, IP addresses in the United States are divided into about 6 buckets.
Geographical location is also associated with each of these buckets. In one embodiment, the approximate center of the bucket is used as the geographical location associated with the bucket, but different locations may be used instead.
Buckets for a particular geographic area (eg, the United States) can be generated in a variety of ways. In one embodiment, the bucket is created by dividing the geographic area into several sub-areas. This small area can be based on a variety of factors, such as the center of population or the physical area. For example, a geographic area can be divided into about 150 separate physical areas, each in one bucket. In another example, each of the top 150 population centers within a geographic area can act as a bucket.
In another embodiment, the IP address is assigned to a bucket centered around the center of the "IP population". However, "IP population" refers to the number of IP addresses. Check where many IP addresses are concentrated (for example, 150 maximum concentration areas), and use these concentration areas as buckets. Each geographic area is associated with such a bucket, and each such geographic area contains these physical locations with IP addresses within that bucket. Geographical areas can be defined by specific geographic shapes, such as circles. It then assigns any IP address that did not initially exist in any bucket to the nearest bucket (eg, based on the distance to the center of the bucket). These additional IP addresses can be included with or without modification of the geographic shape.
In another embodiment, the geographic area to be divided into multiple buckets is first associated with a single bucket. IP addresses are then added to this first bucket until the bucket contains a threshold amount of IP addresses. This threshold amount is variable, and in one embodiment, the number of buckets desired to be used is the number divided by the total number of IP addresses to be assigned to these buckets. When the IP address threshold is reached, the bucket is split into two buckets. This split can be performed using any of a variety of split heuristics, with one embodiment split so that approximately half of the IP addresses in the pre-split bucket are in the post-split bucket. I do. Each additional IP address is then added within the two split buckets by assigning each additional IP address to the closest bucket (eg, based on the distance to the center of the bucket). If one of these split buckets contains a threshold amount of IP addresses, the bucket is split. This IP address addition and bucket splitting continues until all IP addresses to be assigned have been assigned to the bucket.
In some embodiments, the matching system 104 maintains bucket information in the IP mapping table 130. The IP mapping table stores the mapping of IP addresses to buckets, which allows classification module 128 to determine which bucket the device will be assigned to based on the device's IP address. The butting system 104 also maintains a bucket proximity table 132 that identifies the distance between the two buckets. The distance between the two buckets is based on the geographical location associated with each of the two buckets (eg, their approximate geographic center) and is similar to the method described above with respect to (eg, spherical distance, linear distance, etc.). ) It can be calculated in various ways.
FIG. 3 shows an exemplary IP mapping table 200. The IP mapping table 200 may be, for example, table 130 in FIG. As shown in Table 200, the IP address 202 is mapped to a particular bucket 204. The value x in IP address 202 indicates any valid integer (eg 0-255). Thus, as you can see in Table 200, individual IP addresses can be mapped to buckets, or IP address ranges can be mapped to buckets. Alternatively, the IP mapping table 200 can include columns "from" and "to" to indicate the range of IP addresses.
IP mapping table 200 also includes Internet provider column 206. In some situations, the matching system 104 may have the knowledge of an ISP issuing a particular IP address or range of addresses, in which case it will include information in Internet provider column 206. Classification module 128 can then use this information in generating the degree of proximity. In one embodiment, the classification module 128 is in the same bucket and two devices that have received their IP address from the same ISP are two devices that are in the same bucket but have received their IP address from different ISPs. It is supposed to be closer than. Therefore, classification module 128 is in the same bucket and is coordinated so that two devices that receive their IP address from the same ISP reflect closer proximity. This adjustment may be a fixed value (eg, a 10 reduction in the degree of axibility) or a dynamic value (eg, a 90% reduction in the degree of axibility).
Alternatively, in other embodiments, classification module 128 assumes that two devices that receive their IP address from the same ISP are closer than two devices that receive their IP address from different ISPs. Has been done. Therefore, classification module 128 adjusts to reflect closer proximity when two devices receive their IP address from the same ISP. This adjustment is made by classification module 128, whether or not the two devices are in the same bucket, and whether or not the method of generating the degree of proximity for the two devices uses a bucket. Will be done.
FIG. 4 shows an exemplary proximity table 250. The proximity table 250 may be, for example, the bucket proximity table 132 of FIG. As shown in Table 250, columns 252 and 254 of the two buckets are used, with column 256 of distances containing a value indicating the distance between the two identified buckets. This distance is used for relative comparison when making the classifications described herein, and this distance may be in any unit. For example, this distance can be measured in miles or kilometers, or as an alternative in other abstract or arbitrary units. Note that the storage space can be reduced (eg by about half) by taking advantage of the typical symmetric nature of Table 250. For example, the distance between buckets 2 and 3 is the same regardless of which bucket was identified in column 252 and which bucket was identified in column 254. Therefore, the distance only needs to be stored once. In alternative embodiments, variables in various networks or environments can be made non-symmetrical in value. For example, for some reason, the distance from bucket 2 to bucket 3 may be different from the distance from bucket 3 to bucket 2. If the values are not symmetric, both differences (or some indication of both differences) are stored.
Another way that can generate a degree of proximity for two devices is in a hybrid model that, in addition to being partially based on their geographic location, also confirms various data transfer rates over parts of the network. is there. Some networks, including the Internet, have different parts that can transfer data at different speeds. For example, one or more Internet "backbone" networks manipulate the main traffic on the Internet and use high-speed transmission lines. Data can typically be transferred between two geographic locations near the Internet backbone network, faster than between two geographic locations far from the Internet backbone network.
The hybrid model attempts to confirm this velocity variance by determining the degree of proximity for the two devices, as follows: The geographic distance between each device and the closest geographic point to which data from the device can be transferred over the Internet backbone network (eg, spherical or linear distances described above) is identified. The distance of the backbone between these two points on the Internet backbone is also identified. The geographic distance between the two devices (between the device and the Internet backbone network) is then added to the backbone distance to get the distance between the two devices. In this model, the backbone distance is shorter than the assumed geographic distance between the two points (eg, spherical or linear distance, as described above). For example, the backbone distance between two points is half the estimated geographic distance between the two points.
Note that, as mentioned above, referring to all the methods that can generate the degree of closeness for two devices, it is not necessary to exchange data packets between the two devices. Direct communication between the two devices is not necessary to generate the degree of proximity for the two devices. For example, there is no need to send test messages between the two devices, no protocol for ping, and no need to use response packets between the two devices. Rather, the degree of proximity is produced by the butting system.
Regardless of how the degree of proximity is calculated, the calculated degree of proximity classifies a set of game sessions as filtered (these sessions match the criteria provided by the requesting device). Used as a basis for doing. The calculated degree of proximity is one classification criterion that can be used, and additional classification criteria can also be applied when classifying a set of game sessions. An example of these additional classification criteria is moving a game session with the most vacancy (with the maximum number of users that can participate) to the beginning of a set (or as an alternative to the end of that set). Moving these game sessions with the largest number of players to the end of the set (or as an alternative to the beginning of the set), prioritizing older game sessions over relatively new game sessions, preferred style or tournament of gameplay It involves ranking game sessions based on optional search criteria, such as preferences, and how closely they match.
Different classification criteria can be applied to a set of game sessions in different orders. In one embodiment where there are a small number of buckets (eg, 6 buckets), the calculated degree of proximity is applied as the first classification criterion, followed by one or more other criteria. In other embodiments where there are a large number of buckets (eg 150 buckets), the calculated degree of proximity is applied as the final classification criterion.
Further, in some embodiments, buckets of multiple layers (or levels) may be used. In these embodiments, each IP address is assigned to a particular bucket within these tiers. The various bucket layers can then be used as various classification criteria. For example, suppose the first bucket layer has 6 buckets and the second bucket layer has 150 buckets. This first bucket layer can be applied as the first classification criterion, then one or more of the other classification criteria described above can be applied, and then the second bucket layer can be applied as the final classification. It can be applied as a reference.
FIG. 5 is a flow diagram illustrating an exemplary process 300 that stores information that should be used in generating the degree of proximity for a device. Process 300 can be performed with software, firmware, hardware, or a combination thereof.
First, divide the geographic area where the device resides (eg worldwide, or one or more specific countries) into the desired number of buckets (operation 302) and assign each IP address to one of these buckets. (Operation 304). In addition, assign each IP address for which the provider of the IP address is known to the Internet provider value (306). Then maintain these assignments or mappings (operation 308). For example, such allocations, or mappings, can be maintained in Table 200 of FIG.
FIG. 6 is a flow diagram illustrating an exemplary process 340 for matching and classifying game sessions. In one embodiment, process 340 is performed by the matching system 104 of FIG. Process 340 can be performed with software, firmware, hardware, or a combination thereof.
First, maintain one or more buckets to which the game session host is assigned (behavior 342). Identify the bucket to which the requesting device is assigned (behavior 344) and identify game sessions that meet any of the filter criteria provided by the requesting device (behavior 346). A set of identified game sessions is then classified by the distance between the buckets to which the host and requesting device are assigned (behavior 348). The set of classified game sessions is then returned to the requesting device (operation 350).
Alternatively, the matching system 104 can transmit the information used to classify the pair (eg, the degree of proximity) to the requesting device without classifying the set of identified game sessions. The requesting device can then be classified using the information received from the matching system 104.
Note that the operations in Figures 5 and 6 are shown in a particular order for the sake of simplicity, and that the operations can be performed in different orders. Also note that two or more actions can be performed in parallel. For example, in FIG. 5, motion 306 can be performed before motion 304, after motion 304, or in parallel with motion 304. According to another example, in FIG. 6, motion 346 can be performed before motion 344, after motion 344, or in parallel with motion 344.
FIG. 7 shows a general purpose computer environment 500 that can be used to perform the techniques described herein. The computer environment 500 is merely an example of a computing environment and does not imply any limitation on the use or scope of functionality of computer and network architectures. The computer environment 500 should not be construed as having a tendency or requirement associated with any one or combination of components shown in the exemplary computer environment 500.
The computer environment 500 includes a general purpose computing device in the form of computer 502. For example, the computer 502 may be the computing device 102 of FIG. 1 or the matching system 104 of FIG. 1 or FIG. A variety of components of computer 502 include one or more processors or processors 504 (including optionally an encryption processor or coprocessor, or security processor or coprocessor), system memory 506, and processor 504. Includes, but is not limited to, the system bus 508, which connects system components to system memory 506.
The system bus 508 has several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port (AGS), and a local bus that uses either a processor or a variety of bus architectures. Indicates one or more of them. As an example, these architectures are also known as Industry Standard Architecture (ISA) buses, Micro Channel Architecture (MCA) buses, Enhanced ISA (EISA) buses, Video Electronics Standards Association (VESA) local buses, and Mezzanine buses. Includes Peripheral Component Interconnects (PCI) bus.
Computer 502 typically includes a variety of computer-readable media. Such media may be any usable medium accessible by computer 502, including volatile and non-volatile media, removable or non-removable media.
System memory 506 includes computer-readable media in the form of volatile memory such as random access memory (RAM) 510 and / or non-volatile memory such as read-only memory (ROM) 512. The basic input / output system (BIOS) 514, which contains basic routines that help transfer information between elements in computer 502, such as during boot, is stored in ROM 512. RAM 510 typically contains data and / or program modules that have immediate access to processing device 504 or are currently being manipulated by processing device 504.
Computer 502 also includes other removable / non-removable volatile / non-volatile computer storage media. As an example, FIG. 7 shows a hard disk drive 516 for reading from and writing to a non-removable non-volatile magnetic medium (not shown), a removable non-volatile magnetic disk 520 (eg, a "floppy® disk"). ) And a magnetic disk drive 518 for reading and writing to it, and an optical disk drive 522 for reading and / or writing from a removable non-volatile optical disk 524, such as a CD-ROM, DVD-ROM or other optical medium. Is shown. The hard disk drive 516, the magnetic disk drive 518, and the optical disk drive 522 are each connected to the system bus 508 by one or more data medium interfaces 526. Alternatively, the hard disk drive 516, the magnetic disk drive 518, and the optical disk drive 522 can be connected to the system bus 508 by one or more interfaces (not shown).
The disk drive and its associated computer readable media provide a non-volatile storage device for computer readable instructions, data structures, program modules, and other data for the computer 502. Examples show a hard disk 516, a removable magnetic disk 520, and a removable optical disk 524, but as you can see, a magnetic cassette or other magnetic storage device, a flash memory card, a CD-ROM, a digital video. It can store computer-accessible data such as disk (DVD) or other optical storage, random access memory (RAM), read-only memory (ROM), and electrically eraseable read-only memory (EEPROM). Other types of computer-readable media that can be used can also be used to implement the exemplary computing systems and environments.
A hard disk 516, a magnetic disk 520, an optical disk 524, a ROM 512, and an arbitrary number of program modules, including, for example, an operating system 526, one or more application programs 528, another program module 530, and program data 532. / Or can be stored in RAM510. These operating systems 526, one or more application programs 528, other program modules 530, and program data 532 (or some combinations thereof) are all or part of the resident components that support distributed file systems. Can be implemented.
The user can enter commands and information into the computer 502 via an input device such as a keyboard 534 and a pointing device 536 (eg, a "mouse"). Other input devices 538 (not specifically shown) include microphones, joysticks, gamepads, satellite dishes, serial ports, scanners, and / or the like. The other input devices mentioned above are connected to the processor 504 via an input / output interface 540 coupled to system bus 508, but other interfaces and buses, such as a parallel port, game port, or universal serial bus (USB). It can also be connected by structure.
Monitor 542 or other types of display devices can also be connected to system bus 508 via an interface such as video adapter 544. In addition to monitor 542, other output peripheral devices can include components such as speakers (not shown) and printer 546 that can be connected to computer 502 via input / output interface 540.
Computer 502 can be operated in a networked environment that uses a logical connection to one or more remote computers, such as remote computing device 548. As an example, the remote computing device 548 may be a personal computer, a portable computer, a server, a router, a network computer, a peer device, or another shared network node, a game console, and the like. The remote computing device 548 is shown as a portable computer capable of including many or all of the elements and features described herein with respect to the computer 502.
The logical connections between computer 502 and remote computer 548 are shown as Local Area Network (LAN) 550 and Wide Area Network (WAN) 552. Such network environments are common in offices, enterprise-scale computer networks, intranets, and the Internet.
When implemented in a LAN network environment, the computer 502 is connected to the local network 550 via a network interface or adapter 554. When implemented in a WAN network environment, the computer 502 typically includes a modem 556 or other means to establish communication over the wide area network 552. Modem 556 may be internal or external to computer 502 and can be connected to system bus 508 via input / output interface 540 or other suitable mechanism. As will be appreciated, the network connection shown in the figure is exemplary and other means of establishing one or more communication links between computers 502 and 548 can also be used.
In a networked environment, such as the one shown in Computer Environment 500, the program module shown in the figure for computer 502, or a portion thereof, can be stored in a remote memory storage device. As an example, the remote application program 558 resides in the memory device of the remote computer 548. For illustration purposes, application programs and other executable program components such as operating systems are shown herein as separate blocks, but as will be appreciated, these programs and components may be used at various times. Resident in various storage components of the computing device 502 and executed by one or more data processors of the computer.
Various modules and techniques are described herein in the general context of computer-executable instructions that are executed on one or more computers or other devices, such as program modules. In general, a program module includes routines, programs, objects, components, data structures, etc. that perform a particular task or implement a particular abstract data type. Generally, the functionality of a program module can be combined or distributed as desired in various embodiments.
Implementations of these modules and techniques are stored or transmitted via some form of computer-readable medium. The computer-readable medium may be any usable medium that can be accessed by a computer. As an example, although not limiting, a computer-readable medium can include a "computer storage medium" and a "communication medium".
A "computer storage medium" is volatile and non-volatile, removable and removable, implemented in any way or technique for storing information such as computer-readable instructions, data structures, program modules, or other data. Includes impossible media. Computer storage media include RAM, ROM, EEPROM, flash memory or other memory techniques, CD-ROM, digital video disc (DVD) or other optical storage device, magnetic cassette, magnetic tape, magnetic disk storage device or other. It includes, but is not limited to, magnetic storage devices, or any other medium that can be used to store desired information and is accessible by a computer.
A "communication medium" typically includes other data in a modulated data signal, such as computer-readable instructions, data structures, program modules, or carrier waves or other transport mechanisms. Communication media also include arbitrary information transmission / reception media. The term "modulated data signal" refers to a signal that has one or more sets of its characteristics or is modulated in such a way that information is encrypted into the signal. By way of example, communication media include, but are not limited to, wired media such as wired networks or direct line connections, and radio media such as sound waves, RF, infrared, and other radio media. Any combination of the above mentioned items is also included in the category of computer-readable media.
FIG. 8 shows the functional components of the game console 600 in more detail. For example, the game console 600 can be used as the computing device 102 in FIG. The game console 600 has a central processing unit (CPU) 601 and a memory control device 602, and the memory control device 602 includes a flash ROM (read-only memory) 604, a RAM (random access memory) 606, and a hard disk drive device. It makes the processor accessible to various types of memory, including the 608 and the portable media drive 609. The CPU601 includes a level 1 cache 610 and a level 2 cache 612 to temporarily store data, thereby reducing the number of memory access cycles and improving processing speed and power.
The CPU601, memory controller 602, and various memory devices are one or more buses, including a series or parallel bus, a memory bus, a peripheral bus, and a processor, or a local bus that uses one of a variety of bus architectures. It is interconnected via. As an example, these architectures are also known as Industry Standard Architecture (ISA) buses, Micro Channel Architecture (MCA) buses, Enhanced ISA (EISA) buses, Video Electronics Standards Association (VESA) local buses, and Mezzanine buses. Includes Peripheral Component Interconnects (PCI) bus.
In one suitable embodiment, the CPU601, memory controller 602, ROM604, and RAM606 are integrated on the common module 614. In this embodiment, ROM 604 is configured as a flash ROM connected to memory controller 602 via PCI (Peripheral Component Interconnect Bus and ROM Bus (neither shown)). RAM 606 is configured as another bus (Neither). It is configured as multiple DDR SDRAMs (Double Data Rate Synchronous Dynamic RAM) independently controlled by the memory controller 602 via (not shown). The hard disk drive 608 and the portable media drive 609 are PCI. It is connected to the memory controller via the bus and ATA (AT Attachment) bus 616.
The 3D graphics processing device 620 and the video encoder 622 form a video processing pipeline for high-speed and high-resolution graphics processing. Data is transmitted from the graphics processor 620 to the video encoder 622 via a digital video bus (not shown). The audio processor 224 and the audio codec (encoder / decoder) 626 form a corresponding audio processing pipeline with high fidelity and stereo processing. The voice data is transmitted between the voice processor 624 and the voice codec 626 via a communication link (not shown). The video and audio processing pipeline outputs data to A / V (audio / video) port 628 for transmission to television or other displays. In the illustrated embodiment, the video and audio processing components 620-628 are mounted on module 614.
The USB host controller 630 and network interface 632 are also implemented on module 614. The USB host controller 630 is coupled to the CPU 601 and the memory controller 602 via a bus (for example, a PCI bus) and acts as a host for the peripheral controllers 636 (1) to 636 (4). Network interface 232 provides access to networks (eg, the Internet, home networks, etc.) and may be any of a variety of wired or wireless interface components, including Ethernet® cards, modems, Bluetooth modules, cable modems, and more. ..
The game console 600 has one dual controller support subassembly 640 (1) and 640 (2), and each subassembly supports two game controllers 636 (1) to 636 (4). The front panel input / output subassembly 642 supports the functionality of the power button 631 and media drive eject button 633, as well as any LED (light emitting diode) or other indicator exposed on the exterior of the game console. The subassemblies 640 (1), 640 (2), and 642 are coupled to module 614 via one or more cable assemblies 644.
It is shown that the eight memory units 634 (1) to 634 (8) can be coupled to the four controllers 636 (1) to 636 (4), that is, they can be coupled to two memory units for each controller. There is. Each memory unit 634 provides an additional storage device capable of storing games, game parameters, and other data. When the memory unit 634 is inserted in the control device, it can be accessed by the memory control device 602.
The system power supply module 650 supplies electricity to the components of the game console 600. Fan 652 cools the circuit inside the game console 600.
The console user interface (UI) application 660 is stored on the hard disk drive 608. When you turn on the game console, various parts of the console application 660 are loaded into RAM606 and / or caches 610, 612 and run on CPU601. Console application 660 presents a graphical user interface that provides a consistent user experience when navigating to the various media types available on the game console.
The game console 600 implements an encryption engine to perform common encryption functions such as encryption, decryption, authentication, digital encoding, and hashing. The cryptographic engine can be implemented as part of the CPU 601 or in software stored on the hard disk drive 608 running on the CPU, allowing the CPU to perform cryptographic functions. Alternatively, the game console 600 can be equipped with an encryption processor or coprocessor designed to perform cryptographic functions.
The game console 600 can be operated as a stand-alone system by simply connecting the system to a television or other display. In this stand-alone mode, the game console 600 allows one or more players to play games, watch movies, or listen to music. However, if broadband connectivity integration is possible via network interface 632, the game console 600 can be further operated as an online game participant, as described above.
Although the above description used a language specific to structural features and / or methodological behaviors, it is understood that the invention defined in the claims is not limited to the particular features or behaviors described above. I want to. Rather, the unique features and behaviors are those disclosed as exemplary embodiments of the present invention.
<figref num="1">FIG. 6 is a block diagram illustrating an exemplary environment in which matching based on the degree of proximity between devices can be used.</figref><figref num="2">It is a block diagram which shows the exemplary butting system in more detail.</figref><figref num="3">It is a figure which shows the illustration mapping table.</figref><figref num="4">It is a figure which shows the exemplary proximity table.</figref><figref num="5">FIG. 5 is a flow diagram illustrating an exemplary process for storing information that should be used in generating the degree of proximity for a device.</figref><figref num="6">It is a flow chart which shows the example process of matching and classifying game sessions.</figref><figref num="7">FIG. 5 illustrates a general purpose computer environment that can be used to perform the techniques described herein.</figref><figref num="8">It is a figure which shows the functional component of a game console in more detail.</figref>
Code description
100 environment 102 Computing device 104 Butting system 122 Butting module 124 Description, record 126 Filter module 128 Classification module 130 IP mapping table 132 bucket proximity table 200 IP mapping table 202 IP address 204 bucket 206 Internet Provider Column 250 proximity table 252, 254 bucket columns 256 distance column 500 computer environment 502 computer 504 Processing equipment 506 system memory 508 system bus, monitor 510 RAM 512 ROM 516 Hard disk drive 518 Magnetic disk drive 520 magnetic disk 522 Optical disk drive 524 optical disc 526 operating system 528 application program 530 program module 532 Program data 534 keyboard 536 pointing device 538 Input device 540 I / O interface 542 monitor 544 video adapter 546 printer 548 remote computer 550 Local Area Network (LAN) 552 Wide Area Network (WAN) 554 adapter 556 modem 558 Remote application program 600 game console 601 Central processing unit (CPU) 602 Memory controller 604 Flash ROM 606 RAM 608 Hard disk drive 609 Portable media drive 610 Level 1 cache 612 Level 2 cache 614 module 616 ATA (AT Attachment) Bus 620 3D graphics processing device 622 Video encoder 626 Voice codec (encoder / decoder) 628 A / V (audio / video) port 630 USB host controller 632 Network interface 633 Media drive eject button 634 Memory unit 636 (1) ~ (4) Peripheral controller 640 (1), (2) Dual controller support subassembly 642 Front panel I / O subassembly 644 Cable assembly 650 system power supply module 652 fan 660 console application
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| JP11319319A | Cites | Japan |
| JP11015715A | Cites | Japan |
13 members in 6 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 10421073 | United States of America | – | |
| 42107303 | United States of America | A | |
| 42107303 | United States of America | A | |
| 2003421073 | – | – | – |
| US20030421073 | – | – | – |
Members13
| Document | Office | Kind | |
|---|---|---|---|
| EP1471710A2 | European Patent Office (EPO) | A2 | |
| US2004215756A1 | United States of America | A1 | |
| KR20040093026A | Republic of Korea | A | |
| JP2004328734A | Japan | A | |
| EP1471710A3 | European Patent Office (EPO) | A3 | |
| EP1471710B1 | European Patent Office (EPO) | B1 | |
| AT346448T | Austria | T | |
| ATE346448T1 | Austria | T1 | |
| DE602004003282D1 | Germany | D1 | |
| DE602004003282T2 | Germany | T2 | |
| US7634569B2 | United States of America | B2 | |
| JP4459697B2This record | Japan | B2 | |
| KR101085684B1 | Republic of Korea | B1 |
15 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Written notification of registration of transferJAPANESE INTERMEDIATE CODE: R350R350 | R350 | |
| Request for change of ownership or part of ownershipJAPANESE INTERMEDIATE CODE: R313113S111 | S111 | |
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 4459697
- Publication, DOCDB
- 4459697
- Publication, EPODOC
- JP4459697B
- Application
- 124697
- Application, DOCDB
- 2004124697
- Application, EPODOC
- JP20040124697
Titles2
- Japanese
- デバイス間の近接性の程度に基づく突き合わせ
- English
- Matching based on the degree of proximity between devices
Classification
- CPC, 22
- H04L67/52
- B29C44/5627
- A63F2300/407
- A63F2300/50
- A63F2300/5566
- H04L69/329
- H04L67/131
- A63F13/35
- A63F2300/534
- A63F13/216
- A63F13/23
- A63F2300/556
- A63F2300/1025
- A63F13/335
- A63F13/795
- A63F13/358
- A63F2300/205
- B29C44/3426
- B29K2025/06
- B29K2105/045
- B29L2031/7138
- H04L9/40
- IPC, 8
- H04L12 56
- A63F13 12
- A63F13 33
- A63F13 216
- A63F13 30
- A63F13 70
- H04L29 06
- H04L29 08