Title:
METHOD AND SYSTEM FOR TAG-BASED GROUPING OF ONLINE COMMUNITIES
Kind Code:
A1


Abstract:
Method and system for tag-based grouping of online communities are disclosed. One or more tags associated with a user of a computer game system may be obtained by the computer system. One or more groups compatible with the user's one or more tags may be identified by the computer system. The user may then be prompted to join the one or more clans located by the computer game system.



Inventors:
Parks, William T. (San Francisco, CA, US)
Application Number:
13/181464
Publication Date:
01/17/2013
Filing Date:
07/12/2011
Assignee:
Sony Computer Entertainment Inc. (Tokyo, JP)
Primary Class:
Other Classes:
463/42
International Classes:
A63F9/24
View Patent Images:
Related US Applications:
20090298567LOTTERY TICKET WITH A REGISTERED HOLOGRAPHIC LAYERDecember, 2009Grotkowski et al.
20050186998Novel digital monographAugust, 2005Haas
20070265072Game apparatus and storage medium having game program stored thereonNovember, 2007Matsuda et al.
20050054439Wide area gaming and retail player trackingMarch, 2005Rowe et al.
20090253476Trivia game and systemOctober, 2009Pestotnik
20050043076RPG toys playing process and RPG toy for playing the processFebruary, 2005Lin
20080268935GAMING DEVICE AND METHOD UTILIZING AT LEAST TWO RNG OUTCOMESOctober, 2008Acres
20080254848Gaming device having increasing odds of winningOctober, 2008Olushile
20030073474Trivia sports gameApril, 2003Bowman
20080274796System and Method for Enhanced Gaming Platform InteractionsNovember, 2008Lube
20040138916Service management system and service management server in hotel with casinoJuly, 2004Fujimoto



Primary Examiner:
ZAMAN, SADARUZ
Attorney, Agent or Firm:
Joshua D. Isenberg (809 Corporate Way Fremont CA 94539)
Claims:
What is claimed is:

1. A method for tag-based grouping of online communities, comprising: a) obtaining one or more tags associated with a user of a computer game system by the computer system; b) identifying one or more groups compatible with the user's one or more tags with the computer system; and c) prompting the user to join the one or more groups identified in b) with the computer system.

2. The method of claim 1, further comprising: d) enrolling the user as a member of a group upon receiving a notification of acceptance from the user.

3. The method of claim 2, wherein the one or more tags associated with the user contribute to a group profile for each group joined by the user.

4. The method of claim 2, wherein d) includes allowing the user to compete in a computer-game related activity as a member of the group joined by the user.

5. The method of claim 4, wherein the computer-game related activity is a turn-based game.

6. The method of claim 4, wherein the computer-game related activity is a team-based quiz game.

7. The method of claim 4, wherein the computer-game related activity is a team-based event, wherein the event involves competing against an opposing group.

8. The method of claim 7, wherein the team-based event involves wagering one or more assets of the group against one or more assets of the opposing group.

9. The method of claim 4, wherein allowing the user to compete involves permitting the user to vote for an action to be performed at each turn of the turn-based game.

10. The method of claim 9, wherein the user's vote is weighted differently that votes of other members of the group.

11. The method of claim 2, further comprising performing an action with the computer system during game play indicating the user's group affiliation.

12. The method of claim 1, wherein the one or more tags associated with the user are determined from a user profile accessible by the computer system.

13. The method of claim 1, wherein the one or more tags associated with the user are determined from previous behavior of the user with the computer system.

14. The method of claim 1, wherein the one or more tags associated with the user include one or more pre-set tags.

15. The method of claim 1, wherein the one or more tags associated with the user include one or more open-text tags.

16. The method of claim 1, wherein the one or more groups identified in b) include groups that are specific to a particular game title.

17. The method of claim 1, wherein the one or more groups identified in b) include groups that span across game titles.

18. The method of claim 1, wherein identifying the one or more groups in b) includes generating one or more rival groups based on a context of real world events.

19. The method of claim 1, wherein the one or more groups include one or more groups for a social network system.

