U.S. Pat. No. 11,224,807
System and Method for Providing Dynamically Variable Maps in a Video Game
AssigneeActivision Publishing, Inc.
Issue DateOctober 14, 2019
Illustrative Figure
Abstract
A system and method for providing dynamically variable maps in a video game is disclosed. A map is provided that defines a playable space available to one or more game players in a video game. Gameplay is monitored in real-time for the detection of a trigger event. Upon detection of a trigger event, a map management engine dynamically modifies a configuration of the map to improve the gameplay experience based on the type of trigger event. Dynamic modification of a map may comprise altering one or more of the map boundary, and/or the location, position, size, number, state, etc. of one or more static map objects or dynamic map objects. As a result of the dynamic modification of the map, the map may transform from its initial (or first or beginning) configuration to a modified (or new or second) configuration.
Description
DETAILED DESCRIPTION OF THE INVENTION The invention described herein relates to a system and method for providing dynamically variable maps in a video game. Exemplary System Architecture FIGS. 1A and 1Beach depict an exemplary architecture of a system100which may include one or more computer systems110, one or more servers150, one or more databases160, and/or other components, according to one implementation of the invention. FIG. 1Aillustrates an implementation in which server(s)150function as a host computer that hosts gameplay between other devices, such as computer system(s)110. FIG. 1Billustrates an implementation in which a given computer system110functions as a host computer that hosts gameplay between (or with) other devices, such as other computer system(s)110. Unless specifically stated otherwise, the description of various system components may refer to either or both ofFIGS. 1A and 1B. Computer System110 Computer system110may be configured as a gaming console, a handheld gaming device, a personal computer (e.g., a desktop computer, a laptop computer, etc.), a smartphone, a tablet computing device, and/or other device that can be used to interact with an instance of a video game. Referring toFIG. 1B, computer system110may include one or more processors112(also interchangeably referred to herein as processors112, processor(s)112, or processor112for convenience), one or more storage devices114(which may store a map management application120), one or more peripherals140, and/or other components. Processors112may be programmed by one or more computer program instructions. For example, processors112may be programmed by map management application120and/or other instructions (such as gaming instructions used to instantiate the game). Depending on the system configuration, map management application120(or portions thereof) may be part of a game application, which creates a game instance to facilitate gameplay. Alternatively or additionally, map management application120may run on a device such as a server150. Map management application120may include instructions that program computer system110. The instructions may include, without limitation, ...
DETAILED DESCRIPTION OF THE INVENTION
The invention described herein relates to a system and method for providing dynamically variable maps in a video game.
Exemplary System Architecture
FIGS. 1A and 1Beach depict an exemplary architecture of a system100which may include one or more computer systems110, one or more servers150, one or more databases160, and/or other components, according to one implementation of the invention.
FIG. 1Aillustrates an implementation in which server(s)150function as a host computer that hosts gameplay between other devices, such as computer system(s)110.
FIG. 1Billustrates an implementation in which a given computer system110functions as a host computer that hosts gameplay between (or with) other devices, such as other computer system(s)110. Unless specifically stated otherwise, the description of various system components may refer to either or both ofFIGS. 1A and 1B.
Computer System110
Computer system110may be configured as a gaming console, a handheld gaming device, a personal computer (e.g., a desktop computer, a laptop computer, etc.), a smartphone, a tablet computing device, and/or other device that can be used to interact with an instance of a video game.
Referring toFIG. 1B, computer system110may include one or more processors112(also interchangeably referred to herein as processors112, processor(s)112, or processor112for convenience), one or more storage devices114(which may store a map management application120), one or more peripherals140, and/or other components. Processors112may be programmed by one or more computer program instructions. For example, processors112may be programmed by map management application120and/or other instructions (such as gaming instructions used to instantiate the game).
Depending on the system configuration, map management application120(or portions thereof) may be part of a game application, which creates a game instance to facilitate gameplay. Alternatively or additionally, map management application120may run on a device such as a server150.
Map management application120may include instructions that program computer system110. The instructions may include, without limitation, a matchmaking engine122, a map selection engine124, a trigger detection engine128, a map management engine130, and/or other instructions132that program computer system110to perform various operations, each of which are described in greater detail herein. As used herein, for convenience, the various instructions will be described as performing an operation, when, in fact, the various instructions program the processors112(and therefore computer system110) to perform the operation.
Peripherals140
Peripherals140may be used to obtain an input (e.g., direct input, measured input, etc.) from a player. Peripherals140may include, without limitation, a game controller, a gamepad, a keyboard, a mouse, an imaging device such as a camera, a motion sensing device, a light sensor, a biometric sensor, and/or other peripheral device that can obtain an input from a player. Peripherals140may be coupled to a corresponding computer system110via a wired and/or wireless connection.
Server150
Server150may include one or more computing devices.
Referring toFIG. 1A, server150may include one or more physical processors152(also interchangeably referred to herein as processors152, processor(s)152, or processor152for convenience) programmed by computer program instructions, one or more storage devices154(which may store a map management application120), and/or other components. Processors152may be programmed by one or more computer program instructions. For example, processors152may be programmed by gaming instructions used to instantiate the game.
Depending on the system configuration, map management application120(or portions thereof) may be part of a game application, which creates a game instance to facilitate gameplay. Alternatively or additionally, portions or all of map management application120may run on computer system110or server150.
Map management application120may include instructions that program server150. The instructions may include, without limitation, a matchmaking engine122, a map selection engine124, a trigger detection engine128, a map management engine130, and/or other instructions132that program server150to perform various operations, each of which are described in greater detail herein. As used herein, for convenience, the various instructions will be described as performing an operation, when, in fact, the various instructions program the processors152(and therefore server150) to perform the operation.
Although each is illustrated inFIGS. 1A and 1Bas a single component, computer system110and server150may each include a plurality of individual components (e.g., computer devices) each programmed with at least some of the functions described herein. In this manner, some components of computer system110and/or server150may perform some functions while other components may perform other functions, as would be appreciated. Thus, either or both server150and computer system100may function as a host computer programmed by map management application120. The one or more processors (112,152) may each include one or more physical processors that are programmed by computer program instructions. The various instructions described herein are exemplary only. Other configurations and numbers of instructions may be used, so long as the processor(s) (112,152) are programmed to perform the functions described herein.
Furthermore, it should be appreciated that although the various instructions are illustrated inFIG. 1as being co-located within a single processing unit, in implementations in which processor(s) (112,152) includes multiple processing units, one or more instructions may be executed remotely from the other instructions.
The description of the functionality provided by the different instructions described herein is for illustrative purposes, and is not intended to be limiting, as any of instructions may provide more or less functionality than is described. For example, one or more of the instructions may be eliminated, and some or all of its functionality may be provided by other ones of the instructions. As another example, processor(s) (112,152) may be programmed by one or more additional instructions that may perform some or all of the functionality attributed herein to one of the instructions.
Storage Devices114
The various instructions described herein may be stored in one or more storage devices, such as storage device (114,154), which may comprise random access memory (RAM), read only memory (ROM), and/or other memory. The storage device may store the computer program instructions (e.g., the aforementioned instructions) to be executed by processor (112,152) as well as data that may be manipulated by processor (112,152). The storage device may comprise floppy disks, hard disks, optical disks, tapes, or other storage media for storing computer-executable instructions and/or data.
Network102
The various components illustrated inFIG. 1may be coupled to at least one other component via a network102, which may include any one or more of, for instance, the Internet, an intranet, a PAN (Personal Area Network), a LAN (Local Area Network), a WAN (Wide Area Network), a SAN (Storage Area Network), a MAN (Metropolitan Area Network), a wireless network, a cellular communications network, a Public Switched Telephone Network, and/or other network.
InFIG. 1, as well as in other drawing Figures, different numbers of entities than those depicted may be used. Furthermore, according to various implementations, the components described herein may be implemented in hardware and/or software that configure hardware.
Databases160
The various databases160described herein may be, include, or interface to, for example, an Oracle™ relational database sold commercially by Oracle Corporation. Other databases, such as Informix™, DB2 (Database 2) or other data storage, including file-based, or query formats, platforms, or resources such as OLAP (On Line Analytical Processing), SQL (Structured Query Language), a SAN (storage area network), Microsoft Access™ or others may also be used, incorporated, or accessed. The database may comprise one or more such databases that reside in one or more physical devices and in one or more physical locations. The database may store a plurality of types of data and/or files and associated data or file descriptions, administrative information, or any other data.
The foregoing system architecture is exemplary only and should not be viewed as limiting. Other system configurations may be used as well, as would be appreciated by those having skill in the art.
Exemplary Multiplayer System Configurations
As noted above, a multiplayer video game is a video game in which two or more players play in a gameplay session in a cooperative or adversarial relationship. Multiplayer video games have exploded in popularity due, in part, to services such as Microsoft's Xbox LIVE® and Sony's PlayStation Network® which enable gamers all over the world to play with or against one another. Typically, when a player logs in to a game system or platform to play a multiplayer video game, the player may engage in a gameplay session in which he or she is matched with other players to play together (on the same team or as opponents).
FIG. 2Aillustrates an exemplary system configuration200A in which a server hosts a plurality of computer devices to facilitate a multiplayer game, according to an implementation of the invention. In one implementation, one or more servers150may host a number of computer systems110(illustrated as computer systems110A,110B, . . . ,110N) via network102. Each computer system110may include one or more peripherals (illustrated as peripherals140A,140B, . . . ,140N). In this manner, one or more servers150may facilitate the gameplay of different players using different computer systems110and/or otherwise provide one or more operations of map management application120(illustrated inFIG. 1).
In some instances, a given server150may be associated with a proprietary gameplay network system, such as, without limitation, Microsoft's Xbox LIVE® and Sony's PlayStation Network®, and/or another type of gameplay network system. In this implementation, a given computer system110may be associated with a particular type of gaming console. Other types of computer systems110using other types of gameplay networks may be used as well.
FIG. 2Billustrates an exemplary system configuration200B in which a plurality of computer systems110are networked together to facilitate a multiplayer game, according to an implementation of the invention. Any one or more of the computer devices110may serve as a host and/or otherwise provide one or more operations of map management application120(illustrated inFIG. 1).
FIG. 2Cillustrates an exemplary system configuration200C in which a computer system110is used by a plurality of users to facilitate a multiplayer game, according to an implementation of the invention. In an implementation, computer system110may be considered to host the multiplayer game and/or otherwise provide one or more operations of map management application120(illustrated inFIG. 1).
Referring toFIGS. 2A-2C, in an implementation, a host may facilitate the multiplayer game and/or perform other operations described herein. In an implementation, at least some of these operations may also or instead be performed by an individual computer system110. Furthermore, the illustrated system configurations are exemplary only and should not be viewed as limiting in any way. Other system configurations may be used as well, as would be appreciated by those having skill in the art.
While aspects of the invention may be described with reference to multiplayer video games, it should be recognized that the features and functionality described herein are equally applicable to a single player video game.
Generating Matches
According to an aspect of the invention, matchmaking engine122may identify one or more players that are waiting to be matched, such as players whose in-game avatars are waiting in a virtual game lobby to join a gameplay session. The gameplay session may comprise any type of gameplay session including, without limitation, a real gameplay session and/or a practice gameplay session (e.g., associated with a “practice” or “training” mode of a game).
In one implementation, a player may be added to a gameplay session immediately if there is an opening. In another implementation, one or more gameplay sessions may be dynamically combined to create a single gameplay session involving the aggregate of all players in each of the original gameplay sessions. A gameplay session may be dynamically split to create two or more gameplay sessions, where a matchmaking engine may determine which players from the original sessions are grouped and placed into the resulting two or more gameplay sessions.
In one implementation, matchmaking engine122may generate one or more matches by grouping two or more of the identified players. The number of players placed in each match may depend on a number of players waiting to be matched, a number of players needed for a game session (e.g., a number of players needed to form a team or start a match), a number of players that can be accommodated by a game session, and/or other information. Different matches may include different combinations of different players, which may include different numbers of players.
Matchmaking engine122may use known or hereafter-developed matchmaking techniques to generate a match (e.g., interchangeably referred to herein as “matchmaking”) by grouping players in an effort to produce the most satisfying player experiences. Game profiles, player profiles, match variables, and other factors may be considered when generating matches.
Exemplary Map
According to one implementation of the invention, map selection engine124may select, generate, or otherwise obtain a map for a match of a gameplay session.FIG. 3depicts an exemplary illustration of a map300that may be utilized in a gameplay session. Map300may comprise one or more map features (or attributes) including, for example, a map boundary (or perimeter)304, one or more static map objects306, and one or more dynamic map objects308.
Map boundary304may define (in whole or in part) an area of playable space302available to one or more game players during a gameplay session. As described in greater detail below, map boundary304may be scalable (e.g., may expand or contract) or be otherwise altered during a gameplay session to change the area of playable space302.
Examples of static map objects306may include, without limitation, objects that are typically stationary such as a building, a wall, furniture, a tree, a large boulder, a body of water, a mountain, etc. The type of static map objects306presented on map300may of course differ depending on the type of video game.
Dynamic map objects308are objects that may be movable from one position to another, or from one state to another. For instance, a vehicle (e.g., a race car, truck, spaceship, etc.) may comprise a dynamic map object308. A door or drawbridge that is capable of being moved from an open position (or state) to a closed position (or state), or a river whose water level changes to make it passable or impassable, etc. may also comprise a dynamic map object308. The type of dynamic map objects308presented on map300may differ depending on the type of video game. In some instances, a dynamic map object may be moved or manipulated to change the area of (or otherwise alter aspects of) playable space302(as described in greater detail below).
In certain implementations, some static map objects306may be considered dynamic map objects if they are capable of being (or are) moved or manipulated during gameplay. For example, a large boulder may comprise a static map object306. However, the large boulder may also be considered a dynamic map object308if it is capable of being (or is) moved or manipulated by one or more characters or equipment during a gameplay session.
According to an aspect of the invention, one or more of boundary304, static map object(s)306, and/or dynamic map object(s)308may collectively comprise a configuration of playable space302available to players during a gameplay session. The configuration of available playable space302may therefore be altered during a gameplay session by changes to boundary304, and/or the location, position, size, number, state, etc. of one or more of static map object(s)306, and/or dynamic map object(s)308.
As one non-limiting example, map300may comprise one or more regions310(e.g., region A, region B, region C, etc.). Map300may comprise a floor plan of a building, regions A-C may comprise separate rooms, dynamic map objects308may comprise doors, and static map objects306may comprise pieces of furniture. The total area of playable space302may comprise rooms A, B, and C if all of doors308are open, or are unlocked and capable of being opened. By contrast, doors308may be locked between rooms A and B, or rooms B and C. Accordingly, floor plan300may be dynamically configured or modified such that total area of playable space302comprises room A, room B, room C, rooms A and B, rooms B and C, or rooms A, B, and C. As yet another example, one or more pieces of furniture (or static map objects)306may be moved into a position to block an open door308such that the same effect is achieved as if door308were closed or locked.
As the foregoing clearly demonstrates, various configurations of playable space302may be achieved by dynamically modifying a single map300.
In one implementation, as described in greater detail below, the configuration of the playable space302may be altered during a gameplay session by changes to boundary304, and/or the location, position, size, number, state, etc. of one or more of static map object(s)306, and/or dynamic map object(s)308based on trigger events that occur during gameplay.
Map Selection or Generation—Initial Configuration
As noted above, map selection engine124may select, generate, or otherwise obtain a map for a match of a gameplay session. For example, in some implementations, map selection engine124may select and retrieve one or more maps from among a collection of pre-generated maps stored, for instance, in database160. Alternatively, map selection engine124may generate one or more maps, or dynamically modify one or more existing maps, in real-time (“on the fly”) for a gameplay session to change the playable space by altering one or more of the map's boundary, static map object(s), and/or dynamic map object(s), as described above.
In some implementations, a map (whether selected, generated, or modified) may have an initial (or first or beginning) configuration based on gameplay session information. Gameplay session information may describe various game characteristics of a gameplay session that may influence the quality of gameplay. For example, gameplay session information may include, without limitation, a number of players, a composition of teams (e.g., number and/or types of roles in each team), duration of gameplay (e.g., how long a given gameplay session is expected to last), types of matches (e.g., team death match, capture the flag, etc.), and/or other information related to a gameplay session. In another implementation, a map may be selected for a match randomly.
In other implementations, one or more players may select the map to be played in a match of the gameplay session. For instance, before the start of a match, one or more players may vote on the map to be used during the gameplay session.
Trigger Events & Trigger Event Detection During Gameplay
According to an aspect of the invention, once a gameplay session has commenced, gameplay may be monitored in real-time for the detection of a trigger event (e.g., by trigger detection engine128, or other game logic) that may cause the map to be dynamically modified (from its initial configuration) in order to improve the gameplay experience.
Examples of trigger events may include, but are not limited to, a change in a number of players in the gameplay session (e.g., the number of players exceeds or falls below a predetermined threshold), a change in a number of game players playing a particular player role (e.g., a number of a certain type of player roles in a match exceeds or falls below a predetermined threshold), the pace or frequency of gameplay actions/events exceeding or falling below a predetermined threshold, the commencement of a competition or newly available mission that takes place in a map, an inference that one or more players are unhappy with the current configuration of a map or otherwise would prefer variety (e.g., by monitoring unexpected attrition/rage quitting, or through explicit in-game voting or other feedback), or a change in other gameplay information, among other examples.
As a non-limiting example, matchmaking engine122may match one or more players into a map being used in a current gameplay session. The addition of the one or more players may comprise the trigger event that results in the dynamic modification of the map.
According to an aspect of the invention, trigger events may be system-defined (e.g., defined by the game logic) or user-defined (e.g., through one or more user interfaces prior to the commencement of a gameplay session). It should be appreciated that trigger events may be different for different maps, different video games, and/or for different maps utilized in the same video game. In some implementations, a collection of defined trigger events may be accessed and selectively applied to individual maps. In other implementations, trigger events may be created or customized for particular maps. Various configurations may be implemented.
According to an aspect of the invention, when a trigger event is detected during gameplay (e.g., by trigger detection engine128, or other game logic), a map may be dynamically modified (from its initial configuration) as described in detail below. In some implementations, depending on the type of trigger event, detection of the trigger event alone may be sufficient to dynamically modify the map. In other implementations, the gameplay event or action that produced (or resulted in) the triggering event must persist for a predetermined period of time (e.g., a modification waiting period) before the map is dynamically modified. This avoids changing the map frequently when near trigger thresholds, since players may find this confusing or disruptive depending on the game or map design.
In some instances, two or more trigger events may occur during gameplay (and be detected) at substantially the same time. For example, both a number of players and a number of player roles of a certain type may exceed a predetermined threshold at substantially the same time. In such an instance, either or both of the detected trigger events may result in a dynamic modification of the map. For example, in one implementation, the most significant trigger event, as defined by game logic or a user, may be used to dynamically modify a configuration of the map. In some implementations, the occurrence of multiple trigger events may reduce the waiting period to dynamically modify the map. For example, if one or more additional trigger events occur during the modification waiting period, the modification waiting period may be truncated. In other implementations, if two or more significant trigger events are detected within a predetermined (e.g., short) period of time, the dynamic map modification may occur immediately without a modification waiting period. Other configurations may be implemented.
Dynamic Map Modification
According to an aspect of the invention, when trigger detection engine128detects a trigger event, map management engine130may dynamically modify a configuration of the map to improve the gameplay experience based on the type of trigger event.
Dynamic modification of a map may comprise any one or more of the following:altering the boundary (or perimeter) of the map by, for example, increasing or decreasing the boundary such that the boundary respectively defines a larger or smaller area of playable space, and/or opening up or closing (or otherwise altering) one or more portions of the boundary;altering the location, position, size, number, state, etc. of one or more static map objects on the map;altering the location, position, size, number, state, etc. of one or more dynamic map objects on the map;scaling the entire map by increasing or decreasing the size of the map and its constituent objects (including any static map objects, dynamic map objects, virtual characters or avatars depicting players, etc.) to increase or decrease the area of available space, respectively;adding or removing non-player characters (NPCs) or other artificial intelligence (AI) controlled avatars to the gameplay experience;combining all or a portion of the map with all or a portion of one or more additional maps; and/ormodifying the attributes of existing map objects or terrain such that player interaction is fundamentally impacted. Examples may include making a river passable that was formerly impassable, or converting molten lava into cooling rock that can now be traversed without damaging a player's avatar. Regions of a map may also be modified (e.g., filled with water, lava, quick-sand, poisonous gas, poisonous swamps, etc.) to reduce or otherwise alter the playable space of the map without altering the boundary of the map.
As a result of the dynamic modification of the map, the map may transform from its initial (or first or beginning) configuration to a modified (or new or second) configuration. Further, each detected trigger event that occurs during a gameplay session may cause map management engine130to dynamically modify a most recent (e.g, second) configuration of the map to a further modified (or new or third) configuration.
The following are illustrative and non-limiting examples of the various ways in which a map may be dynamically modified in real-time during gameplay in response to certain trigger events.
Number of Players
In one implementation, a map be dynamically modified in real-time, during gameplay, based on a trigger event associated with a change in a number of players in the gameplay session (e.g., the number of players exceeds or falls below a predetermined threshold).
As one example, if a number of players during a gameplay session falls below a predetermined number (e.g., a lower or first threshold), map management engine130may switch the state of one or more dynamic map objects (e.g., close a doorway, block a hallway, remove a bridge, etc.) of the map to selectively close off regions of the map, thereby decreasing the available playable space of the map. In this regard, the remaining players may be forced to play in a smaller area which may, depending on the nature of the game, increase encounters with other players to foster more exciting action and gameplay. In some implementations, when a region of a map is selectively closed off (or otherwise dynamically altered), player avatars may be transported out of the non-playable area to another area of the map (e.g., to a standard safe spawn site). Alternatively, player avatars may be spawned elsewhere after a death (or other game event), and the region of the map to be closed may be closed once no more player avatars are in the region.
Conversely, if a number of players during a gameplay session exceeds a predetermined number (e.g., a higher or second threshold number), map management engine130may switch the state of one or more dynamic map objects (e.g., open a doorway, unblock a hallway, add/open a bridge, etc.) of the map to selectively open up additional regions of the map, thereby increasing the available playable space of the map.
An example is illustrated inFIGS. 4A-4C. In particular,FIG. 4Adepicts a map400A in an initial configuration for a gameplay session of a multiplayer video game involving 16 players. As shown, map400A includes, as playable space, regions A and B as dynamic map objects408are in an open state.
During gameplay, upon detection that the number of players in the gameplay session has decreased from 16 players to a number equal to or below a first (or lower) pre-determined threshold number (e.g., 8 players), map management engine130may, as a result of the triggering event, switch dynamic map objects408to a closed state (or remove them altogether), thereby reducing the available playable space of the map to comprise only Region B as shown in map400B ofFIG. 4B(in a second configuration of the map).
By contrast, during gameplay, upon detection that the number of players in the gameplay session has increased from 16 players to a number equal to or above a second (or upper) pre-determined threshold number (e.g., 20 players), map management engine130may, as a result of the triggering event, switch dynamic map objects408to an open state (and/or add new dynamic map objects), thereby increasing the available playable space of the map to comprise Regions A, B, and C as shown in map400C ofFIG. 4C(in a second configuration of the map).
In this regard, the map may by dynamically modified in real-time during a gameplay session such that various configurations of the map (such as those illustrated inFIGS. 4A, 4B, &4C) may be made available to players based on trigger events that occur during gameplay.
In one implementation, the gameplay session (which players may join or leave in progress) may comprise an unbounded gameplay session such as that disclosed in co-pending, and concurrently filed, U.S. patent application Ser. No. 14/712,387, entitled “System and Method for Providing Continuous Gameplay in a Multiplayer Video Game Through an Unbounded Gameplay Session”, which is hereby incorporated by reference herein in its entirety.
Types of Player Roles
In one implementation, a map may be dynamically modified in real-time, during gameplay, based on a trigger event associated with a change in a number of game players playing a particular player role. Player roles may, of course, differ based on the particular video game.
As a non-limiting example, a player role in a First-Person-Shooter game may comprise that of a sniper. During a gameplay session, if a number of players in the sniper role decreases to a number equal to or below a first (or lower) pre-determined threshold number, map management engine130may, as a result of the triggering event, add or provide ladders to (newly added or existing) sniper perches to the map or improve long-distance sight lines by removing occluding objects in order to incentivize players switch to a sniper role to provide more balanced gameplay. In another example, the map may shrink or remove various map-based sniper advantages based on an inference that current players favor close-quarters gameplay.
By contrast, if a number of players in the sniper role increases during a gameplay session to a number equal to or above a second (or higher) pre-determined threshold number, map management engine130may, as a result of the triggering event, remove ladders and/or remove sniper perches and/or add occluding objects which reduce sight lines from the map in order to deter players from selecting the sniper role.
The types of static and/or dynamic map objects that may be added to or removed from (or be otherwise altered on) a map may differ based on the type and nature of various player roles in various video games.
Pace or Frequency of Gameplay Actions/Events
In one implementation, a map may be dynamically modified in real-time, during gameplay, based on a trigger event associated with the pace or frequency of certain gameplay actions or events.
Returning back to the non-limiting example of a First-Person-Shooter game, excitement during gameplay may, for example, be based on the frequency of the occurrence of a particular event such as a firefight. As such, during a gameplay session, if the frequency of firefights decreases to a value equal to or below a first (or lower) pre-determined threshold value, map management engine130may, as a result of the triggering event, alter the area of playable space on the map by altering one or more of the map's boundary, static map object(s), and/or dynamic map object(s) to provide more opportunities for firefights and increase the pace of play.
By contrast, if the frequency of firefights increases during a gameplay session to a value equal to or above a second (or upper) pre-determined threshold value, map management engine130may, as a result of the triggering event, alter the area of playable space on the map by altering one or more of the map's boundary, static map object(s), and/or dynamic map object(s) to reduce the number of firefights and slow down the pace of play.
The various types of game actions or events that may be used as a triggering event may, of course, differ based on the particular video game.
Gameplay State Information
In addition to the foregoing examples, a map may be dynamically modified in real-time, during gameplay, based on a trigger event associated with changes in other gameplay state information including, without limitation, types of matches (e.g., team death match, capture the flag, etc.), elapsed time or remaining time in a gameplay session, and/or other information related to a gameplay session. For example, in some implementations, if the elapsed time of a gameplay session reaches a predetermined threshold, a map may be dynamically modified in any one or more of the manners described herein for variety. Numerous configurations may be implemented.
Exemplary Flowchart
FIG. 5depicts an exemplary flowchart500of processing operations for providing dynamically variable maps in a video game, according to an aspect of the invention. The various processing operations and/or data flows depicted inFIG. 5are described in greater detail herein. The described operations may be accomplished using some or all of the system components described in detail above and, in some implementations, various operations may be performed in different sequences and various operations may be omitted. Additional operations may be performed along with some or all of the operations shown in the depicted flow diagrams. One or more operations may be performed simultaneously. Accordingly, the operations as illustrated (and described in greater detail below) are exemplary by nature and, as such, should not be viewed as limiting.
In an operation502, one or more trigger events may be defined. Trigger events may be system-defined (e.g., defined by the game logic) or user-defined (e.g., through one or more user interfaces prior to the commencement of a gameplay session). It should be appreciated that trigger events may be different for different maps, different video games, and/or for different maps utilized in the same video game. Examples of trigger events may include, but are not limited to, a change in a number of players in the gameplay session (e.g., the number of players exceeds or falls below a predetermined threshold), a change in a number of game players playing a particular player role (e.g., a number of a certain type of player roles in a match exceeds or falls below a predetermined threshold), the pace or frequency of gameplay actions/events exceeding or falling below a predetermined threshold, the commencement of a competition or newly available mission that takes place in a map, an inference that one or more players are unhappy with the current configuration of a map or otherwise would prefer variety (e.g., by monitoring unexpected attrition/rage quitting, or through explicit in-game voting or other feedback), or a change in other gameplay information, among other examples.
In an operation504, one or more players, such as players whose in-game avatars are waiting in a virtual game lobby to join a gameplay session, may be matched. In one implementation, a matching engine may use known or hereafter-developed matchmaking techniques to generate a match by grouping players in an effort to produce the most satisfying player experiences. Game profiles, player profiles, match variables, and other factors may be considered when generating matches.
In an operation506, a map selection engine may select, generate, or otherwise obtain a map for a match of a gameplay session. In some implementations, one or more maps may be selected and retrieved from among a collection of pre-generated maps stored, for instance, in one or more databases. Alternatively, the map selection engine may generate one or more maps, or dynamically modify one or more existing maps, in real-time (“on the fly”) for a gameplay session to change the playable space by altering one or more of the map's boundary, static map object(s), and/or dynamic map object(s).
In some implementations, a map (whether selected, generated, or modified) may have an initial (or first or beginning) configuration based on gameplay session information. Gameplay session information may describe various game characteristics of a gameplay session that may influence the quality of gameplay. For example, gameplay session information may include, without limitation, a number of players, a composition of teams (e.g., number and/or types of roles in each team), duration of gameplay (e.g., how long a given gameplay session is expected to last), types of matches (e.g., team death match, capture the flag, etc.), and/or other information related to a gameplay session. In another implementation, a map may be selected for a match randomly.
In yet other implementations, one or more players may select the map to be played in a match of the gameplay session. For instance, before the start of a match, one or more players may vote on the map to be used during the gameplay session.
In an operation508, a gameplay session may commence. The gameplay session may comprise any type of gameplay session including, without limitation, a real gameplay session and/or a practice gameplay session (e.g., associated with a “practice” or “training” mode of a game).
In an operation510, gameplay may be monitored in real-time for the detection of a trigger event (e.g., by a trigger detection engine, or other game logic).
If no trigger event is detected in operation510, a determination may be made as to whether the gameplay session should continue. If so, processing may resume at operation508. If not, the gameplay session may terminate in an operation516.
If a trigger event is detected in operation510, the map (provided in operation506) may be dynamically modified (from its initial configuration) in an operation512.
In operation512, a map management engine may dynamically modify a configuration of the map to improve the gameplay experience based on the type of trigger event. Dynamic modification of a map may comprise any one or more of: altering the boundary (or perimeter) of the map by, for example, increasing or decreasing the boundary such that the boundary respectively defines a larger or smaller area of playable space, and/or opening up or closing (or otherwise altering) one or more portions of the boundary; altering the location, position, size, number, state, etc. of one or more static map objects on the map; altering the location, position, size, number, state, etc. of one or more dynamic map objects on the map; scaling the entire map by increasing or decreasing the size of the map and its constituent objects (including any static map objects, dynamic map objects, virtual characters or avatars depicting players, etc.) to increase or decrease the area of available space, respectively; adding or removing non-player characters (NPC) or other artificial intelligence (AI) controlled avatars to the gameplay experience; combining all or a portion of the map with all or a portion of one or more additional maps; and/or modifying the attributes of existing map objects or terrain such that player interaction is fundamentally impacted.
As a result of the dynamic modification of the map, the map may transform from its initial (or first or beginning) configuration to a modified (or new or second) configuration. Gameplay may then continue in operation508.
Other implementations, uses and advantages of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. The specification should be considered exemplary only, and the scope of the invention is accordingly intended to be limited only by the following claims.
Claims
- A computer-implemented method of providing a dynamically variable map in a multiplayer video game, the method being implemented in a host computer system having one or more physical processors programmed with computer program instructions that, when executed by the one or more physical processors, cause the host computer system to perform the method, the method comprising: obtaining, by the host computer system, a map for use in a gameplay session, the map having a first configuration defining a first virtual area available to each of a plurality of players participating in the gameplay session and wherein the map is defined by a virtual terrain;detecting, by the host computer system, an occurrence of a trigger event during the gameplay session, wherein the trigger event comprises a total number of players in the gameplay session exceeding a predetermined threshold;and dynamically modifying the map to a second configuration, by the host computer system, responsive to detection of the trigger event, wherein the second configuration defines a second virtual area available to the plurality of players in the gameplay session without altering a boundary of the map, and wherein the second virtual area is larger than the first virtual area.
- The method of claim 1 , wherein modifying the map to a second configuration comprises: dynamically modifying one or more attributes of the terrain during the gameplay session to increase an available playable space of the map.
- The method of claim 2 , wherein the one or more attributes of the terrain comprises an object having a state, and wherein dynamically modifying the one or more attributes of the terrain comprises changing the state of the object.
- The method of claim 3 , wherein the state is changed from being passable to being impassable.
- The method of claim 3 , wherein the state is changed from being impassable to being passable.
- The method of claim 2 , wherein the one or more attributes of the terrain comprises a static map object.
- The method of claim 2 , wherein the one or more attributes of the terrain comprises a dynamic map object.
- The computer-implemented method of claim 1 , wherein dynamically modifying the map to a second configuration is performed by a map management engine in the host computer system.
- The computer-implemented method computer program product of claim 8 , wherein an attribute of the terrain comprises a static map object and/or a dynamic map object.
- A system for providing a dynamically variable map in a multiplayer video game, the system comprising: a host computer system comprising one or more physical processors programmed with one or more computer program instructions which, when executed, programs the host computer system to: obtain a map for use in a gameplay session, the map having a first configuration defining a first virtual area available to each of a plurality of players participating in the gameplay session and wherein the map is defined by a virtual terrain;detect an occurrence of a trigger event during the gameplay session, wherein the trigger event comprises a total number of players in the gameplay session exceeding a predetermined threshold;and dynamically modify the terrain to a second configuration during the gameplay session, responsive to detection of the trigger event, wherein the second configuration defines a second virtual area available to the plurality of players in the gameplay session without altering a boundary of the map and wherein the second virtual area is larger than the first virtual area.
- The system of claim 10 , wherein the host computer system is further programmed to modify the map to a second configuration by: dynamically modifying one or more attributes of the terrain during the gameplay session to increase an available playable space of the map.
- The system of claim 11 , wherein the one or more attributes of the terrain map comprises an object having a state, and wherein dynamically modifying the one or more attributes of the terrain comprises changing the state of the object.
- The system of claim 12 , wherein the state is changed from being passable to being impassable.
- The system of claim 12 , wherein the state is changed from being impassable to being passable.
- The system of claim 11 , wherein the one or more attributes of the terrain comprises a static map object.
- The system of claim 11 , wherein the one or more attributes of the terrain comprises a dynamic map object.
- The system of claim 10 , further comprising a map management engine in the host computer configured to dynamically modify one or more attributes of the terrain.
- A computer program product for providing a dynamically variable map in a multiplayer video game, the computer program product comprising: one or more tangible, non-transitory computer-readable storage devices;program instructions, stored on at least one of the one or more tangible, non-transitory computer-readable tangible storage devices that, when executed, programs a host computer to: obtain a map for use in a gameplay session, the map having a first configuration defining a first virtual area available to each of a plurality of players participating in the gameplay session and wherein the map is defined by a virtual terrain;detect an occurrence of a trigger event during the gameplay session, wherein the trigger event comprises a total number of players in the gameplay session exceeding a predetermined threshold;and dynamically modify the map during the gameplay session to a second configuration, responsive to detection of the trigger event, wherein the second configuration defines a second virtual area available to the plurality of players in the gameplay session without altering a boundary of the map and wherein the second virtual area is larger than the first virtual area.
- The computer program product of claim 18 further comprising a map management engine in the host computer configured to dynamically modify one or more attributes of the terrain.
- The computer program product of claim 19 , wherein an attribute of the terrain comprises a static map object and/or a dynamic map object.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.