Fast target selection using priority zones
By introducing priority areas and priority rules sets into the touch screen UI of mobile video games, users can quickly and accurately select high-importance target objects close to multiple objects, solving the problem that users find it difficult to quickly select high-importance units in the prior art, and improving the efficiency and accuracy of game operations.
Patent Information
- Application Number
- CN202411810842.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2020-09-11
- Filing Date
- 2021-09-09
- Publication Date
- 2025-03-18
AI Technical Summary
In mobile video games, especially in MOBA games, it is difficult for users to quickly and accurately select high-important target objects close to multiple objects, resulting in unexpected selection or time-consuming operations.
By introducing a priority area in the touch screen UI, the user can define a priority area larger than the aiming crosshair when pressing the attack button, and apply the priority rule set to identify and select the high-importance unit closest to the aiming crosshair.
The ability to quickly and accurately select high-important units among multiple close objects is realized, reducing user operation time and unexpected selection, and improving the efficiency and accuracy of game operations.
Smart Images

Figure CN119633363A_ABST
Abstract
Description
[0001] Description of the case
[0002] This application is a divisional application of the invention patent application with application date of September 9, 2021, application number 202180062691.6, and invention name “Rapid target selection using priority areas”. Technical Field
[0003] The present disclosure relates to computer-implemented methods, computer storage media, and systems for selecting a target object. Background Art
[0004] Users of mobile video games, such as multiplayer online battle arenas (MOBAs), often wish to interact with a single object in an area containing many objects that are close to each other. For example, while playing a mobile multiplayer online battle arena (“MOBA”) game such as League of Legends: ) may wish to launch an attack on a specific enemy unit that is surrounded by several other enemy units. In this case, it may be difficult for the user to accurately select a specific enemy using a touch input device (e.g., a mobile phone), resulting in the user inadvertently attacking one of several nearby enemy units. Although a touch screen user interface (UI) can provide users with additional buttons to help interact with objects that are close to each other, using these additional buttons to select one of the objects to interact with is often an unintuitive and time-consuming task, especially when the objects are very close to each other or when the user has little time to make an accurate selection. As a result, the user may accidentally select an object that he or she does not wish to select, or the user may spend valuable time using different buttons in the UI to select an object, both of which may be disadvantageous to the user during the MOBA game process.
[0005] With this in mind, conventional solutions provide users with the ability to position a targeting crosshair using a touch interface, such as a virtual joystick or button. For example, a touchscreen UI for a mobile game may include an attack button that allows a user to command his or her avatar to attack an opposing avatar (e.g., an enemy unit). When the attack button is pressed, a targeting crosshair may appear below the user's avatar. The user can then move their finger on the touchscreen to position the targeting crosshair below the opposing avatar and release the attack button to launch an attack at the opposing avatar. While this solution does not require a specific button for locking onto the opposing avatar to launch an attack, the user still needs to accurately move the targeting crosshair from his or her avatar to the opposing avatar in order to attack the opposing avatar. Therefore, the user still has to spend valuable gaming time aiming an attack at the opposing avatar, which is difficult in games such as This is something that users cannot have during intense combat sequences in video games like these. Summary of the invention
[0006] Embodiments of the present disclosure relate to selecting objects within a set of objects using a prioritization zone. For example, in some embodiments, a user playing a mobile video game (e.g., a mobile version of League of Legends) is provided with a touch screen UI that includes a set of buttons for commanding a user's avatar (e.g., a user's "hero") in a session of the video game. The user can use an attack button on the UI to command the user's avatar to attack units and / or structures of the opposing team (e.g., "heroes," "soldiers," "turrets," "towers," "inhibitors," "nexus," etc.). In some embodiments, when the user presses the attack button, a prioritization zone around the aiming crosshairs is defined. The prioritization zone is an ergonomic area that is larger than the aiming crosshairs, centered on the aiming crosshairs, and defined by a set of boundary lines derived from the user's avatar. If the user positions the prioritization zone on a set of units and / or structures, a prioritization rule set is applied to identify high-importance units (e.g., game heroes) in the prioritization zone. Based on the prioritization rules, the system can select (e.g., attack) the identified high-importance unit that is closest to the aiming crosshairs found within the prioritization zone. In some embodiments, the prioritization zone is activated only within a defined time period after the user presses the attack button. If the user releases the attack button during the defined time period, the system can identify any of the units and structures of the opposing team in the prioritization zone and select a high-importance unit to interact with it (e.g., launch an attack). In this way, when a high-importance unit is close to a less important unit or when two high-importance units are close to each other, the user can quickly select a high-importance unit (e.g., a hero) instead of a less important unit (e.g., a soldier, a turret, a tower, a crystal, a main city, etc.). If the user does not release the attack button during the defined amount of time, the prioritization zone can be deactivated and the user can move the aiming crosshairs to select any object (e.g., a low-importance unit) that the user wishes to select. Therefore, compared with traditional solutions (such as the above-mentioned solutions), the user does not need additional or specific buttons to aim at a specific object or interact with a specific object. In addition, by limiting some prioritization rules to a specific amount of time and a specific area, the user can quickly, accurately and predictably select a high-priority unit using gestures (e.g., flick, slide, etc.) on a touch screen without hindering the natural feeling of a slower aiming gesture. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The present system and method for selecting an object within a set of objects using prioritization logic and touch gestures is described in detail below with reference to the accompanying drawings, in which:
[0008] Figure 1 is an example system diagram of a gaming system according to some embodiments of the present disclosure;
[0009] Figure 2 is an example prioritization structure according to some embodiments of the present disclosure;
[0010] Figure 3 is an example graphical user interface for playing a video game according to some embodiments of the present disclosure;
[0011] Figure 4 is a flow chart illustrating a method for selecting a target object from a set of objects located within a targeting sub-area according to some embodiments of the present disclosure;
[0012] Figure 5 is a flow chart illustrating a method for activating a focus crosshair within a user interface and selecting a target object from a set of objects located within an aiming sub-region according to some embodiments of the present disclosure;
[0013] Figure 6 is a flow chart illustrating a method for moving the position of a focus crosshair and selecting a target object from a set of objects located within an aiming sub-area according to some embodiments of the present disclosure; and
[0014] Figure 7 is a block diagram of an example computing device suitable for implementing some embodiments of the present disclosure. DETAILED DESCRIPTION
[0015] Systems and methods are disclosed that involve selecting an object within a set of objects using prioritization logic and touch gestures. Although primarily described herein with respect to gaming implementations, this is not intended to be limiting, and the systems and methods of the present disclosure may be implemented in any implementation for selecting an object within a set of objects using prioritization logic and touch gestures. For non-limiting examples, the systems and methods described herein may be implemented with respect to simulation applications, virtual reality (VR) and / or augmented reality (AR) applications, modeling applications, content editing applications, or other applications.
[0016] In some embodiments, playing a touch-based video game (e.g., League of Legends: ) can be provided with a graphical user interface (GUI) on a mobile touch screen that includes game controls (e.g., buttons, directional pad, joystick) for interacting with objects and issuing commands in the environment of a mobile video game (e.g., controlling the movement of a user's avatar (e.g., the user's hero) in a game instance). In some embodiments, the UI may include an attack button for receiving input from the user. Input received via the attack button may command the user's avatar to attack units and / or structures (e.g., "heroes," "creeps," "turrets," "towers," "crystals," "majors," etc.) of the opposing team. As used herein, "attack" may refer to any interaction of a user with an object (e.g., a player, avatar, structure, feature, item, widget, etc.) in the virtual environment of a video game.
[0017] In some embodiments, when a user presses and holds an attack button for a threshold amount of time, the system can generate a graphical crosshair (e.g., a circle, crosshairs, dots, dense dots, etc.) that can be used as an aiming aid for the user. Once the crosshairs have been generated, additional user input can be received to move the crosshairs within the virtual environment. For example, based on determining that the user is pressing the attack button, the system can generate a virtual joystick at the location of the attack button under the user's finger to receive directional input for repositioning the crosshairs. For example, a user in a video game who wishes to attack an opposing player can press and hold the attack button for a threshold amount of time to generate a crosshairs. Once the crosshairs have been generated, the user can move his finger on the UI to reposition the crosshairs on the opposing player and release the attack button to attack the opposing player.
[0018] In some embodiments, when a user presses and holds an attack button, a prioritization zone around the aiming crosshairs may be defined. The prioritization zone may be defined only for a threshold amount of time while the user holds the attack button. The prioritization zone may be defined by a set of geometric attributes (e.g., length, area, volume), and the prioritization zone may rotate with the user avatar based on the direction of input from a virtual joystick. In some examples, the prioritization zone may be an ergonomic area that is larger than the aiming crosshairs and may be centered on the aiming crosshairs.
[0019] If the user positions the prioritization zone over a group of units and / or structures and releases the attack button within a threshold amount of time, the prioritization rule set is applied to identify high-importance units (e.g., game heroes) in the prioritization zone. Based on the priority rules, the system can select (e.g., attack) the identified high-importance units found closest to the aiming crosshairs within the prioritization zone. For example, if the user presses and holds the attack button, moves the prioritization zone over a group of enemy units, and releases the attack button within a threshold amount of time, the system can apply the prioritization rule set to the group of enemy units to identify enemy units in the prioritization zone and select the high-importance units to attack.
[0020] In some embodiments, the threshold time amount can be very short, requiring the user to quickly press the attack button, move the priority zone, and release the attack button in order to use the priority zone and the prioritization rules on the unit group of the opposing team. For example, in some embodiments, the threshold time amount can be limited to two game logic frames (e.g., 0.13 seconds), so that only the user is allowed to have enough time to press the attack button and quickly move (e.g., flick, slide, swipe, flick, etc.) his or her finger in the desired direction on the touch screen and move the desired distance. As described herein, if the user presses and holds the attack button for more than the threshold time amount, the system can generate a graphic aiming crosshair, and the priority zone and the prioritization rule set can be deactivated. Advantageously, by limiting the priority zone to a specific time amount, the user can quickly, accurately and predictably select a high priority unit on the touch screen using gestures (e.g., flick, slide) without hindering the natural feeling of the slower aiming command using the aiming crosshair. For the purposes of this disclosure, the term "finger" is not intended to be restrictive, and it is expected that any capacitive device (e.g., stylus) can be used to perform similar actions related to the user's "finger" described herein. In some embodiments, the gestures described herein can be performed via components of a gamepad or game controller. For example, a user can flick, slide, swipe, or shake a joystick in a desired direction and flick, slide, swipe, or shake the joystick a desired distance.
[0021] refer to Figure 1 , Figure 1is an example system diagram of a gaming system 100 according to some embodiments of the present disclosure. It should be understood that this and other arrangements described herein are set forth by way of example only. Other arrangements and elements (e.g., machines, interfaces, functions, commands, functional groupings, etc.) may be used in addition to or in place of the arrangements and elements shown, and some elements may be omitted entirely. In addition, many of the elements described herein are functional entities that may be implemented as discrete or distributed components or in combination with other components and implemented in any suitable combination and location. The various functions performed by the entities described herein may be performed by hardware, firmware, and / or software, or any combination thereof. For example, the various functions may be performed by a processor executing instructions stored in a memory. The gaming system 100 (and its components, features, and / or functions) may be implemented using one or more computing devices (e.g., Figure 7 The example computing device 700 of is implemented.
[0022] The gaming system 100 may include client devices 104, one or more host servers 120, and / or a software distribution service 140, among others. The components of the gaming system 100 may communicate via a network 102. The network may include a wide area network (WAN) (e.g., the Internet, a public switched telephone network (PSTN), a cellular network, etc.), a local area network (LAN) (e.g., Wi-Fi, Bluetooth, Bluetooth low energy (BLE), Ethernet, etc.), and / or other network types (such as those described herein). In any example, each of the components of the gaming system 100 may communicate with one or more of the other components via one or more of the networks 102.
[0023] like Figure 1 As shown, host server 120 can be separate or distinct from software distribution service 140; however, this is not intended to be limiting. In some examples, host server 120 can be the same or similar server as software distribution service 140. In some examples, host server 120 can be operated or hosted by a first entity (e.g., a first company), and software distribution service 140 can be operated or hosted by a second entity (e.g., a second, different company). In other examples, host server 120 and software distribution service 140 can be operated and / or hosted by the same entity.
[0024] Host server 120 may include one or more application programming interfaces (APIs) to enable information (e.g., user profiles, game state data, etc.) to be transmitted with client device 104. Host server 120 may include game engine 128, communication interface 132, and identity manager 120. In some embodiments, such as when host server 120 includes an identity manager, host server 120 may correspond to an identity management (IDM) system. Although shown as a component of host server 120, this is not intended to be restrictive. In some embodiments, identity manager 120 may be hosted by different servers (such as an IDM server (not shown)). For example, identity management information corresponding to a specific game application may be managed by a game developer of the game application. In such an example, identity manager 120 may be hosted by one or more servers or other computing devices of the game developer.
[0025] The game engine 128 may include game functionality that enables a game to be played by one or more users over a network. The game engine 128 may include a rendering engine, an audio engine, a physics engine, an animation engine, an artificial intelligence engine, a network engine, a streaming engine, a memory management engine, and / or other components or features. The game engine 128 may be used to generate some or all of the game data when a user plays a game instance via or in conjunction with the host server 120.
[0026] The identity manager 120 may manage and store the user's gaming information, including, but not limited to, digitally stored information about game settings, player or avatar customization, in-game progress and achievements, state information (e.g., inventory, health points, game physics, avatar position, etc.) for the current game session (e.g., current sports game, current capture the flag game, etc.), etc. For example, as a user advances through levels in the game application 106, the user's game progress may be stored in the identity manager 120 in association with the user's identity (e.g., user name, gamer tag, etc.). In addition, the user's real-time status in the game instance may be stored. For example, the user's position in the game map, the game clock, damage to various aspects of the game map, weapons acquired, and avatar health points of the user's avatar and other avatars may all be stored in the identity manager 120 in association with the user's identity.
[0027] The communication interface 132 may include one or more components and features for communicating across one or more networks, such as the network 102. The communication interface 132 may be configured to communicate via any number of the networks 102 described herein. Figure 1To communicate in the gaming system 100, the host server 120 can communicate with other host servers 120 via a LAN and / or communicate with the software distribution service 140 and / or the client device 104 via the Internet.
[0028] Software distribution service 140 can manage the licensing (e.g., purchase, rental, lease, and / or loan) of video games or other software applications to users. Software distribution service 140 can include a digital storefront, platform, or application through which users can obtain licenses for video games or applications. Software distribution service 140 can also provide, for example, a digital rights management (DRM) system that limits the use of software to one license per user account.
[0029] The software distribution service 140 may also include a software library 142 that stores data files for software and provides access to these files. For example, a user may access the software library 142 via a mobile application store application via a client device 104, which may include a catalog of available games or applications that the user may purchase or access. The user may browse and / or search the catalog (e.g., via an API) and select a game or application that they want to purchase or access. After selecting a game, the user may purchase, rent, lease, or otherwise access the game via the mobile application store application of the software distribution service 140, and the game or application may begin downloading from the software library 142 to the client device 104.
[0030] Client devices 104 may include smartphones, laptops, tablet computers, desktop computers, wearable devices, game consoles, virtual reality (VR) or augmented reality (AR) systems (e.g., headsets, computers, game consoles, remote controls, controllers, and / or other components), content streaming devices, smart home devices that may include intelligent personal assistants, and / or other types of devices capable of supporting gameplay.
[0031] Client device 104 may include gaming application 106, display 108, communication interface 110, and / or input device 112. Figure 1 Only a few components and / or features of the client device 104 are shown, but this is not intended to be limiting. For example, the client device 104 may include additional or alternative components, such as the following Figure 7 Components of computing device 700 are described.
[0032] The game application 106 may be a mobile application, a computer application, a console application, and / or another type of application. The game application 106 may include instructions that, when executed by a processor, cause the processor to, without limitation, receive input data representing user input to one or more input devices 112, store game data to a server on a host server 120 and / or software distribution service 140 and / or client device 104, retrieve game data from a memory or local storage device, receive game data from a server on a host server 120 and / or software distribution service 140 and / or client device 104 using a communication interface 110, and cause the game to be displayed on a display 108. In other words, the game application 106 may operate as a facilitator for enabling the play of a game associated with the game application on a client device 104.
[0033] The game application 106 may be purchased by a user from a software library 142 of a software distribution service 140 (e.g., for a monetary value or for free). In either example, after the game application 106 is purchased, the data files of the game application 106 may begin downloading to the client device 104. The game application 106 and / or patches or updates for the game application 106 may be downloaded from the software distribution service 140 or may be downloaded from another server, such as a server of a content delivery network (CDN). For example, the software distribution service 140 may be located in different countries or on different continents, so to reduce download time, the game application 106 and / or patches or updates may be stored on different servers around the world. Therefore, while the client device 104 is downloading the game application 106 and / or patches or updates, the client device 104 may connect to a more local server, such as part of a CDN.
[0034] In some examples, such as where a local instance of a game is being executed, client device 104 may render the game using game application 106 and hardware and / or software of client device 104. In other examples, such as where a cloud-hosted instance of a game is being executed, client device 104 may receive display data (e.g., encoded display data) and use the display data to display the game on display 108. In examples where the display data is received by the client device (e.g., client device 104 does not generate the rendering), gaming system 100 may be part of a game streaming system.
[0035] The gaming application 106 may include a selection system 114. The selection system 114 may include a prioritization structure that may include a set of prioritization rules for selecting objects in the virtual environment of the gaming application 106. For example, the selection system may receive input via an input device 112 of the client device 104, which may be used to interact with objects in the video game, as described herein with respect to Figure 2 and Figure 3 In either example, when more than one object is selectable after applying the prioritization rule set, the selection system 114 can prioritize and select the object closest to the target crosshairs.
[0036] Display 108 may include any type of display capable of displaying a game (e.g., a light emitting diode display (LED), an organic LED display (OLED), a liquid crystal display (LCD), an active matrix OLED display (AMOLED)), a quantum dot display (QDD), a plasma display, an LED / LCD display, and / or other types of displays). In some examples, display 108 may include more than one display (e.g., a dual monitor display for computer games, a first display for configuring games, and a virtual reality display for playing games, etc.). In some examples, the display is a touch screen display, such as a touch screen of a smart phone, a tablet computer, a laptop computer, etc., wherein the touch screen is at least one of the input devices 112 of client device 104.
[0037] The input device 112 may include any type of device capable of providing user input to the game. The embodiments described herein generally discuss the use of a touch screen display; however, this is not meant to be limiting. The input device may also include a keyboard, a mouse, a controller, a remote control, a headset (e.g., a sensor for a virtual reality headset or a head mounted display (HMD)), a microphone, and / or other types of input devices.
[0038] The communication interface 110 may include one or more components and features for communicating across one or more networks, such as network 102. The communication interface 110 may be configured to communicate via any number of networks 102 described herein. Figure 1 In order to communicate in the game state transmission system 100, the client device 104 can access the Internet through a router using a cellular, Ethernet or Wi-Fi connection to communicate with the host server 120 and / or the software distribution service 140.
[0039] Reference now Figure 2 , Figure 22 is an example prioritization structure 200 according to some embodiments of the present disclosure. The example prioritization structure 200 provides a visual representation of aspects of the prioritization logic associated with a prioritization rule set, as described herein. The example prioritization structure 200 includes a user avatar (also referred to as a player) 202, a crosshair 204, a crosshair 206, selection areas 208A, 208B, and 208C (collectively referred to herein as "selection areas 208"), prioritization rings 210A and 210B, an extended focus area 212, a priority zone 214, and priority boundaries 216A, 216B, 216C, 216D (collectively referred to herein as "priority boundaries 216").
[0040] In operation, the components of the prioritization structure 200 may move with the player 202, that is, as the player 202 moves throughout the game or application, at least some components of the prioritization structure 200 may move relative to the movement of the player 202. For example, based on an input direction received from a user via a virtual joystick or other input medium to rotate or otherwise move the player 202 in the environment, the selection area 208 and the priority boundary 216 may move and / or rotate relative to the movement of the player 202. In some embodiments, the prioritization structure 200 may move and / or rotate as the player 202 moves and rotates (e.g., relative to the direction the player is facing).
[0041] Crosshair 204 can be a graphic aiming crosshair that can provide a reference point for a user when viewing, selecting, or otherwise interacting with an object in an environment (such as a video game environment). For example, a user can place crosshair 204 above / on / above / below / below / at an opponent's player unit in a video game to aim at an attack on an opponent's player unit. In some embodiments, crosshair 204 can dynamically convey game information to a user via a graphic element. For example, if a user hovers crosshair 204 over an object, information (or information about an object) about how the user can interact with the object can be conveyed to the user. In some embodiments, crosshair 204 can be displayed or hidden from a display based on an input touch gesture. For example, during an initial time period after a user presses an input button (e.g., an attack button), crosshair 204 can be generated, but not displayed. After the initial time period, crosshair 204 can be displayed to the user.
[0042] Crosshair 204 may be constrained relative to crosshair 206 so that crosshair 204 may travel along crosshair 206. In some embodiments, crosshair 204 may be limited to a defined distance from player 202. For example, a video game developer may define a maximum focus range that may specify the length of crosshair 206 that crosshair 204 may travel. For example, the maximum focus range may be 7.5 meters, which would limit the distance a user may move the crosshair, thereby limiting the user's interaction with objects within 7.5 meters of player 202. In some embodiments, a developer may specify that certain interactions are limited to a range less than the defined maximum focus range. For example, although the maximum focus range may be 7.5 meters, a developer may determine that the range of a special attack is limited to 4 meters from player 202. Although crosshair 204 and crosshair 206 are depicted as being directly in front of player 202, crosshair 206 may rotate around player 202 to allow crosshair 204 to be positioned anywhere within selection areas 208A and 208B.
[0043] As the crosshairs 204 moves up and down along the aiming line 206, the prioritization ring 210A can be centered on the crosshairs 204. The prioritization ring 210A can be larger than the aiming crosshairs and provide a selection area to enable the user to select an object to interact with. For example, the user may intend to position the crosshairs 204 on an object, but the user may inadvertently place the crosshairs 204 only near the object, rather than directly on the object. In this example, the prioritization ring 210A operates to give the user a larger area for selecting the object the user wishes to interact with. In some embodiments, a prioritization rule set can be associated with the prioritization ring 210A. For example, if the user moves the crosshairs 204 to a position where the prioritization ring 210A is contacting the player 202 and the object, the selection system 114 can select the player 202 if the action is capable of selecting the player 202.
[0044] Similar to the prioritization ring 210A, the prioritization ring 210B can be centered on the crosshairs 204 as the crosshairs 204 moves up and down along the aiming line 206. The prioritization ring 210B can be larger than the aiming crosshairs and the prioritization ring 210A. The prioritization ring 210B can also provide a selection area (e.g., similar to the prioritization ring 210A) to enable the user to select an object to interact with, and can also operate to give the user a larger area for selecting the object the user wishes to interact with. In some embodiments, a prioritization rule set can be associated with the prioritization ring 210B. For example, if the user moves the crosshairs 204 to a position where the prioritization ring 210B is touching two objects associated with different rankings or priorities, the object with the higher ranking or higher priority is selected.
[0045] In some embodiments, interaction with objects may be limited by selection area 208. For example, a user may only be able to interact with objects within selection areas 208A and 208B. Selection area 208A is a defined area in front of player 202, and selection area 208B is a defined area behind player 202. For example, selection area 208A may be a semicircle in front of player 202 defined relative to player 202, where the radius of the semicircle may extend a defined distance (e.g., 8.7 meters) to the left and right of player 202 at 90 degrees, as shown in FIG. Figure 2 As an additional example, selection area 208B may be a semicircle defined behind player 202 relative to player 202, wherein the radius of the semicircle may extend a defined distance (e.g., 1.5 meters) to the left and right of player 202 at 90 degrees. Figure 2 As can be seen in FIG. 2 , selection area 208A can be larger than selection area 208B. In operation, objects within selection areas 208A and 208B can be considered for selection to allow a user to interact with the object. For example, in a video game, a user can initiate an attack on an opposing team unit within selection areas 208A and 208B, but the user cannot initiate an attack on an opposing team unit outside of selection areas 208A and 208B.
[0046] In some embodiments, the interaction with the objects in the selection area 208 can be further limited by the object data associated with the object. Each object in the video game or application can be associated with the object data, which can be stored in the client device 104 or stored at the host server 120 so that the client device 104 can receive or retrieve the object data. The object data can include, but is not limited to, name, ranking, priority, category, kind, life value status, endurance status, experience, reputation, combat statistics, defense statistics, attack statistics, defense capabilities, attack capabilities, weapon types, and / or other features that can be attributed to the object. In some embodiments, for the user to interact with a class of objects, the object must be in both the selection areas 208A and 208C. For example, when the user chooses to interact with an object, the selection system 114 can determine the position of the object relative to the prioritization structure 200 and can access the object set data associated with the object. Based on the position of the object and the object data associated with the object, the selection system can determine whether the user can interact with the object. For example, a game developer may specify that certain deployable units in a game (eg, plants and wards in the video game League of Legends) must be within both selection area 208A and selection area 208C in order for a user to interact with the deployable units.
[0047] A priority zone 214 may also be generated around the crosshairs 204. The shape of the priority zone 214 may be generated based on the extended focus area 212 and the priority boundary 216. For example, the priority zone 214 may be defined as an area within the extended focus area 212 as limited by the priority boundary 216. Figure 2 As shown, priority boundaries 216A and 216D may define a triangular area or cone originating from player 202, while priority boundaries 216B and 216C may be parallel lines extending forward in the direction that player 202 is facing. Figure 2 It is seen and understood that as crosshair 204 moves upward or downward along aiming line 206, the lower portion (e.g., the tapered portion) of priority zone 214 may change shape. For example, as crosshair 204 moves upward, the area of priority zone 214 may increase due to the relative expansion of priority boundaries 216A and 216D as crosshair 204 moves away from player 202. The location of application priority zone 214 may be determined based on the received touch gesture. For example, if the user moves their finger a given distance and direction during a touch gesture, priority zone 214 may move a corresponding distance and direction away from player 202.
[0048] The priority zone 214 may access object data associated with objects within the priority zone 214 and select priority objects (i.e., high importance objects) within the area of the priority zone 214. For example, when a user moves the crosshairs 204 to an area in the environment, there may be several objects in the area that the user can interact with. To select an object to interact with, the selection system 114 may access object data associated with objects within the priority zone 214 and determine a priority object to interact with. In some embodiments, a game developer may define categories of priority objects within the priority zone 214 that may be selected by the selection system 114. For example, a game developer may determine that only a class of opposing team units (e.g., heroes) may be selected from the set of opposing team units detected in the area of the priority zone 214.
[0049] In some embodiments, the priority zone 214 may be activated for a time period and then may be deactivated after the time period has expired. For example, the priority zone 214 may be activated at the moment when the user activates the crosshairs 204 (e.g., selects an attack button or other input). Then, during the time period, the user may move the crosshairs 204 along the aiming line 206, and the prioritization zone may move relative to the crosshairs 204. For example, if the selection system 114 receives an input to select an object during the time period (e.g., releases the attack button), the selection system 114 may determine all objects within the priority zone 214 and access object data associated with each object within the priority zone 214, and if there is a priority object within the priority zone, determine the priority object to interact with. In some embodiments, if there is no priority object within the priority zone 214 during the time period, the selection system 114 may not select an object. If the selection system 114 does not receive an input to select an object during the time period, the priority zone 214 may be deactivated and the remaining priority rules of the prioritization structure 200 will be applied. Note that when the priority zone 214 is active, the priority rules associated with the priority zone may take precedence over other priority rules of the prioritization structure 200 .
[0050] In some embodiments, the components of the prioritization structure 200 can or may not be displayed to the user. For example, during the time period when the priority zone 214 is activated, any component of the prioritization structure 200 may not be displayed to the user. In some embodiments, it may be advantageous not to display the components of the prioritization structure 200, because displaying too much information to the user may cause confusion. For example, during an intense combat session of a video game, displaying the priority zone 214 may clutter the display and distract the user. On the contrary, the user can simply press the attack button and flick the user's finger in the desired direction to launch an attack on the enemy priority unit without a visual indication of the area of the priority zone 214. Since the area of the priority zone 214 can be relatively large compared to the visible area of the game environment, the user may not need to see the priority zone 214 in order to accurately launch an attack on the enemy priority unit. In another embodiment, the crosshairs 204 can be displayed to the user after the time period has expired. For example, after the priority zone has been deactivated, the crosshairs 204 can be displayed to the user to allow the user to use a virtual joystick (e.g., a virtual joystick can be generated below the attack button after the user presses the attack button) to accurately move the crosshairs 204. The examples provided herein are not intended to be limiting, and any combination of components of the prioritization structure 200 may be displayed to or hidden from the user.
[0051] The time period when priority zone 214 is active can be defined relative to time or relative to the frame of the game. For example, a game developer can specify that priority zone 214 can be active within 0.13 seconds after a user presses an attack button. Alternatively or additionally, a game developer can specify that priority zone 214 can be active within multiple game logic frames (e.g., 15 game logic frames). Game logic frames used herein refer to the simulation update frames of a video game. For example, a game simulation can be updated 15 times per second, which will be equivalent to 15 game logic frames per second. In some embodiments, a user can specify an amount of time or a number of game logic frames during which priority zone 214 can be active.
[0052] Reference now Figure 3 , Figure 3 300 for playing a video game according to some embodiments of the present disclosure. The example GUI 300 includes graphical input elements that can receive user input. The graphical input elements include a control pad 302 (e.g., for moving in a virtual environment), an attack button 304 (e.g., for launching an attack), an additional input button 306, and a game setting button 308 (e.g., for adjusting the settings of a game instance). The example GUI 300 may also include a game map 310 (e.g., for viewing the location of objects within the game environment), a game statistics element 312, and several team units. Some of the team units in the example GUI 300 include a hero 320, a hero 322, a minion 324, a minion 326, a minion 328, and a tower 330.
[0053] Graphic input elements can be ergonomically positioned on a touch screen displaying the example GUI 300 to accommodate different hand sizes and methods of holding or interacting with a touch screen device (such as the client device 104). Graphic input element positions can be dynamically adjusted to accommodate individual user hand sizes, preferred hand positions, preferred interaction methods, and gripping methods. Positions can be adjusted based on how a user holds or interacts with a touch screen device. For example, a user can access a customization interface to move graphical input elements and resize them as desired.
[0054] In some embodiments, a video game may provide a user with a virtual environment (e.g., a level, map, area, stage, world, track, board, floor, region, phase, mission, plot, course, etc.) (such as the environment depicted in GUI 300) that may include an amount of space available for the user to complete objectives during a game instance. For example, a video game may include a virtual field that includes a defined area within which opponents may play against each other in an attempt to eliminate the opposing player.
[0055] In some embodiments, a user may use a graphical user input element to Figure 2 302, the user may use the priority area 214 of the prioritization structure 200 to launch an attack on the opposing team's units. For example, a user playing an instance of a video game may control a hero 320. Using the control pad 302, the user may move the hero 320 into position to launch an attack on the opposing team's units, which may include a hero 322, a minion 324, a minion 326, a minion 328, and a tower 330. Once in position, if the user wishes to launch an attack on the hero 322 using the priority area 214, the user may press the attack button 304, at which point a virtual joystick may be generated and presented below the attack button 304 to receive directional input from the user.
[0056] The user can then perform a touch gesture by sliding his or her finger to move the crosshairs and priority zone from hero 320 to hero 322. If the user Figure 2 322). As discussed herein, based on determining that the user released the attack button within the threshold amount of time, the selection system 114 can determine that the opposing team units within the area of the priority zone can include hero 322, creep 324, creep 326, creep 328, and tower 330. The selection system can then access object data associated with the opposing team units to determine which unit to select (e.g., to receive the user's attack). For example, in an embodiment where only heroes can be selected in the priority zone, the selection system 114 can access object data for each of the opposing team units located in the priority zone 214 and determine that hero 322 can be selected. Based on determining that hero 322 can be selected, the user's attack can be initiated against hero 322.
[0057] In some embodiments, when an object has been selected, a graphical indication may be presented to the user via GUI 300 to indicate that the object has been selected. For example, when launching an attack on an opposing team unit, the opposing team unit may be temporarily highlighted (e.g., a graphical element may be generated on or around the opposing team unit). This may be provided to the user as confirmation that the user successfully launched an attack on the opposing team unit.
[0058] The embodiments described herein may be applied to mobile video games, such as a mobile version of League of Legends. However, this example mobile video game is not intended to limit the scope of this patent. Rather, the inventors have contemplated that the claimed subject matter may also be embodied in other ways to include different steps or combinations of steps similar to those described in this document.
[0059] generally, It is a multiplayer online battle arena (MOBA) game played in a three-dimensional isometric perspective. Opposing teams consisting of multiple players can compete in a match to achieve a victory condition (for example, destroying a core building (called a "city") in the opposing team's base after bypassing a series of defensive structures (for example, "turrets" or "towers")).
[0060] In some game instances, users can control avatars called "heroes", each of which has abilities and / or attribute sets, which can be stored in an object database associated with each hero. Users can select heroes or be assigned heroes before each game instance (i.e., match, round, session, etc.) starts. Each user hero can start the game instance with a low experience level, and can gain experience during the game instance to increase their experience level. The increased experience level can allow the user to unlock the unique abilities and / or attribute sets of the hero. In some embodiments, at the beginning of each game instance, each hero can start with a health level of one hundred percent. If the hero loses all of its health, the hero can be defeated, but can be automatically resurrected after a given amount of time at the base associated with the hero. In other embodiments, each user hero can also start each game instance with a small amount of gold coins, and in addition to being given gold coins by the game over time by default, users can also earn gold coins in various ways throughout the game instance (such as by destroying non-player characters called "soldiers" and "monsters", by destroying or helping to destroy enemy player heroes, by destroying enemy structures) and through unique item interactions or hero abilities. Gold may be spent throughout a game instance to purchase in-game items that further enhance each hero's abilities and gameplay, such as increasing statistics (e.g., health, ability strength, spells, etc.). Additionally, hero experience, gold earned, and items purchased may be specific to each game instance and may not carry over to subsequent game instances.
[0061] In some embodiments, a user can earn rewards throughout one or more game instances, which can be applied to a user account associated with the user and stored in the IDM server. The user's account can start at an entry level (e.g., 1 on a given level scale) and can progress upward as the game instance is played. The user account level can be separated from the role and / or hero level. For example, a user with a user account level of 30 and a user with a user account level of 5 can both start a game instance with a role level of 1.
[0062] User accounts may be ranked based on a ranking system (e.g., an Elo rating system). User rankings may be used to match user accounts with comparable skill levels in each team in each game instance.
[0063] A "Tower" (also known as a turret, for example) can be a heavy defense unit that can automatically attack enemy units if the enemy enters the tower's attack zone. Towers can be important units in League of Legends. Towers can deal damage to enemy units and provide vision to the user's team, allowing the team to better control the battlefield. Turrets can target one unit at a time and deal a large amount of damage. The opposing team must destroy the enemy tower in order to push their attack into enemy territory.
[0064] Reference now Figure 4 , Figure 5 and Figure 6 , each block of methods 400, 500, and 600 described herein includes a computing process that can be performed using any combination of hardware, firmware, and / or software. For example, various functions can be performed by a processor executing instructions stored in a memory. The method can also be embodied as computer-usable instructions stored on a computer storage medium. The method can be provided by a stand-alone application, a service or a hosted service (standalone or in combination with another hosted service), or a plug-in to another product, to name a few. In addition, as an example, methods 400, 500, and 600 are about Figure 1 However, these methods may additionally or alternatively be performed by any one system or any combination of systems (including but not limited to those described herein).
[0065] Figure 4 4 is a flow chart illustrating a method 400 for selecting a target object from a set of objects located within an aiming sub-region according to some embodiments of the present disclosure. At block 402, the method 400 includes determining an aiming region for a player avatar within a user interface based on a direction of a touch gesture received via a touch screen. For example, the touch gesture may include a user pressing an attack button with a user finger, holding the attack button, and moving the user finger in a desired direction.
[0066] At block 404, method 400 includes detecting termination of the touch gesture and determining that the duration of the touch gesture is below a duration threshold. For example, in some embodiments, the threshold amount of time may be limited to two game logic frames (e.g., 0.13 seconds), thereby allowing the user only enough time to press the attack button and quickly move (e.g., flick, slide, swipe, flick, etc.) the user's finger on the touch screen in a desired direction and a desired distance.
[0067] At block 406, method 400 includes determining a first aiming sub-region within the aiming region, the first aiming sub-region being determined based at least in part on a distance of the touch gesture. For example, a shape of priority region 214 can be generated based on extended focus region 212 and priority boundary 216. For example, priority region 214 can be defined as an area within extended focus region 212 as bounded by priority boundary 216.
[0068] At block 408, method 400 includes selecting a target object from the set of objects located within the targeting sub-region. For example, to select an object to interact with, selection system 114 may access object data associated with objects in priority zone 214 and determine a priority object to interact with. For example, a game developer may determine that only a class of opposing team units (e.g., heroes) may be selected from the set of opposing team units detected within the region of priority zone 214.
[0069] At block 410, method 400 includes providing an indication within the user interface that the target object is selected. For example, when launching an attack on an opposing team unit, the opposing team unit may be temporarily highlighted (e.g., a graphical element may be generated on or around the opposing team unit). This may be provided to the user as confirmation that the user successfully launched the attack on the opposing team unit.
[0070] Figure 5 is a flow chart illustrating a method 500 for activating a focus crosshair within a user interface and selecting a target object from a set of objects located within an aiming sub-region according to some embodiments of the present disclosure. At block 502, the method 500 includes: activating a focus crosshair within a user interface based on a touch gesture received at a first control position of a touch screen. For example, in some embodiments, the crosshair 204 can be activated and displayed or hidden from a display based on an input touch gesture. For example, during an initial time period after a user presses an input button (e.g., an attack button), the crosshair 204 can be generated but not displayed. After the initial time period, the crosshair 204 can be displayed to the user.
[0071] At block 504, method 500 includes moving the position of the focus crosshair from the player avatar within the user interface to a different position within the user interface based on the detected movement of the touch gesture. For example, the user may perform a touch gesture by sliding the user's finger to move the crosshair and priority zone from hero 320 to hero 322.
[0072] At block 506, method 500 includes determining an aiming area for the player avatar based on directions from different positions of the player avatar. For example, based on input directions received from a user via a virtual joystick or other input medium to rotate or otherwise move the player 202 in the environment, selection area 208 and priority boundary 216 may move relative to the movement of the player 202.
[0073] At block 508, method 500 includes detecting termination of the touch gesture and determining that the duration of the touch gesture is below a duration threshold. For example, in some embodiments, the threshold amount of time may be limited to two game logic frames (e.g., 0.13 seconds), thereby allowing the user only enough time to press the attack button and quickly move (e.g., flick, slide, swipe, flick, etc.) the user's finger on the touch screen in a desired direction and a desired distance.
[0074] At block 510, method 500 includes determining a first aiming sub-region within the aiming region, the first aiming sub-region being determined based at least in part on distances between different locations and the player avatar. For example, the location of application priority region 214 may be determined based on the received touch gesture. For example, if the user moves their finger a given distance and direction during the touch gesture, priority region 214 may move a corresponding distance and direction from player 202. Additionally, as crosshair 204 moves upward, the area of priority region 214 may increase due to the relative expansion of priority boundaries 216A and 216D as crosshair 204 moves away from player 202.
[0075] At block 512, method 500 includes selecting a target object from the set of objects located within the targeting sub-region. For example, to select an object to interact with, selection system 114 may access object data associated with objects in priority zone 214 and determine a priority object to interact with. For example, a game developer may determine that only a class of opposing team units (e.g., heroes) may be selected from the set of opposing team units detected within the region of priority zone 214.
[0076] At block 514, method 500 includes providing an indication within the user interface that the target object is selected. For example, when launching an attack on an opposing team unit, the opposing team unit may be temporarily highlighted (e.g., a graphical element may be generated on or around the opposing team unit). This may be provided to the user as confirmation that the user successfully launched the attack on the opposing team unit.
[0077] Figure 66 is a flow chart illustrating a method 600 for moving a position of a focus crosshair and selecting a target object from a set of objects located within an aiming sub-region according to some embodiments of the present disclosure. At block 602, the method 600 includes: activating a focus crosshair positioned on a player avatar within a user interface, the focus crosshair being activated based on a touch gesture received at a first control location of a touch screen. For example, during an initial time period after a user presses an input button (e.g., an attack button), the crosshair 204 may be generated but not displayed. After the initial time period, the crosshair 204 may be displayed to the user.
[0078] At block 604, method 600 includes moving the position of the focus crosshair from the player avatar to a different position within the user interface based on movement of the touch gesture from the first control position to the second control position of the touch screen. For example, the user may perform a touch gesture by sliding the user's finger to move the crosshair and priority zone from hero 320 to hero 322.
[0079] At block 606, method 600 includes determining an aiming area for the player avatar based on directions from different positions of the player avatar. For example, based on input directions received from a user via a virtual joystick or other input medium to rotate or otherwise move the player 202 in the environment, selection area 208 and priority boundary 216 may move relative to the movement of the player 202.
[0080] At block 608, method 600 includes detecting termination of the touch gesture and determining that the duration of the touch gesture is below a duration threshold. For example, in some embodiments, the threshold amount of time may be limited to two game logic frames (e.g., 0.13 seconds), thereby allowing the user only enough time to press the attack button and quickly move (e.g., flick, slide, swipe, flick, etc.) the user's finger on the touch screen in a desired direction and a desired distance.
[0081] At block 610, method 600 includes determining a first aiming sub-region within the aiming region, the first aiming sub-region being determined based at least in part on distances between different locations and the player avatar. For example, a location to apply priority region 214 may be determined based on the received touch gesture. For example, if the user moves their finger a given distance and direction during the touch gesture, priority region 214 may move a corresponding distance and direction from player 202. Additionally, as crosshair 204 moves upward, an area of priority region 214 may increase due to a relative expansion of priority boundaries 216A and 216D as crosshair 204 moves away from player 202.
[0082] At block 612, method 600 includes selecting a target object from the set of objects located within the targeting sub-region. For example, to select an object to interact with, selection system 114 may access object data associated with objects in priority zone 214 and determine a priority object to interact with. For example, a game developer may determine that only a class of opposing team units (e.g., heroes) may be selected from the set of opposing team units detected within the region of priority zone 214.
[0083] At block 612, method 600 includes providing an indication within the user interface that the target object is selected. For example, when launching an attack on an opposing team unit, the opposing team unit may be temporarily highlighted (e.g., a graphical element may be generated on or around the opposing team unit). This may be provided to the user as confirmation that the user successfully launched the attack on the opposing team unit.
[0084] Although various examples are described herein specifically for video games and multiplayer online battle arena (MOBA) type games, this is not intended to be restrictive and can be applicable to various competitive and / or cooperative games and e-sports games, which may include but are not limited to racing, sports simulation, real-time strategy, collectible card game simulation, massively multiplayer online games, platform games, etc. For example, for sports simulation games, the priority selection operation may include selecting players on the field or court to pass the ball to the player with the highest statistics compared to other players in the priority zone. Embodiments are also not limited to video games and game applications. Other suitable embodiments include applications that will benefit from the prioritized selection capability based on user gestures and object data associated with each object in the priority zone. These applications may include but are not limited to graphic content creation or design applications (e.g., 3D modeling and CAD applications), simulation, video processing or encoding, and deep learning (e.g., training and / or ground truth generation) applications.
[0085] Figure 7 7 is a block diagram of an example computing device 700 suitable for implementing some embodiments of the present disclosure. The computing device 700 may include an interconnect system 702 that directly or indirectly couples the following devices: a memory 704, one or more central processing units (CPUs) 706, one or more graphics processing units (GPUs) 708, a communication interface 710, an input / output (I / O) port 712, an input / output component 714, a power supply 716, one or more presentation components 718 (e.g., a display), and one or more logic units 720.
[0086] although Figure 7The various blocks of are shown as being connected via interconnect system 702 using lines, but this is not intended to be limiting and is for clarity only. For example, in some embodiments, presentation component 718 (such as a display device) can be considered to be I / O component 714 (e.g., if the display is a touch screen). As another example, CPU 706 and / or GPU 708 may include memory (e.g., memory 704 may represent a storage device in addition to the memory of GPU 708, CPU 706, and / or other components). In other words, Figure 7 The computing devices described herein are illustrative only. No distinction is made between such categories as "workstation," "server," "laptop," "desktop," "tablet," "client device," "mobile device," "handheld device," "game console," "electronic control unit (ECU)," "virtual reality system," and / or other device or system types, as all of these categories are intended to be included in the same Figure 7 within the range of computing devices.
[0087] The interconnection system 702 may represent one or more links or buses, such as an address bus, a data bus, a control bus, or a combination thereof. The interconnection system 702 may include one or more bus or link types, such as an industry standard architecture (ISA) bus, an extended industry standard architecture (EISA) bus, a video electronics standard association (VESA) bus, a peripheral component interconnect (PCI) bus, a peripheral component interconnect fast (PCIe) bus, and / or another type of bus or link. In some embodiments, there is a direct connection between components. As an example, the CPU 706 may be directly connected to the memory 704. In addition, the CPU 706 may be directly connected to the GPU 708. In the case where there is a direct or point-to-point connection between components, the interconnection system 702 may include a PCIe link to perform the connection. In these examples, the computing device 700 does not need to include a PCI bus.
[0088] Memory 704 may include any of a variety of computer-readable media. Computer-readable media may be any available media that can be accessed by computing device 700. Computer-readable media may include volatile and non-volatile media, and removable and non-removable media. By way of example and not limitation, computer-readable media may include computer storage media and communication media.
[0089] Computer storage media may include volatile and nonvolatile media and / or removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, program modules, and / or other data types. For example, memory 704 may store computer-readable instructions (e.g., representing programs and / or program elements, such as an operating system). Computer storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage devices, cassettes, magnetic tape, magnetic disk storage devices or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by the computing device 700. As used herein, computer storage media itself does not include signals.
[0090] Computer storage media may embody computer readable instructions, data structures, program modules, and / or other data types in a modulated data signal (such as a carrier wave or other transmission mechanism), and include any information transmission media. The term "modulated data signal" may refer to a signal that sets or changes one or more of its characteristics in a manner that encodes the information in the signal. As an example and not limitation, computer storage media may include wired media (such as a wired network or a direct wired connection) and wireless media (such as acoustic, RF, infrared and other wireless media). Combinations of any of the above should also be included within the scope of computer readable media.
[0091] The CPU 706 may be configured to execute at least some computer-readable instructions to control one or more components of the computing device 700 to perform one or more of the methods and / or processes described herein. The CPUs 706 may each include one or more (e.g., one, two, four, eight, twenty-eight, seventy-two, etc.) cores capable of processing multiple software threads simultaneously. The CPU 706 may include any type of processor, and may include different types of processors (e.g., processors with fewer cores for mobile devices and processors with more cores for servers) depending on the type of computing device 700 implemented. For example, depending on the type of computing device 700, the processor may be an Advanced RISC Machine (ARM) processor implemented using Reduced Instruction Set Computing (RISC) or an x86 processor implemented using Complex Instruction Set Computing (CISC). The computing device 700 may also include one or more CPUs 706 in addition to one or more microprocessors or supplementary coprocessors (such as math coprocessors).
[0092] In addition to or in lieu of the CPU 706, the GPU 708 may be configured to execute at least some computer-readable instructions to control one or more components of the computing device 700 to perform one or more of the methods and / or processes described herein. One or more of the GPUs 708 may be integrated GPUs (e.g., with one or more of the CPUs 706) and / or one or more of the GPUs 708 may be discrete GPUs. In an embodiment, one or more GPUs 708 may be coprocessors of one or more of the CPUs 706. The computing device 700 may use the GPU 708 to render graphics (e.g., 3D graphics) or perform general-purpose computing. For example, the GPU 708 may be used for general-purpose computing on a GPU (GPGPU). The GPU 708 may include hundreds or thousands of cores capable of processing hundreds or thousands of software threads simultaneously. The GPU 708 may generate pixel data for outputting an image in response to a rendering command (e.g., a rendering command received from the CPU 706 via a host interface). The GPU 708 may include a graphics memory (such as a display memory) for storing pixel data or any other suitable data (e.g., GPGPU data). Display memory may be included in memory 704 as part of memory 704. GPU 708 may include two or more GPUs operating in parallel (e.g., via a link). The link may connect the GPUs directly, or may connect the GPUs through a switch. When combined together, each GPU 708 may generate pixel data or GPGPU data for different portions of the output or for different outputs (e.g., a first GPU for a first image, and a second GPU for a second image). Each GPU may include its own memory, or may share memory with other GPUs.
[0093] In addition to or in lieu of the CPU 706 and / or GPU 708, the logic unit 720 may be configured to execute at least some computer-readable instructions to control one or more components of the computing device 700 to perform one or more of the methods and / or processes described herein. In embodiments, the CPU 706, the GPU 708, and / or the logic unit 720 may perform any combination of methods, processes, and / or portions thereof discretely or jointly. One or more of the logic units 720 may be part of, and / or integrated in, one or more of the CPU 706 and / or GPU 708, and / or one or more of the logic units 720 may be discrete components or otherwise external to the CPU 706 and / or GPU 708. In embodiments, one or more of the logic units 720 may be coprocessors for one or more of the CPU 706 and / or GPU 708.
[0094] Examples of logic unit 720 include one or more processing cores and / or components thereof, such as a tensor core (TC), a tensor processing unit (TPU), a pixel vision core (PVC), a vision processing unit (VPU), a graphics processing cluster (GPC), a texture processing cluster (TPC), a streaming multiprocessor (SM), a tree traversal unit (TTU), an artificial intelligence accelerator (AIA), a deep learning accelerator (DLA), an arithmetic logic unit (ALU), an application specific integrated circuit (ASIC), a floating point unit (FPU), an input / output (I / O) element, a peripheral component interconnect (PCI) or a peripheral component interconnect express (PCIe) element, etc.
[0095] The communication interface 710 may include one or more receivers, transmitters, and / or transceivers that enable the computing device 700 to communicate with other computing devices via an electronic communication network (including wired and / or wireless communications). The communication interface 710 may include components and functionality for enabling communication over any of a number of different networks, such as wireless networks (e.g., Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee, etc.), wired networks (e.g., communicating over Ethernet or InfiniB), low-power wide area networks (e.g., LoRaWAN, SigFox, etc.), and / or the Internet.
[0096] I / O ports 712 can enable computing device 700 to be logically coupled to other devices, including I / O components 714, presentation components 718, and / or other components, some of which can be built into (e.g., integrated into) computing device 700. Illustrative I / O components 714 include microphones, mice, keyboards, joysticks, gamepads, game controllers, satellite antennas, scanners, printers, wireless devices, etc. I / O components 714 can provide a natural user interface (NUI) that processes air gestures, voice, or other physiological inputs generated by a user. In some cases, the input can be transmitted to an appropriate network element for further processing. NUI can implement any combination of the following: voice recognition, stylus recognition, facial recognition, biometric recognition, gesture recognition on and near the screen, air gestures, head and eye tracking, and touch recognition associated with the display of computing device 700 (as described in more detail below). Computing device 700 may include a depth camera such as a stereo camera system, an infrared camera system, an RGB camera system, a touch screen technology, and a combination thereof for gesture detection and recognition. In addition, computing device 700 may include an accelerometer or gyroscope capable of detecting motion (e.g., as part of an inertial measurement unit (IMU)). In some examples, the output of the accelerometer or gyroscope may be used by computing device 700 to render immersive augmented reality or virtual reality.
[0097] The power supply 716 may include a hardwired power supply, a battery power supply, or a combination thereof. The power supply 716 may provide power to the computing device 700 to enable the components of the computing device 700 to operate.
[0098] The presentation component 718 may include a display (e.g., a monitor, a touch screen, a television screen, a head-up display (HUD), other display types, or a combination thereof), a speaker, and / or other presentation components. The presentation component 718 may receive data from other components (e.g., GPU 708, CPU 706, etc.) and output data (e.g., as images, video, sound, etc.).
[0099] A network environment suitable for implementing embodiments of the present disclosure may include one or more client devices, servers, network attached storage devices (NAS), other backend devices, and / or other device types. The client devices, servers, and / or other device types (e.g., each device) may be configured to communicate with the client device, server, or other device types. Figure 7 The computing device 700 may be implemented on one or more instances of the computing device 700—eg, each device may include similar components, features, and / or functionality of the computing device 700.
[0100] The components of the network environment can communicate with each other via a network, which can be a wired network, a wireless network, or both. The network can include multiple networks, or a network of networks. As an example, the network can include one or more wide area networks (WANs), one or more local area networks (LANs), one or more public networks (such as the Internet and / or a public switched telephone network (PSTN)), and / or one or more private networks. In the case where the network includes a wireless telecommunications network, components such as base stations, communication towers, or even access points (as well as other components) can provide wireless connections.
[0101] Compatible network environments may include one or more peer-to-peer network environments (in which case the server may not be included in the network environment) and one or more client-server network environments (in which case one or more servers may be included in the network environment). In a peer-to-peer network environment, the functionality described herein with respect to the server may be implemented on any number of client devices.
[0102] In at least one embodiment, the network environment may include one or more cloud-based network environments, distributed computing environments, combinations thereof, and the like. A cloud-based network environment may include a framework layer, a job scheduler, a resource manager, and a distributed file system implemented on one or more servers, which may include one or more core network servers and / or edge servers. The framework layer may include a framework for software supporting the software layer and / or one or more applications of the application layer. The software or application may include web-based service software or applications, respectively. In an embodiment, one or more client devices may use web-based service software or applications (e.g., by accessing the service software and / or application via one or more application programming interfaces (APIs)). The framework layer may be, but is not limited to, a free and open source software web application framework, which may, for example, use a distributed file system for large-scale data processing (e.g., "big data").
[0103] A cloud-based network environment can provide cloud computing and / or cloud storage that performs any combination of the computing and / or data storage functions (or one or more portions thereof) described herein. Any of these different functions can be distributed to multiple locations from a central or core server (e.g., one or more data centers that can be distributed across states, regions, countries, the world, etc.). If the connection to the user (e.g., a client device) is relatively close to an edge server, the core server can assign at least a portion of the functionality to the edge server. A cloud-based network environment can be private (e.g., limited to a single organization), public (e.g., available to many organizations), and / or a combination thereof (e.g., a hybrid cloud environment).
[0104] The client device may include Figure 7 At least some of the components, features, and functionality of the described example computing device 700. By way of example and not limitation, the client device may be embodied as a personal computer (PC), a laptop computer, a mobile device, a smart phone, a tablet computer, a smart watch, a wearable computer, a personal digital assistant (PDA), an MP3 player, a virtual reality headset, a global positioning system (GPS) or device, a video player, a camera, a surveillance device or system, a vehicle, a vessel, an aircraft, a virtual machine, a drone, a robot, a handheld communication device, a hospital device, a gaming device or system, an entertainment system, an in-vehicle computer system, an embedded system controller, a remote control, an appliance, a consumer electronic device, a workstation, an edge device, any combination of the devices depicted, or any other suitable device.
[0105] The present disclosure may be described in the general context of computer code or machine-usable instructions (including computer executable instructions, such as program modules) executed by a computer or other machine (e.g., a personal data assistant or other handheld device). Typically, program modules, including routines, programs, objects, components, data structures, etc., refer to code that performs a specific task or implements a specific abstract data type. The present disclosure may be practiced in a variety of system configurations, including handheld devices, consumer electronics, general-purpose computers, more specialized computing devices, etc. The present disclosure may also be practiced in a distributed computing environment, where tasks are performed by remote processing devices linked through a communication network.
[0106] As used herein, the expression "and / or" about two or more elements should be interpreted as indicating only one element or a combination of elements. For example, "element A, element B, and / or element C" may include only element A, only element B, only element C, element A and element B, element A and element C, element B and element C, or elements A, B, and C. In addition, "at least one of element A or element B" may include at least one of element A, at least one of element B, or at least one of element A and at least one of element B. In addition, "at least one of element A and element B" may include at least one of element A, at least one of element B, or at least one of element A and at least one of element B.
[0107] The subject matter of the present disclosure is described in detail herein to satisfy statutory requirements. However, the description itself is not intended to limit the scope of the present disclosure. Instead, the inventors have contemplated that the claimed subject matter may also be embodied in other ways to include different steps or combinations of steps similar to the steps described in this document in conjunction with other prior art or future technologies. In addition, although the terms "step" and / or "box" may be used herein to refer to different elements of the method employed, the terms should not be interpreted as implying any particular order among or between the various steps disclosed herein, unless and in addition to the order of the various steps being explicitly described.
Claims
1. A computer-implemented method for selecting a target object, the method comprising: determining a targeting area for the player avatar within the user interface based on a direction of a touch gesture received via the touch screen and a direction the player avatar was facing during the touch gesture; as well as In response to the detected termination of the touch gesture and a determination that a duration of the touch gesture is below a duration threshold defined by a number of game logic frames— determining an aiming sub-region of the player avatar within the aiming region, the aiming sub-region being determined based at least in part on a distance of the touch gesture and a facing direction of the player avatar, selecting a target object from a set of objects located within the targeting sub-area based on a prioritization rule, and An indication that the target object is selected is provided and displayed within the user interface.
2. The method according to claim 1, further comprising: Responsive to a determination that the duration of the touch gesture is above a duration threshold, a focus crosshair is caused to be displayed.
3. The method according to claim 1, wherein: The targeting sub-area dynamically adjusts size and shape based on a distance of the touch gesture.
4. The method according to claim 3, wherein: The size and shape of the targeting sub-area increases as the distance between the player avatar and the targeting sub-area increases.
5. The method according to claim 1, wherein: The duration threshold is defined by the number of game logic frames.
6. The method according to claim 1, wherein: Selecting a target object from a set of objects within the targeting sub-area further includes accessing object data associated with each object in the set of objects and determining that the target object is part of a class of objects available for selection within the targeting sub-area.
7. The method according to claim 1, wherein: A targeting sub-area within the targeting area is determined to be restricted by the selected interaction type.
8. A non-transitory computer storage medium storing computer usable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform operations comprising: activating a focus crosshair within the user interface based on a touch gesture received at a first control location on the touch screen; moving the position of the focus crosshairs from the player avatar within the user interface to a different position within the user interface based on the detected movement of the touch gesture; determining a targeting area for the player avatar based on a direction from the player avatar to the different locations and a direction the player avatar is facing during the touch gesture; as well as In response to the detected termination of the touch gesture at the second control location and a determination that a duration of the touch gesture is below a duration threshold defined by a number of game logic frames— determining a first aiming sub-area within the aiming area, the first aiming sub-area being determined based at least in part on distances between the different locations and the player avatar and a facing direction of the player avatar, selecting a target object from a set of objects located within the targeting sub-area based on a prioritization rule, and An indication is provided showing that the target object is selected.
9. The computer storage medium of claim 8, further comprising: Responsive to a determination that the duration of the touch gesture is above a duration threshold, a focus crosshair is caused to be displayed.
10. The computer storage medium of claim 8, wherein: The first aiming sub-area is dynamically resized based on a distance of the touch gesture.
11. The computer storage medium of claim 10, wherein: The size of the first aiming sub-area increases as the distance between the player avatar and the first aiming sub-area increases.
12. The computer storage medium of claim 8, wherein: Selecting a target object from a set of objects within the targeting sub-area further includes accessing object data associated with each object in the set of objects and determining that the target object is part of a class of objects available for selection within the targeting sub-area.
13. The computer storage medium of claim 8, wherein: A first targeting sub-area within the targeting area is determined to be restricted by the selected interaction type.
14. A system comprising: at least one processor, and at least one storage medium storing computer usable instructions that, when used by the at least one processor, cause the at least one processor to perform operations comprising: activating a focus crosshair positioned on a player avatar within the user interface, the focus crosshair being activated based on a touch gesture received at a first control location on the touch screen; moving the position of the focus crosshairs from the player avatar to a different position within the user interface based on movement of the touch gesture from the first control position to a second control position of the touch screen; determining a targeting area for the player avatar based on a direction from the player avatar to the different locations and a direction the player avatar is facing during the touch gesture; and In response to the detected termination of the touch gesture at the second control location and a determination that a duration of the touch gesture is below a duration threshold defined by a number of game logic frames— determining a first aiming sub-area within the aiming area, the first aiming sub-area being determined based at least in part on distances between the different locations and the player avatar and a facing direction of the player avatar, selecting a target object from a set of objects located within the targeting sub-area based on a prioritization rule, and An indication is provided showing that the target object is selected.
15. The system of claim 14, further comprising: Responsive to a determination that the duration of the touch gesture is above a duration threshold, a focus crosshair is caused to be displayed.
16. The system of claim 14, wherein: The first aiming sub-area is dynamically resized based on a distance of the touch gesture.
17. The system of claim 16, wherein: The size of the first aiming sub-area increases as the distance between the player avatar and the first aiming sub-area increases.
18. The system of claim 14, wherein: Selecting a target object from a set of objects within the targeting sub-area further includes accessing object data associated with each object in the set of objects and determining that the target object is part of a class of objects available for selection within the targeting sub-area.