20. The method of claim 19, wherein the one or more groups include one or more chat groups or forums.

21. A system for implementing tag-based grouping of online communities, comprising: a processor; a memory; and computer coded instructions embodied in the memory and executable by the processor, wherein the computer coded instructions are configured to implement a method for tag-based grouping of online communities, comprising: a) obtaining one or more tags associated with a user of a computer game system by the computer system; b) identifying one or more groups compatible with the user's one or more tags with the computer system; and c) prompting the user to join the one or more groups identified in b) with the computer system.

22. A computer program product comprising: a non-transitory, computer-readable storage medium having computer readable program code embodied in said medium for implementing a method for tag-based grouping of online communities, said computer program product having: a) computer readable program code means for obtaining one or more tags associated with a user of a computer game system by the computer system; b) computer readable program code means for identifying one or more groups compatible with the user's one or more tags with the computer system; and c) computer readable program code means for prompting the user to join the one or more groups identified with the computer system.

Description:

FIELD OF THE INVENTION

Embodiments of the present invention are related to a system and method for implementing tag-based grouping of online communities.

BACKGROUND OF THE INVENTION

Online communities have grown increasingly pervasive over the years. These online communities have taken on the form of forums, blogs, social networks, etc. In the context of gaming, online communities have been developed to promote group-based game play. These gaming communities are known as clans or guilds. These gaming communities facilitate online play amongst large groups by forming clans that compete against each other, or communities that allow exclusive competition amongst members.

Several motivations exist for joining a clan. One strong motivating factor for joining a clan involves placing a person within a social network which provides access to resources, knowledge, and help needed to accomplish game-related goals. Another strong motivating factor is that clans fulfill a human desire for social interaction. These clans promote competition, a strong sense of teamwork, and also provide a model for dividing labor to attain game-related achievements.

Depending on the purpose and goals of a clan, membership may range anywhere from being all-inclusive to being extremely exclusive. Some clans grant membership based on a performance metric and need. Other clans welcome all interested members and promote a friendly and social environment. However, all of these clans suffer from the same problem. These clans must be located by and membership must be sought out by an interested user rather than an interested clan. Thus, clans suffer from more limited membership due to the nature of the membership process.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram illustrating a gaming environment implementing a method for tag-based grouping of online communities accompanied by a flow diagram illustrating said method according to an embodiment of the present invention.

FIG. 2 is a schematic diagram illustrating an example of a group-affiliated computer-game related activity according to an embodiment of the present invention.

FIG. 3A is a schematic diagram illustrating another example of a group-affiliated computer-game related activity according to an embodiment of the present invention.

FIG. 3B is a schematic diagram illustrating another example of a group-affiliated computer-game related activity according to an embodiment of the present invention.

FIG. 4 illustrates a block diagram of a server that may be used to implement a method for tag-based grouping of online communities according to an embodiment of the present invention.

FIG. 5 illustrates a block diagram of a client device that may be used to implement a method for tag-based grouping of online communities according to an embodiment of the present invention.

FIG. 6 illustrates an example of a non-transitory computer readable storage medium in accordance with an embodiment of the present invention.

DESCRIPTION OF THE SPECIFIC EMBODIMENTS

FIG. 1A is a schematic diagram illustrating a gaming environment implementing a method for tag-based grouping of online communities accompanied by a flow diagram illustrating said method according to an embodiment of the present invention. A user 101 of a computer system 103 may interact with the computer system 103 by way of a user interface 107 (e.g., wireless controller, joystick, etc.). The computer system 103 may be operably connected to a visual display 102 configured to display images associated with a program running on the computer system 103.

