Massively multiplayer online role-playing games (“MMORPGs”) are an online role-playing games in which a very large number of people participate simultaneously. Some MMORPGs are implemented in a way that provides an in-game currency that is unique to the particular MMORPG. For example, the MMORPG World of Warcraft provides an in-game currency called gold: gold can be earned by a player while playing World of Warcraft, and can be spent by the player to purchase in-game items such as weapons, food, and skills. Conventionally, each player's in-game currency balance is stored and managed directly by the MMORPG's game engine as part of the player state that the game engine maintains for the player.
The inventors have recognized that conventional approaches to implementing in-game currencies have significant disadvantages. One disadvantage is that players must rely on the developer and/or operator of the game to maintain in-game currency balances in a fair manner. Nothing prevents these inside actors from seizing a portion of a player's balance based upon the player's actions in the game, character type, or other factors. Such seizures can deprive a player of value that they invested heavily to build.
Another disadvantage is that even developers and operators who seek to maintain in-game currency balances in a fair manner may provide inadequate security for this feature of their game, permitting outside actors to steal, extinguish, devalue, etc., currency balances of innocent players. And effectively providing this level of security requires significant effort—initially, and on an ongoing basis—by developers with specialized expertise.
A further disadvantage is that these “native” in-game currencies exist only within the boundaries of the game. It is generally impossible to sell or donate a portion of the player's balance to another player or person wholly outside of the game. Thus, any sales or donations of native currency balances must occur within the game. This means that sales or donations can only be performed to the extent and in the way enabled by the game's developer and operator. It also means that a purchaser of native currency can pay for it using only other currencies that the game is capable of accessing; it is very typical for there to be none of these.
In response recognizing these disadvantages, the inventors have conceived and reduced to practice a software and/or hardware facility for providing support for using in a host game a cryptocurrency that is functionally independent of the host game (“the facility”). Here, the term “functionally independent” means that all transactions in the cryptocurrency are stored on a blockchain that is outside of and independent of the host game's game engine and the internal state it maintains.
The host game can award amounts of the cryptocurrency to players as payment for in-game activity, which they can spend in the game to purchase in-game items. Transactions of both of these types can be triggered by the host game's game engine, with respect to a cryptocurrency wallet owned by the player, as can cryptocurrency donations from one player to another. Where the player does not already own a suitable cryptocurrency wallet, the facility causes one to be created on the player's behalf.
All of the transactions that occur with respect to this wallet are maintained on a public blockchain, which allows the wallet's balance to be discerned from outside the host game, and the corresponding transactions to be audited. Also, the owner of the wallet can transact against the wallet from outside the host game, such as in a cryptocurrency exchange where amounts of the cryptocurrency can be bought and sold.
In some embodiments, the host game is a MMORPG, such as Minecraft. In some embodiments, the facility leverages third-party services, including player authentication; key management and signing; and cryptocurrency networks/blockchain administration.
By operating in some or all of the ways described above, the facility enables the host game to straightforwardly support payments of and with the functionally independent cryptocurrency, in a way that outsources from the host game currency management and associated security and control, and that permits access to and transacting with cryptocurrency balances outside the host game.
Additionally, the facility improves the functioning of computer or other hardware, such as by reducing the dynamic display area, processing, storage, and/or data transmission resources needed to perform a certain task, thereby enabling the task to be permitted by less capable, capacious, and/or expensive hardware devices, and/or be performed with lesser latency, and/or preserving more of the conserved resources for use in performing other tasks. For example, by outsourcing currency management and associated security and control from the host game, the facility reduces the processing burden imposed by the host game, enabling a larger number of instances of the host game to be executed on the same physical and/or virtual hardware, or the same number of instances of the host game to be executed on less powerful, less expensive hardware. Also, the ability to interface with and take advantage of third-party user authentication, credential management, and transaction execution services permits the selection of best-of-breed versions of these services capable of providing high levels of security, error resistance, resource efficiency, responsiveness, uptime, and extensibility, for example, without imposing the burden of their development, operation, and maintenance on the developer and operator of the host game or of the facility.
In some embodiments, a player plays the host game using a client device 200. In various embodiments, a game launcher 201 and/or a game client 202 execute on the client device and interact as part of the operation of the facility. In particular, the client device begins a sign-on process on behalf of the player by invoking a single sign-on (“SSO”) API against authentication server software 211 executing on a player authentication and authorization host. In various embodiments, the hosts shown and described herein are one or more of physical servers, virtual servers, microservers, geographically distributed servers, etc. In some embodiments, the authentication server is an Azure Active Directory single sign-on server. In various embodiments, the client device passes various player credentials to the authentication server as part of the SSO API invocation. If the authentication server finds these credentials satisfactory, the authentication server returns to the client device data that the client device can provide as evidence that it is signed into the authentication server, such as an SSO token. The client device uses this SSO token or other evidence of being signed in in invoking a game authorization API against a game authorization server 212. While the authorization server is shown as executing on the same host as the authentication server, in some embodiments they execute on different hosts. In some embodiments, the authorization server is the Xbox Live gaming service, which maintains a list of purchased games and player IDs for those games for each registered player. The client device uses the game authorization API to determine whether the player is authorized to the host game, such as by having purchased it, entered into a subscription for it, qualified for free use of it, etc. If so, the client device retrieves the player identifier for this player and the host game. Otherwise, the client device gives the player an opportunity to purchase or otherwise authorize themselves to the host game with the authorization server. As a result of these interactions, the client device obtains the player's player ID for the host game.
The client device then uses this player ID, in some cases in connection with the SSO token, to invoke a players API against a game server 221 executing on a game server host 220. In some embodiments, this game server is a forked version of an externally provided game, such as Minecraft. In various embodiments, the host game server is enhanced to operate with the facility in some or all the following ways: to interact with a blockchain layer 222 provided as part of the facility that can create a wallet, create transactions against the wallet, and submit them to a cryptocurrency network; read aspects of a game definition state that relate to cryptocurrency transaction opportunities, such as in-game items available to purchase or sell in various player states of the game, opportunities to earn cryptocurrency by satisfying game playing goals, donating cryptocurrency to another player, etc. When creating a wallet, the blockchain layer submits the wallet's private key via a signing API against a signing service 231 executing on a key signing service host. In some embodiments, the signing service is the AWS Key Management Service. In response, the signing service securely stores the private key in its secure key store 232. When the blockchain layer creates a transaction against the wallet, it sends a copy of that transaction to the signing service. In response, the signing service signs the transaction with the wallet's private key, and returns it to the blockchain layer for submission by the blockchain layer to a cryptocurrency network 240, such as the Ethereum cryptocurrency network or the Polygon cryptocurrency network, using an API exposed by that cryptocurrency network. In some embodiments, the game server receives notifications from the cryptocurrency network, such as confirmations or error messages for transactions submitted by the blockchain layer to the cryptocurrency network for the player against the wallet, or other alerts relating to the wallet, such as information about other transactions submitted for the wallet by other actors; balance changes; new balances; or the passage of certain balance thresholds, etc.
In act 301, the facility invokes the single sign-on API against the authentication server on the player authentication and authorization host. The invocation includes player credentials, and the authentication server responds with an SSO access token for the player, indicating that the player successfully signed in to the single sign-on service. In act 302, the facility uses the SSO access token received in act 301 to access the player's game account to retrieve the player's player ID for the host game from the authorization server. In act 303, if a player ID is returned by the authorization server, then the facility continues in act 305, else the facility continues in act 304. In act 304, the facility initiates the player's purchase, other acquisition, and/or registration of the host game in connection with a game account maintained for the player, such as by the authorization server. After act 304, the facility continues in act 302. In act 305, the facility uses the returned player ID to invoke a player's API against the game server on the game server host. In act 306, in the game server, the facility invokes the blockchain layer to determine a wallet address to which a player state smart contract maps the player's player ID. After act 306, the facility continues in act 307 via connector A. In act 307, if the player ID is mapped to a wallet address, then the facility continues in act 309, else the facility continues in act 308. In act 308, the facility creates a wallet for the player. Further details of act 308 are discussed below in connection with
Those skilled in the art will appreciate that the acts shown in
While
The various embodiments described above can be combined to provide further embodiments. All of the U.S. patents, U.S. patent application publications, U.S. patent applications, foreign patents, foreign patent applications and non-patent publications referred to in this specification and/or listed in the Application Data Sheet are incorporated herein by reference, in their entirety. Aspects of the embodiments can be modified, if necessary to employ concepts of the various patents, applications and publications to provide yet further embodiments.
These and other changes can be made to the embodiments in light of the above-detailed description. In general, in the following claims, the terms used should not be construed to limit the claims to the specific embodiments disclosed in the specification and the claims, but should be construed to include all possible embodiments along with the full scope of equivalents to which such claims are entitled. Accordingly, the claims are not limited by the disclosure.
Number | Date | Country | |
---|---|---|---|
63359104 | Jul 2022 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17881933 | Aug 2022 | US |
Child | 18062390 | US |