Video games sometimes feature a user-created, system-wide avatar as a user-controlled character. Typically, a user may customize the avatar in variety of ways dealing with appearance, such as facial features and clothing. This allows the user a more personalized and involved video gaming experience. For instance, the Nintendo Corporation has a user-created, system-wide avatar, the MII®, which a user may then use as his or her user-controlled character in video games that support this feature, such as WII SPORTS®. The current system-wide avatars have a pre-defined set of clothing and accessory options (hereinafter “items”). There lacks a mechanism to allow new items to be introduced as options for a player's avatar.
There do exist mechanisms to introduce new items in game-specific online video-game systems. For instance, The Blizzard Corporation's WORLDS OF WARCRAFT allows new items to be introduced for users to place on their avatars. However, this is limited to a single game, and no mechanism exists for such to take place on a system that comprises multiple video games. Furthermore, there is only one source of new items—Blizzard.
It would therefore be an improvement to allow for the introduction of new items for system-wide avatars, especially if these items may be obtained from several different sources.
In example embodiments of the present disclosure, a method, system and computer readable medium are provided to dynamically add an item associated with an avatar associated with a user in an online multi-player video game service. In such a system, the item to be added may originate from a variety of sources, including an e-commerce marketplace, a game that the user is playing, and as a gift from another party.
In example embodiments of the present disclosure, a method system and computer readable medium are provided to dynamically add an item associated with an avatar that exists across a user console, and independent of any video game played on the console. In such a system, a user may have a system-wide avatar that also being used in the currently executing game. Where the user obtains access to an item for his or her avatar while playing the game, the service provides a facility for the user to associate that item with his or her avatar in all games on the console that support avatars and items, as well as a mechanism for the game to be informed of the new association, and load the updated avatar that displays the item to replace the old avatar in the concurrently executing game.
The user's avatar and the association between avatar and item may be stored locally on the console. In one embodiment, this avatar is stored as part of the user's profile. In one embodiment, when the user connects to an online multi-player gaming server, the avatar or profile is synchronized with the service, along with any corresponding items.
A method and computer readable medium are also disclosed that perform comparable functions as the system discussed above.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations and omissions of detail. Those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting.
The systems, methods, and computer readable media for updating the appearance of an avatar that exists across an online multi-player gaming system, including an executing video game, in accordance with this specification are further described with reference to the accompanying drawings in which:
Exemplary Game Console, PC, and Networking Aspects
This section of the present disclosure provides the general aspects of an exemplary and non-limiting game console. Referring now to
A graphics processing unit (GPU) 108 and a video encoder/video codec (coder/decoder) 114 form a video processing pipeline for high speed and high resolution graphics processing. Data is carried from the graphics processing unit 108 to the video encoder/video codec 114 via a bus. The video processing pipeline outputs data to an A/V (audio/video) port 140 for transmission to a television or other display. A memory controller 110 is connected to the GPU 108 and CPU 101 to facilitate processor access to various types of memory 112, such as, but not limited to, a RAM (Random Access Memory).
The multimedia console 100 includes an I/O controller 120, a system management controller 122, an audio processing unit 123, a network interface controller 124, a first USB host controller 126, a second USB controller 128 and a front panel I/O subassembly 130 that are preferably implemented on a module 118. The USB controllers 126 and 128 serve as hosts for peripheral controllers 142(1)-142(2), a wireless adapter 148, and an external memory unit 146 (e.g., flash memory, external CD/DVD ROM drive, removable media, etc.). The network interface 124 and/or wireless adapter 148 provide access to a network (e.g., the Internet, home network, etc.) and may be any of a wide variety of various wired or wireless interface components including an Ethernet card, a modem, a Bluetooth module, a cable modem, and the like.
System memory 143 is provided to store application data that is loaded during the boot process. A media drive 144 is provided and may comprise a DVD/CD drive, hard drive, or other removable media drive, etc. The media drive 144 may be internal or external to the multimedia console 100. Application data may be accessed via the media drive 144 for execution, playback, etc. by the multimedia console 100. The media drive 144 is connected to the I/O controller 120 via a bus, such as a Serial ATA bus or other high speed connection (e.g., IEEE 1394).
The system management controller 122 provides a variety of service functions related to assuring availability of the multimedia console 100. The audio processing unit 123 and an audio codec 132 form a corresponding audio processing pipeline with high fidelity, 3D, surround, and stereo audio processing according to aspects of the present disclosure described above. Audio data is carried between the audio processing unit 123 and the audio codec 126 via a communication link. The audio processing pipeline outputs data to the A/V port 140 for reproduction by an external audio player or device having audio capabilities.
The front panel I/O subassembly 130 supports the functionality of the power button 150 and the eject button 152, as well as any LEDs (light emitting diodes) or other indicators exposed on the outer surface of the multimedia console 100. A system power supply module 136 provides power to the components of the multimedia console 100. A fan 138 cools the circuitry within the multimedia console 100.
The CPU 101, GPU 108, memory controller 110, and various other components within the multimedia console 100 are interconnected via one or more buses, including serial and parallel buses, a memory bus, a peripheral bus, and a processor or local bus using any of a variety of bus architectures.
When the multimedia console 100 is powered on or rebooted, application data may be loaded from the system memory 143 into memory 112 and/or caches 102, 104 and executed on the CPU 101. The application may present a graphical user interface that provides a consistent user experience when navigating to different media types available on the multimedia console 100. In operation, applications and/or other media contained within the media drive 144 may be launched or played from the media drive 144 to provide additional functionalities to the multimedia console 100.
The multimedia console 100 may be operated as a standalone system by simply connecting the system to a television or other display. In this standalone mode, the multimedia console 100 may allow one or more users to interact with the system, watch movies, listen to music, and the like. However, with the integration of broadband connectivity made available through the network interface 124 or the wireless adapter 148, the multimedia console 100 may further be operated as a participant in a larger network community. In this latter scenario, the console 100 may be connected via a network to a server.
Second, now turning to
Computer 241 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 241 and includes both volatile and nonvolatile media, removable and non-removable media. The system memory 222 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 223 and random access memory (RAM) 260. A basic input/output system 224 (BIOS), containing the basic routines that help to transfer information between elements within computer 241, such as during start-up, is typically stored in ROM 223. RAM 260 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 259. By way of example, and not limitation,
The computer 241 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 241 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 246. The remote computer 246 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 241, although only a memory storage device 247 has been illustrated in
When used in a LAN networking environment, the computer 241 is connected to the LAN 245 through a network interface or adapter 237. When used in a WAN networking environment, the computer 241 typically includes a modem 250 or other means for establishing communications over the WAN 249, such as the Internet. The modem 250, which may be internal or external, may be connected to the system bus 221 via the user input interface 236, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 241, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
This network 154 may itself comprise other computing entities that provide services to the system of
It can also be appreciated that an object, such as 155, may be hosted on another computing device 156. Thus, although the physical environment depicted may show the connected devices as computers, such illustration is merely exemplary and the physical environment may alternatively be depicted or described comprising various digital devices such as PDAs, televisions, MP3 players, etc., software objects such as interfaces, COM objects and the like.
There are a variety of systems, components, and network configurations that support distributed computing environments. For example, computing systems may be connected together by wired or wireless systems, by local networks or widely distributed networks. Currently, many networks are coupled to the Internet, which provides an infrastructure for widely distributed computing and encompasses many different networks. Any such infrastructures, whether coupled to the Internet or not, may be used in conjunction with the systems and methods provided.
A network infrastructure may enable a host of network topologies such as client/server, peer-to-peer, or hybrid architectures. The “client” is a member of a class or group that uses the services of another class or group to which it is not related. In computing, a client is a process, i.e., roughly a set of instructions or tasks, that requests a service provided by another program. The client process utilizes the requested service without having to “know” any working details about the other program or the service itself. In a client/server architecture, particularly a networked system, a client is usually a computer that accesses shared network resources provided by another computer, e.g., a server. In the example of
A server is typically, though not necessarily, a remote computer system accessible over a remote or local network, such as the Internet. The client process may be active in a first computer system, and the server process may be active in a second computer system, communicating with one another over a communications medium, thus providing distributed functionality and allowing multiple clients to take advantage of the information-gathering capabilities of the server. Any software objects may be distributed across multiple computing devices or objects.
Client(s) and server(s) communicate with one another utilizing the functionality provided by protocol layer(s). For example, HyperText Transfer Protocol (HTTP) is a common protocol that is used in conjunction with the World Wide Web (WWW), or “the Web.” Typically, a computer network address such as an Internet Protocol (IP) address or other reference such as a Universal Resource Locator (URL) can be used to identify the server or client computers to each other. The network address can be referred to as a URL address. Communication can be provided over a communications medium, e.g., client(s) and server(s) may be coupled to one another via TCP/IP connection(s) for high-capacity communication.
In light of the diverse computing environments that may be built according to the general framework provided in
Finally, it should also be noted that the various techniques described herein may be implemented in connection with hardware or software or, where appropriate, with a combination of both. Thus, the methods, computer readable media, and systems of the presently disclosed subject matter, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium, where, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the subject matter.
In the case of program code execution on programmable computers, the computing device may generally include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. One or more programs that may utilize the creation and/or implementation of domain-specific programming models aspects of the present disclosure, e.g., through the use of a data processing API or the like, are preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system. However, the program(s) can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language, and combined with hardware implementations.
Avatar Closet/Game Awarded Avatar
At 400, the process flow begins. This process may be triggered in response to a user beginning execution of a video game on a video game console that is connected to the online video game service. For example, the user may power on the console, insert a disc that contains computer readable instructions comprising the game, and send an access credential that uniquely The service itself may comprise one or more servers through which online-multiplayer video game play is validated and exchanged between users, a game match-making service that groups users together into a gaming session, an e-commerce marketplace, a message board and a live chat room. The user's avatar may appear in many areas of such a service. For instance it may appear in a user's profile on the service or as a part of any posts the user makes to a message board.
Operation 402 depicts receiving a message indicative of the user obtaining access of the item for use with the avatar. For example the message may be received from the game when the user achieves an accomplishment in the game associated with the item. The accomplishment may be, for instance, beating a level or purchasing it in the game with in-game currency. The message may be received in response to the user purchasing the item from an e-commerce store that is associated with the service. For example, the message may be received in response to the user receiving the item as a gift. For example, a sponsor could allow users access to an item comprising shoes that look like actual shoes that the sponsor produces.
This operation may include the case wherein the item has a creator, and said receiving a message indicative of the user obtaining access occurs after receiving a message from the item creator to store the item. In some cases, the item may be created by a game developer outside of the service. Where that is true, the item creator may send a message to the service indicating that the item is to be stored by the service for future use by users with their avatar.
In some instances the creator has at least one credential, the message includes the credential, and receiving the message from the item creator to store the item includes validating each credential.
Operation 404 depicts storing an indication that the avatar may use the item. Where an embodiment contains a database in which are stored avatars and items, the indication may comprise a third field, such that for every avatar-item pair, there is a corresponding “May use?” field that indicates either “yes” or “no.”
Operation 406 depicts directing a first game to display the avatar with the item. Where the item comprises a hat, said displaying may comprise having the avatar wear the hat on his or her head where the avatar is displayed. Where the item is a non-clothing accessory, such as a fly swatter or a giant foam “We're #1” novelty hand, said displaying may comprise having the avatar holding or otherwise manipulating the item where the avatar is displayed.
In an embodiment, said directing the first game to display the avatar with the item includes receiving a message from the user to display the avatar with the item.
In an embodiment, said first game is an online multi-player game comprising a session and at least one other user. An online gaming service may have many sessions or instances of a particular game active at a single time. Typically, a user participates in no more than a single session of the game at any time. In such an embodiment, said directing the first game to display the avatar with the item includes directing the game of each other user to display the avatar with the item. This will cause each other user who is playing the session with the user to see the updated avatar. This will ensure consistency for all users in the gaming session.
In an embodiment, said directing a first game to display the avatar with the item includes directing the first game to download the item from at least one server. In an architecture where all items are stored on a server, and a subset of the items are stored on the user's computing device, the first game may require local access to the item.
Operation 408 depicts directing a second game to display the avatar with the item. The avatar exists across the entire service, so while an item may be obtained in the first game, it is available for the avatar in all other aspects of the service. Where the user obtains an item for his or her avatar, directs that his or her avatar be displayed with the item, then begins playing a second game that supports avatars, the avatar will be displayed with the item in the second game, as well.
Operation 410 depicts the optional step of displaying the avatar with the item on a message board posting associated with the user. Where the service comprises a message board, users may post to the board to communicate with each other. Attached to each post may be the user's name, the time at which the post was made, and a representation of the user's avatar. The representation may comprise less than the entire avatar, such as a still image of the avatar from the neck up facing forward. Where the user's avatar is displayed with the user's message board posts and the user has set the avatar to be displayed with the item, in an embodiment the image of the user's avatar corresponding to the message board posting includes the item.
Operation 412 depicts the optional step of displaying the avatar with the item on a profile associated with the user. A profile comprises information about the user, such as real name, home page, age, interests, and a personal quote. Where the service comprises a user profile, the profile may comprise a representation of the user's avatar. The representation may comprise less than the entire avatar, such as a still image of the avatar from the neck up facing forward. Where the user's avatar is displayed in the user's profile and the user has set the avatar to be displayed with the item, in an embodiment the image of the user's avatar corresponding to the message board posting includes the item.
Operation 414 depicts the optional step of displaying the avatar with the item in a live chat in which the user is participating. A live chat comprises a communications session where a plurality of users communicate with each other in near-real-time. It may comprise text, audio, video or some combination thereof. In an embodiment, where the user participates in a live chat, all participants in the chat see a representation of the user's avatar. The representation may comprise less than the entire avatar, such as a still image of the avatar from the neck up facing forward. Where the user's avatar is displayed in the user's profile and the user has set the avatar to be displayed with the item, in an embodiment the image of the user's avatar corresponding to the message board posting includes the item.
Operation 416 depicts the optional step of directing the user's computer to store the association between the item and the avatar, wherein the user accesses the service through a computer. It may be beneficial for the user's computer to store the association between the item and the avatar so as to reduce access time by storing the information locally.
Operation 418 depicts the optional step of directing the user's computer to store the item, wherein the user accesses the service through a computer. It may be beneficial for the user's computer to store the item itself so as to reduce access time by storing the information locally.
A user 502 uses a computing device 504 to execute a game 506. In an embodiment of the present disclosure, the user connects to an online gaming server 508 through a network 510.
The server 508 comprises a processor 512, a module to receive a message indicative of the user obtaining access of the item for use with the avatar 514, a module to store an indication that the avatar may use the item 516, a database to store user/avatar/item triplets 518, a module to direct a first game to display the avatar with the item 520, and a module to direct a second game to display the avatar with the item 522.
The computing device 504 may be a dedicated video game console or a more general computing device, such as a cellular telephone or a personal computer. The computing device 504 may be configured to execute a plurality of games. It may have an optical drive and allow for a variety of games to be executed from computer readable instructions stored on optical discs. The games may be stored on a storage device within the computer, such as a hard drive or solid-state drive.
The user may obtain access to an item with his or her avatar. The user may obtain this from a variety of sources. It may be a gift from another user 524, who is accessing the service through a computing device 504a. The user may obtain the item as a reward by achieving a goal in the game 506 associated with the avatar, such as beating a level or obtaining a threshold score. The user may also purchase the item from a e-commerce marketplace offered by the server 508.
When the user has obtained access to the item, a corresponding message is sent to the module to receive a message indicative of the user obtaining access of the item for use with the avatar 514. In an embodiment, said module 514 includes a module to receive a message from the user 502 to display the avatar with the item. In an embodiment, said module to receive 514 is configured to receive the message from the first game 506. Said module 514 processes the message and then send a message to the module to store an indication that the avatar may use the item 516. That module 516 stores said indication in the database 518. In an embodiment, a user may have a plurality of avatars, and the item is restricted to a single avatar. In an embodiment, when a user obtains access to an item and may have a plurality of avatars, the item may immediately be used by all of the user's avatars. In an embodiment, the user has a single avatar, and all items that the user obtains access to correspond to that one avatar.
The module to direct a first game to display the avatar with the item 520 sends a message indicative of such to the first game 506 via the user's computing device 504 through the network 510. The first game 506 receives the message and displays the user's avatar with the item.
Where the user later plays a second game, the module to direct a second game to display the avatar with the item 522 sends a message indicative of such to the second game 526 via the user's computing device 504 through the network 510. The second game 526 receives the message and displays the user's avatar with the item.
While the present disclosure has been described in connection with the preferred aspects, as illustrated in the various figures, it is understood that other similar aspects may be used or modifications and additions may be made to the described aspects for performing the same function of the present disclosure without deviating therefrom. Therefore, the present disclosure should not be limited to any single aspect, but rather construed in breadth and scope in accordance with the appended claims. For example, the various procedures described herein may be implemented with hardware or software, or a combination of both. Thus, the methods and apparatus of the disclosed embodiments, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium. When the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus configured for practicing the disclosed embodiments. In addition to the specific implementations explicitly set forth herein, other aspects and implementations will be apparent to those skilled in the art from consideration of the specification disclosed herein. It is intended that the specification and illustrated implementations be considered as examples only.
This application claims priority to U.S. patent application Ser. No. ______ (Attorney Docket No. MSFT-6209/324415.01), entitled “Programming APIs for an Extensible Avatar System.” This application is related by subject matter to the subject matter disclosed in the following commonly assigned applications, the entirety of which are hereby incorporated by reference herein: U.S. patent application Ser. No. ______ (Attorney Docket No. MSFT-6204/324351.01) titled “A System for Editing an Avatar,” U.S. patent application Ser. No. ______ (Attorney Docket No. MSFT-6205/324378.01) titled “An Extensible Animation and Remote System for Platform Avatars”, and U.S. patent application Ser. No. ______ (Attorney Docket No. MSFT-6208/324414.01), titled “Avatar Closet/Game Awarded Avatar.”