By way of example, and not by way of limitation, the computer system 103 may include a client device 105, such as a video game console. The display 102 may be directly or indirectly connected to the client device 105 by a wired or wireless connection. Similarly, the user interface may be connected to the client device 105 by a wired or wireless connection. In the computer system 103, the client device 104 may be connected to a server 106 and/or other client devices 108 via a network 109. The client device 105, server 106 and other client devices 108 may be implemented as general purpose computers that operate as special purpose computers when programmed by suitable software. Alternatively, client device 105, server 106 and other client devices 108 may be implemented as special purpose built hardware implemented, e.g., using, inter alia, application-specific integrated circuit (ASIC) components. The client devices 105, 111 may be implemented in a variety of ways, including as computers, portable digital assistants (PDAs), video game consoles, portable gaming devices, portable communication devices, cellular telephones, and the like. The clients 105, 111, and server 106 may be equipped with conventional mechanisms to transmit and receive information via the network 109, such as ports, network cards, receivers, modems, and so on.

The network 109 is representative of many different network types, including public networks (e.g., the Internet) and proprietary networks. The network 109 may be implemented using wireless technologies (e.g., radiofrequency, microwave, cellular, and the like), wire-based technologies (e.g., cable, fiber optic, twisted pair wire, co-axial cable, and the like), or any combination of wired and/or wireless technologies. Any one of many diverse protocols and formats may be used to package data and transmit it among the client device 105, server 106 and other client devices 108.

The computer system 103 may be configured to store data and information associated with the user 101 for subsequent retrieval by the user 101. By way of example, and not by way of limitation, such data may include a user-created profile or behavioral data associated with the user 101 of the computer game system 103. The computer system 103 may also be configured to facilitate interaction between the user 101 and other users (not illustrated) of one or more other client devices 111 connected to the network 109. By way of example, and not by way of limitation, some of these other client devices may belong to users who are members of an online community (e.g., a group or clan), while other client devices may belong to users who are independent and have no affiliation with an online community.

The computer system 103 may implement a method for tag-based grouping of online communities in accordance with an embodiment of the present invention. By way of example, and not by way of limitation, this method may be implemented each time the user signs on, each time the user updates his/her profile, each time the user's behavior changes, or any other time the user interacts with the computer game system depending on the application. The method may proceed as shown in the flow diagram of FIG. 1B.

The computer game system 103 may initially obtain one or more tags associated with the user 101 as indicated at 113. As used herein, the term “tag” refers to a non-hierarchical keyword or term attached to a piece of information. A tag may be regarded as a type of metadata that helps describe information. A user 101 may have several tags associated with him to help identify him and indicate his preferences and interests. These tags may be pre-defined by the computer game system 103 or may be open field text tags created by the user, or a combination of both. Pre-defined tags allow for better organization by removing homonyms (i.e. same tag used with different meanings) and synonyms (i.e., multiple tags for the same concept) from the set of available tags. Open field text tags give the user more flexibility and freedom over the types of tags associated with him.

Various methods exist for obtaining tags associated with a given user. By way of example, and not by way of limitation, the computer system 103 may store a user profile which indicates certain user preferences (e.g., favorite game, favorite sports team, etc.) and user identifiers (e.g., age, location, etc.). The profile may be stored on the user's client device 105 or on the server 106. It is also possible for different portions of the information contained in the profile to be stored at distributed locations, which may include the user's client device 105, the server 106, and the other client devices 111. The computer system 103 (e.g., the user's client device 105 or the server 106 or some combination of both) may then discover several tags associated with the user 101 by accessing the information in this profile and searching the data in the profile for matches with data corresponding to tags for one or more user groups.

In some implementations, the tags may be obtained by the client device 105 or the server 106 when the user provides input. For example, the system 103 (e.g., the user's client device 105 or the server 106 or some combination of both) may prompt the user to enter the data into the profile via the client device 105. The client device may obtain the tags when the input is entered by the user and the server may obtain the tags if the input is transmitted from the client device to the server. Alternatively, by way of example, and not by way of limitation, the computer system 103 (e.g., the client device 105, server 106 or some combination of both) may monitor a user's behavior and associate certain tags with the user based on the user's habits. For example, a user who habitually plays the same game title everyday may have a tag associated with him that indicates his affinity for that particular game title.

Once the computer game system 103 has obtained tags associated with the user 101, it may then proceed to identify one or more groups compatible with the user's tags as indicated at 115. By way of example, and not by way of limitation, such groups may include users of client devices on the network 109 or on another network (not illustrated) to which the game network 109 is connected. As discussed above, such groups may be formed solely for the purpose of competition and game-related achievement or may be formed to promote social interaction and a sense of community. Groups may compete against opposing groups or may allow exclusive competition amongst its members. Additionally, groups, sometimes referred to as clans, may be game-specific or may span across multiple game titles.

It is noted that embodiments of the present invention are not limited to implementations involving pre-existing groups. Identifying groups at 115 may involve the generation of entirely new groups based on compatibility with one or more user tags. For example, one of the tags in a user's profile may identify a user's favorite sport or sport's team. If, e.g., a user is a fan of the San Francisco Giants, the system 103 may generate a new group whose members are also San Francisco Giants fans. The system 103 may also automatically generate a rival group whose members are fans of a rival team, such as the Los Angeles Dodgers. The system 103 may identify the rival group based on a context of real world events. For example, during the regular season, Giants and Dodgers fans are likely to be rivals. However, if the Giants make the playoffs and the Dodgers do not, the Giants group's rival group may be comprised of fans of the Giants playoff opponents, e.g., the Texas Rangers.

The computer system 103 may identify the group or groups in any of a number of different ways. For example, the client 105 may query a database, which could be stored on the client 105 or server 106 or elsewhere, to see if any groups in the database have one or more group tags that match corresponding tags in a user's profile. The client 105 could then identify the groups when it receives a listing of matching groups in response to the database query. Alternatively, the client 105 or server 106 may identify the groups in generating the response to the database query.

The computer system 103 may then prompt the user to join the one or more of the identified groups as indicated at 117. By way of example, and not by way of limitation, these groups may be presented to the user as a list for the user to choose from or may be prioritized based on their compatibility to the user's associated tags. By way of example, and not by way of limitation, the client device 105 may prompt the user by generating or receiving the list and presenting it to the user, e.g., on the display 102. Alternatively, the server 106 may prompt the user by generating the list, and transmitting it to the client device 105. The server may also send a signal or instruction that causes the client device to display the list to the user.

Following the prompt, the computer game system 103 may then enroll the user as a member of one or more groups upon receiving notification from the user as indicated at 119. The client device 105 may enroll the user, e.g., by forwarding a notification from the user to the server 106. The server 106 may enroll the user in a group, e.g., by adding the user to a listing of group members and granting the user to access group-related computer activities that are restricted to members of the group. By way of example, and not by way of limitation, each group may have a group profile associated with it. This group profile may include individual member profiles, group achievements, group rankings, group assets, and any other relevant information related to the group. Once the user has been enrolled as a member of the group, tags associated with the user may contribute to the group profile.

It is noted that the system 103 and/or method 112 may be configured allow a user to enroll as a member of more than one group at a single time so long as membership in multiple groups does not create a conflict (e.g., joining rival clans with exclusive membership).

Having the computer system 103 automatically locate groups for the user to join eliminates the burden on the user of having to identify online communities. Moreover, the computer system 103 may further streamline the process of joining online communities by providing the user of a computer system with a list of groups tailored to the user's interests. This promotes both social interaction and competition for a user of a computer game.

There are a number of different ways of implementing group-affiliated activity on a computer system having multiple networked devices. FIG. 2 and FIGS. 3A-3B illustrate just some examples among many possible examples of group-affiliated computer-game activity.

By way of example, and not by way of limitation, such computer-related activities may include turn-based clan competitions (e.g., chess, scrabble, etc.), quiz-based clan competitions, competition among clan members, or clan versus clan competition.

Turn-based clan competition and quiz-based clan competition may implement member participation by allowing each member a vote, and subsequently performing an action that coincides with the majority of votes. By way of example, and not by way of limitation, user votes may be weighted differently, e.g., according to user skill level.

FIG. 2 is a schematic diagram illustrating an example of a clan-affiliated computer-game related activity according to an embodiment of the present invention. In this example, two clans 201, 203 are competing against each other in a quiz-based clan competition. Each clan 201, 203 is composed of a plurality of users (not illustrated) on a plurality of computer game systems 205 which are all connected to the same game network 207. The game network 207 facilitates communication between members of the same clan 201, 203 and also between opposing clans. By way of example, and not by way of limitation, each member of the clan 201, 203 may be allocated a single vote for each quiz-game question, with the answer choice receiving the most votes being ultimately selected by the clan. In the example shown in FIG. 2, clan 1 chose Albany as the capital of New York based on popularity amongst clan members. Clan 2 chose Michael Jordan as the NBA's all-time leading scorer based on popularity amongst clan members.

In the context of the example in FIG. 2, the computer system may assign each user's vote a weight according a user's skill, e.g., based on the percentage and/or number of the user's chosen answers that are correct over the course of one or more sessions of playing the game.

FIG. 3A is a schematic diagram illustrating another example of a clan-affiliated computer-game related activity according to an embodiment of the present invention. In this example, two clans 301, 303 are competing against each other in a turn-based competition (i.e., checkers). Each clan 301, 303 is composed of a plurality of users (not illustrated) on a plurality of computer game systems 305 which are all connected to the same game network 307. The game network 307 facilitates communication between members of the same clan 301, 303 and also between opposing clans. By way of example, and not by way of limitation, each member of the clan 301, 303 may be allocated a single vote for each subsequent action to be performed by the clan. The subsequent action that receives the most votes may be ultimately selected by the clan as their action of choice. In our example, clan 1 moves their checker piece from square c3 to d4 based on the popularity of this particular move amongst the clan members. Clan 2 moves their checker piece from square b6 to a5 based on popularity amongst clan members.

In some embodiments, a user's vote may be weighted according to his skill in a related game. For example, in the context of the example in FIG. 3A, the computer system may assign each user's vote a weight according a user's skill in playing checkers one-on-one against other users or against the computer system. By way of example, the weight may be assigned, e.g., based on the user's winning percentage and/or number of wins in playing checkers one-on-one.

FIG. 3B is a schematic diagram illustrating another example of a group-affiliated computer-game related activity according to another embodiment of the present invention. In this example, two groups 301, 303 of users compete against each other in a group versus group competition. By way of example, and not by way of limitation, this group versus group competition may take the form of a 1st person/3rd person shooter. Each group 301, 303 is composed of a plurality of users (not illustrated) on a plurality of computer game systems 305 (e.g., client devices) which are all connected to the same game network 307. The game network 307 facilitates communication between members of the same clan 301, 303 and also between opposing clans. Each group member (i.e., each user) may control a character 309, 309′ in a game. The characters 309, 309′ are segregated according to clan. By way of example, and not by way of limitation, each computer system 305 may recognize a particular clan and perform an action signifying identification of the group.

In this example, each character may be outfitted with a uniform containing a group identifier (e.g., star, cross).

By way of example, and not by way of limitation, each group may also have a set of group assets (e.g., medals, trophies, virtual currency, game assets, and other achievements) accumulated over the course of competition. During group versus group competition, each group may be given the opportunity to wager a clan asset. In our example, clan 1 wagers a medal from its set of clan assets and clan 2 wagers three trophies from its set of clan assets. Allowing clans to wager assets during such computer-game related activities gives additional value to the game and supports a more intense sense of competition.

There are a number of different implementations in which the computer system 103 depicted in FIG. 1A may implement tag-based grouping of online communities, e.g., as described above. In some, but not all, of these embodiments, the method 112 may be implemented primarily through the server 106. By way of example, and without loss of generality, the server 106 in the system 103 may be configured as shown in FIG. 4. As illustrated in FIG. 4, a server 400 may include a central processing unit (CPU) 404 configured to run software applications and optionally an operating system. The CPU 404 may include one or more processing cores. By way of example and without limitation, the CPU 404 may be a parallel processor module, such as a Cell Processor or other multi-core processor module.

A memory 406 is coupled to the CPU 404. The memory 406 may store applications and data for use by the CPU 404. The memory 406 may be in the form of an integrated circuit, e.g., RAM, DRAM, ROM, and the like). A computer program 403 may be stored in the memory 406 in the form of instructions that can be executed on the processor 404. A current update value 401 may be stored in the memory 406. The instructions of the program 403 may be configured to implement, amongst other things, a method for tag-based grouping of online communities, e.g., as described above with respect to FIG. 1B. Specifically, the server 400 may be configured, e.g., through appropriate programming of the program 403, to obtain one or more tags associated with a user, identify one or more groups compatible with the user's one or more tags, and prompt the user to join one or more of the identified groups.

The memory 406 may also contain group-related data 405 which the program 403 may use to obtain the tags and/or identify the relevant groups. Such data may include, e.g., a user profile 407, which may contain computer accessible information corresponding to the tags. Such information may include one or more pre-set tags, and one or more open-text tags. The data 405 may also include one or more group profiles 409 that contain computer accessible information relating to one or more groups.

The server 400 may also include well-known support functions 410, such as input/output (I/O) elements 411, power supplies (P/S) 412, a clock (CLK) 413 and cache 414. The mediation server 400 may further include a storage device 415 that provides non-volatile storage for applications and data. The storage device 415 may be used for temporary or long-term storage of information 416. By way of example, the information 416 may include the user profile(s) 407 and/or group profile(s) 409. By way of example, the storage device 415 may be a fixed disk drive, removable disk drive, flash memory device, tape drive, CD-ROM, DVD-ROM, Blu-ray, HD-DVD, UMD, or other optical storage devices.

One or more user input devices 420 may be used to communicate user inputs from one or more users to the server 400. By way of example, one or more of the user input devices 420 may be coupled to the server 400 via the I/O elements 411. Examples of suitable input device 420 include keyboards, mice, joysticks, touch pads, touch screens, light pens, still or video cameras, and/or microphones. The server 400 may include a network interface 425 to facilitate communication via an electronic communications network 427. The network interface 425 may be configured to implement wired or wireless communication over local area networks and wide area networks such as the Internet. The server 400 may send and receive data and/or requests for files via one or more message packets 426 over the network 427.

The components of the server 400, including the CPU 405, memory 406, support functions 410, data storage 415, user input devices 420, and network interface 425, may be operably connected to each other via one or more data buses 460. These components may be implemented in hardware, software or firmware or some combination of two or more of these.

As noted above, embodiments of the present invention may be implemented partly on a client device 104. By way of example, the client device 104 may be configured as shown in FIG. 5, which depicts a block diagram illustrating the components of a client device 500 according to an embodiment of the present invention. By way of example, and without loss of generality, the client device 500 may be implemented as a computer system, such as a personal computer, video game console, personal digital assistant, or other digital device, suitable for practicing an embodiment of the invention. The client device 500 may include a central processing unit (CPU) 505 configured to run software applications and optionally an operating system. The CPU 505 may include one or more processing cores. By way of example and without limitation, the CPU 505 may be a parallel processor module, such as a Cell Processor that uses one or more main processors, sometimes called power processor units (PPU) and one or more co-processor elements sometimes called synergistic processor elements (SPE) having dedicated local storage units. Alternatively, the CPU may be any single-core or multi-core processor.

A memory 506 is coupled to the CPU 505. The memory 506 may store applications and data for use by the CPU 505. The memory 506 may be in the form of an integrated circuit, e.g., RAM, DRAM, ROM, and the like). A computer program 501 may be stored in the memory 506 in the form of instructions that can be executed on the processor 505. The instructions of the program 501 may be configured to implement, amongst other things, a method for tag-based grouping of online communities, e.g., as described above with respect to FIG. 1B. Specifically, the server 500 may be configured, e.g., through appropriate programming of the program 501, to obtain one or more tags associated with a user, identify one or more groups compatible with the user's one or more tags, and prompt the user to join one or more of the identified groups. By way of example and not by way of limitation the tags may be obtained from a user profile 507, portions of which can be stored in the memory 506. Compatible groups may be identified by comparing tags obtained from the user profile 507 to corresponding information in one or more group profiles 509, portions of which can be stored in memory 506. The grouping program 503 may operate in concert with a main program 503, which may be a game program in some embodiments.

The client device 500 may also include well-known support functions 510, such as input/output (I/O) elements 511, power supplies (P/S) 512, a clock (CLK) 513 and cache 514. The client device 500 may further include a storage device 515 that provides non-volatile storage for applications and data. The storage device 515 may be used for temporary or long-term storage of information, such as the user profile 507 and/or group profile(s) 509 can be generated by the group program 503 or downloaded from a remote server. By way of example, the storage device 515 may be a fixed disk drive, removable disk drive, flash memory device, tape drive, CD-ROM, DVD-ROM, Blu-ray, HD-DVD, UMD, or other optical storage devices. Stored grid information 516 or statistics 517 may be stored in the storage device 515 for quick loading into the memory 506.

One or more user input devices 520 may be used to communicate user inputs from one or more users to the computer client device 500. By way of example, one or more of the user input devices 520 may be coupled to the client device 500 via the I/O elements 511. Examples of suitable input device 520 include keyboards, mice, joysticks, touch pads, touch screens, light pens, still or video cameras, and/or microphones. The client device 500 may include a network interface 525 to facilitate communication via an electronic communications network 527. The network interface 525 may be configured to implement wired or wireless communication over local area networks and wide area networks such as the Internet. The client device 500 may send and receive data and/or requests for files via one or more message packets 526 over the network 527.

The client device 500 may further comprise a graphics subsystem 330, which may include a graphics processing unit (GPU) 535 and graphics memory 540. The graphics memory 540 may include a display Memory (e.g., a frame buffer) used for storing pixel data for each pixel of an output image. The graphics memory 540 may be integrated in the same device as the GPU 535, connected as a separate device with GPU 335, and/or implemented within the memory 506. Pixel data may be provided to the graphics memory 540 directly from the CPU 505. Alternatively, the CPU 505 may provide the GPU 535 with data and/or instructions defining the desired output images, from which the GPU 535 may generate the pixel data of one or more output images. The data and/or instructions defining the desired output images may be stored in memory 510 and/or graphics memory 540. In an embodiment, the GPU 535 may be configured (e.g., by suitable programming or hardware configuration) with 3D rendering capabilities for generating pixel data for output images from instructions and data defining the geometry, lighting, shading, texturing, motion, and/or camera parameters for a scene. The GPU 535 may further include one or more programmable execution units capable of executing shader programs.

The graphics subsystem 530 may periodically output pixel data for an image from the graphics memory 540 to be displayed on a video display device 550. By way of example, and not by way of limitation, such images may include images similar to those depicted in FIG. 3A, FIG. 3B, or FIG. 3C. The video display device 550 may be any device capable of displaying visual information in response to a signal from the client device 500, including CRT, LCD, plasma, and OLED displays. The computer client device 500 may provide the display device 550 with an analog or digital signal. By way of example, the display 550 may include a cathode ray tube (CRT) or flat panel screen that displays text, numerals, graphical symbols or images. In addition, the display 550 may include one or more audio speakers that produce audible or otherwise detectable sounds. To facilitate generation of such sounds, the client device 500 may further include an audio processor 555 adapted to generate analog or digital audio output from instructions and/or data provided by the CPU 505, memory 506, and/or storage 515.

The components of the client device 500, including the CPU 505, memory 506, support functions 510, data storage 515, user input devices 520, network interface 525, audio processor 555, and an optional geo-location device 556 may be operably connected to each other via one or more data buses 560. These components may be implemented in hardware, software or firmware or some combination of two or more of these.

It is noted that in some embodiments it may be desirable to determine a location for the client device 500 in order to facilitate the operation of the location-based leaderboard program 503. Knowledge of the location of the client device 500 can facilitate determining a relevant region, sub-region, or sub-sub region for a user of the device. By way of example, and not by way of limitation, the leaderboard program 503 may use information obtained by the geo-location device 556 to facilitate determination of the location of the client device 500. The grouping program 503 can utilize this information, e.g., to obtain tags for the user profile 507 or to identify suitable groups from the group profiles 509.

By way of example, and not by way of limitation, the geo-location device 556 may include a global positioning satellite (GPS) receiver. The GPS receiver can send and receive signals from a plurality of global positioning satellites and determine the distance from the satellites through measurement of the round trip time for the signals. The leaderboard program 503 or main program 501 may implement a suitable triangulation or circulation algorithm to determine the location of the device using distances to different satellites. It is noted that embodiments of the invention are not limited to those that utilize GPS to determine location. For example, geo-location may be based on a cellular telephone network that uses a plurality of cell towers. The geo-location device may be a cellular network interface that receives a signal that includes, among other things, information identifying a cell tower with which the device 500 is in direct communication. The location of the device may be approximately determined from the location of the cell tower.

According to another embodiment, instructions for implementing a method for tag-based grouping of online communities may be stored in a computer readable storage medium. By way of example, and not by way of limitation, FIG. 6 illustrates an example of a non-transitory computer readable storage medium 600 in accordance with an embodiment of the present invention. The storage medium 600 contains computer-readable instructions stored in a format that can be retrieved, interpreted, and executed by a computer processing device. By way of example, and not by way of limitation, the computer-readable storage medium 600 may be a computer-readable memory, such as random access memory (RAM) or read only memory (ROM), a computer readable storage disk for a fixed disk drive (e.g., a hard disk drive), or a removable disk drive. In addition, the computer-readable storage medium 600 may be a flash memory device, a computer-readable tape, a CD-ROM, a DVD-ROM, a Blu-Ray, HD-DVD, UMD, or other optical storage medium.

The storage medium 600 contains instructions for tag-based grouping of online communities 601 configured to implement a method for tag-based grouping of online communities in accordance with the method described above with respect to FIG. 1B. In particular, the instructions for tag-based grouping of online communities 601 may include obtaining user tag instructions 603 that are used to determine one or more tags associated with a user of a computer system. These tags may include pre-set tags or open-text field tags and may be selected by the user or determined by the computer game system based on user behavior, as discussed above.

The instructions for tag-based grouping of online communities 601 may also include group identification instructions 605 that are used to identify one or more groups compatible with the user's one or more tags from a network associated with the computer system. These groups may be prioritized in accordance with their compatibility with the one or more tags associated with the user of the computer system, as discussed above.

The instructions for tag-based grouping of online communities 601 may also include prompting user instructions 607 that are used to prompt the user to join the one or more compatible groups identified by execution of the group identification instructions 607. Prompting of the user may occur each time the user signs on, each time the user's profile is updated, or each time the user's behavior changes, as discussed above.

The instructions for tag-based grouping of online communities 601 may further include user enrollment instructions 609 that can enroll the user as a member of an identified group upon receiving a notification of acceptance from the user. The enrollment instructions 609 may additionally allow the user to compete in a computer-related activity as a member of the group joined by the user. Such computer-related activities may include turn-based games, team-based quiz games, or a team-based event that involves competing against an opposing clan, as discussed above.

Although examples have been described herein in terms of grouping uses for purposes of online computer games, embodiments of the present invention are also applicable to non-game based groupings. For example, embodiments of the present invention may be applied to groupings for other online communities, such as chat groups, forums, or other types of group found in a social network system.

While the above is a complete description of the preferred embodiment of the present invention, it is possible to use various alternatives, modifications, and equivalents. Therefore, the scope of the present invention should be determined not with reference to the above description, but should, instead be determined with reference to the appended claims, along with their full scope of equivalents. Any feature described here, whether preferred or not, may be combined with any other feature described herein, whether preferred or not. In the claims that follow, the indefinite article “A” or “An” refers to a quantity of one or more of the item following the article, except where expressly stated otherwise. The appended claims are not to be interpreted as including means-plus-function limitations, unless such a limitation is explicitly received in a given claim using the phrase “means for”.