U.S. Pat. No. 10,981,051
Synchronized, Fully Programmable Game Controllers
AssigneeActivision Publishing, Inc.
Issue DateDecember 19, 2017
Illustrative Figure
Abstract
Embodiments of the present specification provide systems and methods for operating game controllers. Microprocessor-controlled game controllers enable recreation of identical gaming scenarios with precision and accuracy. At least one microprocessor is connected to one or more game controllers. The microprocessor is programmed to synchronize the game controllers externally. Additionally, the microprocessor is programmed to modify one or more game controls that are provided by the game controllers. In embodiments of the present specification, game controllers are embedded with a wireless microcontroller that allow for remote feeding of commands to the microcontrollers.
Description
DETAILED DESCRIPTION The present specification relates to synchronizing multiple game controllers and driving a game play session through programmatic logic applied to each of the game controllers, replacing a user's manual input. Game controllers are programmable and can be synchronized externally and independently of a gaming program. Embodiments of the present specification enable repeatable creation of a gaming scenario with precision and accuracy. In some embodiments, microprocessor-controlled game controllers are provided, wherein at least one microprocessor (or microcontroller) is connected to one or more game controllers and wherein the microprocessor is programmed to synchronize the game controllers externally. Additionally, the microprocessor is programmed to modify one or more game controls that are provided by the game controllers. In embodiments of the present specification, wireless microcontrollers are embedded within game controllers to allow for the remote transmission of commands to the microcontrollers. Integrating a wireless microcontroller within the game controller allows for commands to be transmitted in real time or near real time to one or more game controllers without requiring commands to be customized and pre-programmed into an embedded microcontroller. Therefore, a wireless microcontroller allows for customization of game controller as needed. The present specification is directed towards multiple embodiments. The following disclosure is provided in order to enable a person having ordinary skill in the art to practice the invention. Language used in this specification should not be interpreted as a general disavowal of any one specific embodiment or used to limit the claims beyond the meaning of the terms used therein. The general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Also, the terminology and phraseology used is for the purpose of describing exemplary embodiments and should not be considered limiting. Thus, the present invention ...
DETAILED DESCRIPTION
The present specification relates to synchronizing multiple game controllers and driving a game play session through programmatic logic applied to each of the game controllers, replacing a user's manual input. Game controllers are programmable and can be synchronized externally and independently of a gaming program. Embodiments of the present specification enable repeatable creation of a gaming scenario with precision and accuracy. In some embodiments, microprocessor-controlled game controllers are provided, wherein at least one microprocessor (or microcontroller) is connected to one or more game controllers and wherein the microprocessor is programmed to synchronize the game controllers externally. Additionally, the microprocessor is programmed to modify one or more game controls that are provided by the game controllers. In embodiments of the present specification, wireless microcontrollers are embedded within game controllers to allow for the remote transmission of commands to the microcontrollers. Integrating a wireless microcontroller within the game controller allows for commands to be transmitted in real time or near real time to one or more game controllers without requiring commands to be customized and pre-programmed into an embedded microcontroller. Therefore, a wireless microcontroller allows for customization of game controller as needed.
The present specification is directed towards multiple embodiments. The following disclosure is provided in order to enable a person having ordinary skill in the art to practice the invention. Language used in this specification should not be interpreted as a general disavowal of any one specific embodiment or used to limit the claims beyond the meaning of the terms used therein. The general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Also, the terminology and phraseology used is for the purpose of describing exemplary embodiments and should not be considered limiting. Thus, the present invention is to be accorded the widest scope encompassing numerous alternatives, modifications and equivalents consistent with the principles and features disclosed. For purpose of clarity, details relating to technical material that is known in the technical fields related to the invention have not been described in detail so as not to unnecessarily obscure the present invention.
In the description and claims of the application, each of the words “comprise” “include” and “have”, and forms thereof, are not necessarily limited to members in a list with which the words may be associated.
It should be noted herein that any feature or component described in association with a specific embodiment may be used and implemented with any other embodiment unless clearly indicated otherwise.
It should be appreciated that the programmatic methods described herein may be performed on any computing device, including a laptop, desktop, smartphone, tablet computer, specialized gaming console, or virtual reality system. The computing device comprises at least one processor and a nonvolatile memory that stores the programmatic instructions which, when executed by the processor, perform the methods or steps disclosed herein, including the generation of a graphical user interface that is communicated to a local or remote display. The computing device is in communication with at least one remotely located server through a network of any type.
For purposes of the present specification, a gaming console is a computing device that displays a video game that one or more players can play.
For purposes of the present specification, a game controller is an interactive module that is manually manipulated by a player to interface with a video game, typically to provide controlling input to the video game. The game controller is in communication with a gaming console through a wired or a wireless connection. Game controllers may include all its variants, such as but not limited to, joystick, steering wheel, keyboard and mouse, touchscreen, light gun, yoke, pedal, paddle, trackball, and gamepad.
While aspects of the present specification may be described herein with reference to various game levels or modes, characters, roles, or game items, associated with a First-Person-Shooter (FPS) game, it should be appreciated that any such examples are for illustrative purposes only, and are not intended to be limiting. The systems and methods described in detail herein may be used in any genre of multiplayer video game, without limitation.
The terminology used within this specification and detailed description of the various embodiments is for the purpose of describing particular embodiments only and is not intended to limit the invention.
FIG. 1illustrates an exemplary arrangement100for synchronizing a first game controller102and a second game controller104, in accordance with some implementations of the present specification. In an embodiment, first game controller102and second game controller104interface with first and second (separate) gaming consoles, respectively. In some embodiments, each gaming console is operational within different local networks and the game consoles communicate with each other over the Internet. In an alternative embodiment, first game controller102and second game controller104interface with a single gaming console. First game controller102and second game controller104each have multiple buttons that enable a player to provide control input to their respective gaming consoles. A front perspective view102aof first game controller102shows additional buttons that may be provided with game controller102. Similarly, a front perspective view104aof second game controller104shows additional buttons that may be provided with game controller104. WhileFIG. 1illustrates one type of game controllers, other types of game controllers with different provisions for providing controlling input to the gaming consoles may be applicable in different embodiments of the present specification.
A first programmable microprocessor106communicates with game controller102, and a second programmable microprocessor108communicates with game controller104. In embodiments, microprocessors106and108are respectively embedded within game controllers102and104. In some alternative embodiments, microprocessors106and108are connected externally through one or more cables with their corresponding game controllers102and104, respectively. In yet other embodiments, microprocessors106and108are connected wirelessly. Microprocessors106and108are programmable, and may be programmed to execute a specific set of commands or instructions. In an embodiment, microprocessors106and108are programmed remotely and wirelessly. In one embodiment, microprocessor106is programmed to execute a first set of commands to control operation of game controller102, while microprocessor108is programmed to execute a second set of commands to control operation of game controller104.FIG. 1illustrates a physical wiring scheme110to enable connections between microprocessor106and different buttons of game controller102and to enable connections between microprocessor108and different buttons of game controller104. In embodiments, microprocessors106and108are programmed to execute any set of commands that can be performed by their corresponding game controllers. A typical command, for example, may be to enable a game controller to shift left for 1.75 seconds, shift right for 1.73 seconds, aim weapon, and pull a trigger, within a video game. In embodiments, microprocessors106and108are any type of microprocessors that provide sufficient input-output (I/O) ports to interface with game controllers102and104. In one embodiment, microprocessors106and108are Arduino Nano microprocessors. In embodiments, microprocessors106and108are connected to each other with a trigger wire112. In some other embodiments, microprocessors106and108are connected to each other wirelessly. In one embodiment, microprocessor106is a primary processor and microprocessor108is a secondary processor. Once microprocessor106is activated to execute its program, it signals microprocessor108through wire112to initiate execution of the program on microprocessor108as well, thereby achieving synchronization between execution of programs by game controllers102and104.
In alternative embodiments, the present specification is extended to multiple game controllers configured with corresponding programmable microprocessors. One of the microprocessors may be a primary processor that signals all other microprocessors to synchronize program execution on their respective game controllers.
FIG. 2Aillustrates an exemplary implementation of an arrangement to synchronize two game controllers, in accordance with some embodiments of the present specification. Microprocessors206and208are connected to separate game controllers and to each other through a trigger wire212.FIG. 2Ashows a connector214that is used for connecting microprocessor206to a game controller.FIG. 2Billustrates another view of the actual implementation of the arrangement ofFIG. 2A, in accordance with some embodiments of the present specification. Referring together toFIGS. 2A and 2B, in one embodiment, a first programmable microprocessor206and a second programmable microprocessor208are connected respectively to a first game controller202and a second game controller204.
FIG. 3is a flow chart describing a method for synchronizing two game controllers, in accordance with some embodiments of the present specification. The first programmable microprocessor, comprising code for a first program, is placed in communication with a first game controller in step302. The first program may comprise instructions for execution by the first game controller. A second programmable microprocessor is placed in communication with a second game controller in step304. In embodiments, both microprocessors are pre-programmed. In other embodiments, both microprocessors can be custom-programmed on demand. The second programmable microprocessor is placed in communication with the first programmable microprocessor in step306. In embodiments, a trigger wire connects the two programmable microprocessors. In some other embodiments, the two programmable microprocessors are connected wirelessly. At308, a first programmable microprocessor initiates execution of the first program. At310, the first programmable microprocessor sends a signal over the trigger wire to initiate execution of a second program, which comprises instructions for execution by the second game controller. In an embodiment, the first microprocessor sends current over the trigger wire while the second microprocessor detects positive voltage on the trigger wire as a signal to initiate execution of its program. In embodiments where the two microprocessors communicate wirelessly, a trigger would execute a similar process as with a trigger wire, with appropriate acknowledgement, e.g. Ack/Nak, messaging. Additionally, a synchronized timer function may be incorporated to minimize potential wireless latency. Therefore, the first and the second game controllers are synchronized in operating the programs meant for their execution.
Embodiments of the present specification enable the writing of a control program that works independently of any game and could be reproduced for other gaming systems.FIG. 4illustrates an exemplary scenario for implementing embodiments of the present specification. In an exemplary scenario, it is desirable to test whether due to the contention and prioritization of video packets over other packets (such as gaming packets) a streaming event in a local network in which a gaming console operates, changes the outcome of a match. A match that an opponent would win could be lost because the packets in the network of the opponent were not prioritized over the video packets in a streaming event.
FIG. 5Ais a flowchart illustrating an exemplary testing process that is implemented using some embodiments of the present specification. Referring simultaneously to components shown inFIG. 4, and the steps ofFIG. 5A, the test is performed under a first scenario where a scenario represents a unique environmental condition. For the purposes of the present specification, an environmental condition may be a factor external to a gaming console that affects the performance of a player using that gaming console. The environmental condition may be varied to test the outcome in the form of impact on the operation of the game controllers interfacing with gaming consoles402and404.
In a first scenario, at502, the two gaming consoles402and404, are configured within different local networks406and408, respectively. At504, gaming consoles402and404communicate with each other wirelessly over the Internet so that a first player using gaming console402plays against an opponent who is a second player using gaming console404. In an exemplary embodiment involving an FPS game, a “close call” scenario is generated where the second player wins by one bullet. The scenario is generated with programming of the game controllers associated with the two gaming consoles402and404. Programming of the game controllers enables configuration of a desired scenario repeatedly, with precision, and without any human intervention. The scenario requires millisecond precision which is achieved by leveraging programmable microprocessors connected to the game controllers of the first gaming console402and the second gaming console404, in accordance with the embodiments of the present specification. In some embodiments, avatars of the gaming scenario are lined up in the same position repeatedly, followed by repeated execution of the scenario where the second player wins by one bullet in an identical manner. The scenario where the second player wins by one bullet is programmed through a series of commands residing within code at the first and the second microprocessors, and executable by the first and second game controllers of consoles402and404, respectively. In one embodiment, the commands are programmed separately for each microprocessor. In another embodiment, both microprocessors execute the same set of commands when the primary microprocessor signals the secondary microprocessor to do so. Once a reference or baseline is provided, where the second player barely wins in the same manner over and over again, over the first player, other factors may be varied to perform the test. At506, the results of the match are recorded. In a test conducted by the applicants, it was noted that the results of the match remained constant on repeated execution of the scenario where the second player wins by one bullet.
FIG. 5Bis a flowchart illustrating an exemplary testing process in a different scenario that is implemented using some embodiments of the present specification. Referring simultaneously to components shown inFIG. 4, and the steps ofFIG. 5B, the test is performed under a different scenario. In a second scenario, at510, the two gaming consoles402and404, are configured within different local networks406and408, respectively. At512, gaming consoles402and404communicate with each other wirelessly over the Internet so that a first player using gaming console402plays against an opponent who is a second player using gaming console404. In an exemplary embodiment involving an FPS game, the same “close call” scenario is re-created where the second player wins by one bullet. The scenario requires millisecond precision which is achieved by leveraging programmable microprocessors connected to the game controllers of the first gaming console402and second gaming console404, in accordance with the embodiments of the present specification. Programming the game controllers provides repeatable precision while executing the same scenario, and without any human intervention. In some embodiments, avatars of the gaming scenario are lined up in the same position repeatedly, followed by repeated execution of the scenario where the second player wins by one bullet in an identical manner. The scenario where the second player wins by one bullet is programmed through a series of commands residing within code at the first and the second microprocessors, and executable by the first and second game controllers of consoles402and404, respectively. Once a reference or baseline is provided, where the second player barely wins in the same manner over and over again, over the first player, other factors may be varied to perform the test. In the second scenario, the variable factor involves enabling a streaming event in one of the networks. At514, another device410streams video content through the Internet, within the local network of console404, which could potentially affect bandwidth and packet prioritization within that network. The streaming event is enabled in parallel to the execution of the “close-call” scenario in an ongoing gaming session between the first and the second players. At516, the results of the match are recorded. In a test conducted by the applicants, it was noted that the results of the match indicated that the second player loses the match, demonstrating that packet delivery based on the streaming activity at device410was prioritized over the gaming console.
Thus, in using the present specification, results of the match can be observed with and without the streaming activity in the network of the player who is programmed to win repeatedly to determine if other activity on the network (such as streaming) affects the game output due to packet prioritization.
It should be appreciated that the game testing being performed is done expressly through the user control devices and not through any other means. Specifically, while games are frequently tested using bots or programs that interface directly with the video game logic, they are not tested via the actual input control devices manipulated by users in a manner that is both precise and repeatable.
FIG. 6illustrates an exemplary system environment for operating a game controller, in accordance with some embodiments of the present specification. In embodiments, a wireless module602is embedded within a game controller604. The embedded wireless module602, is, in one embodiment, a WiFi microprocessor that enables game controller604to execute instructions provided by the microprocessor. Wireless module602is in data communication with game controller604. In some embodiments, wireless module602is a microcontroller that is small enough and low powered enough to run off of the power bus housed within controller's604. In this case, no external wiring or power is required. In some embodiments, wireless module602is fitted within the housing of controller604. In some embodiments, slight structural modifications are required to controller604housing to provide sufficient room for wireless module602. In yet other embodiments, wireless module602is located within game controller604, or is attached to an exterior physical housing defining an outer periphery of game controller604. In yet other embodiments, wireless module602is embedded within game controller604such that it is located within or attached to an exterior physical housing defining an outer periphery of game controller604.
A remotely located processor606communicates wirelessly with wireless module602to operate the game controller604. In accordance with embodiments of the present specification, ‘remotely located’ is defined as located external to a housing defining the outer periphery or exterior surface of game controller604. In embodiments, and accordingly, a processor is not remote to a game controller if it is located in the same physical housing defining the exterior surface of the game controller. In embodiments, processor606communicates commands or instructions that are executable by game controller604. Processor606may be a personal computer, a laptop, a portable computing device, or any other electronic device that enables creating instructions that are executable by game controller604, and can communicate those instructions wirelessly to wireless module602. In embodiments, wireless module602is a Radio Frequency (RF) module, a Wi-Fi module, a Bluetooth module, or any other module capable of facilitating wireless communication between processor606and game controller604. In embodiments of the present specification decoupling of the command loading to the game controller is enabled so that it happens remotely. Implementing wireless communication within the microprocessor allows for commands to be transmitted in real time or near real time to one or more game controllers604without requiring commands to be customized and pre-programmed into an embedded microcontroller. Therefore, a wireless microcontroller allows for customization of game controller as needed.
FIG. 7is a flow chart illustrating an exemplary method for operating a game controller as described inFIG. 6, in accordance with some embodiments of the present specification. At702, a processor that is remotely located from a game controller wirelessly communicates one or more commands to the game controller. In embodiments, the game controller comprises a wireless module to facilitate the communication between the processor and the game controller. At704, the wireless module receives one or more commands from the processor. At706, the game controller executes the received commands. In embodiments, a series of instructions may be wirelessly preloaded on the wireless module, for execution by the game controller at a later time. Preloading the commands may address wireless latency in certain remote systems. In some embodiments, means for synchronizing the time of execution of the program by the game controllers is provided. In one example, a Network Time Protocol (NTP) server is utilized to enable synchronized communication between the processor and the game controller.
Various embodiments of the present specification enable precise control over the microcontroller within one or more game controllers. Embodiments of the present specification may be used to simulate exploits by the player community. In one example, the development of scripting exploits based on movement and button presses of the controller are simulated. Also, once there is a fix for the exploit, embodiments of this system may be used to test the fix to ensure it defeats the exploit.
Gaming systems can be tested precisely for multiplayer scenarios. There are known situations where players use latency to their advantage. In one example, a foot pedal switch may be imagined that cuts or disables transmissions within the network cable of a player. When the switch is applied, the game console used by the player does not transmit packets, and when released the game controller resumes. Players are known to have used these types of systems to “peak” into a room on the map of games to see if any other players are in that room. To implement this, players press the foot pedal and then quickly go into the room, jump back out and release the pedal. During that brief time they may be able to easily assess if there were any other players and their exact positions, allowing the player to exploit that knowledge. In the scenario where the pedal was pressed, the packets were never transmitted, therefore the other players never even saw the exploiting player quickly jump in and out of the room. A scenario like this could be repeated in the testing embodiments of the present specification and enable developing of proper defensive code to defeat such exploits.
In another exemplary scenario, a specific set of button sequences may be entered, which allow players to cause unusual things to happen. In one example, players may be issuing a set of button sequences that cause their avatar to sit down which normally would make their avatar immobile. However, due to a timing window of the button presses, the players may be able to move their avatars around the playfield while seated. Embodiments of the present specification can be used to recreate the exact timing that causes the effect of the button presses with precision, which can in turn be used to remedy the exploit.
Additionally, game developers may be able to test multiple scenarios that could affect a gaming experience. The developers may repeat an exact gaming scenario and vary other parameters to observe their impact.
Moreover, it is common for players who are idle or inactive players for a certain time be kicked from a video game that they were playing. Embodiments of the present specification may be used to avoid being kicked due to inactivity. The player may program a game controller used to play the game to keep the game session live while not having to pay attention to the game controller. This is also useful when a player participates in a game session to observe the match.
Embodiments of the present specification may be adapted for players with disabilities. A player who is unable to interface with a game controller due to a physical disability, may be able to control the game through a remote processor.
Alternatively, any player could remotely control the game controller in accordance with implementations of the present specification. In some embodiments, two players could play a match while they are remotely located from their game controllers.
The above examples are merely illustrative of the many applications of the system of present invention. Although only a few embodiments of the present invention have been described herein, it should be understood that the present invention might be embodied in many other specific forms without departing from the spirit or scope of the invention. Therefore, the present examples and embodiments are to be considered as illustrative and not restrictive, and the invention may be modified within the scope of the appended claims.
Claims
- A system for synchronizing multiple game controllers, the system comprising: a first game controller adapted to be manually manipulated by a player to interface with a video game;a second game controller adapted to be manually manipulated by a player to interface with the video game;a first programmable microprocessor communicating with the first game controller, wherein the first programmable microprocessor provides first program instructions executable by the first game controller;and a second programmable microprocessor communicating with the second game controller and the first programmable microprocessor, wherein the second programmable microprocessor provides second program instructions executable by the second game controller;wherein the first programmable microprocessor is configured to initiate an execution of the first program instructions and signal the second programmable microprocessor to begin execution of the second program instructions such that execution operation of the first and the second game controllers are synchronized.
- The system of claim 1 wherein the first and the second programmable microprocessors are respectively connected externally with a cable to the first and the second game controllers.
- The system of claim 1 wherein the first and the second game controllers are respectively in communication with a first gaming console and a second gaming console.
- The system of claim 3 , wherein the first gaming console and the second gaming console each are a part of a first local network and a second local network, respectively.
- The system of claim 3 , wherein the first gaming console and the second gaming console are in communication with each other over the Internet.
- The system of claim 1 wherein the first and the second programmable microprocessors are connected to each other via a trigger wire.
- A method for synchronizing multiple game controllers, the method comprising: initiating a program execution by a first programmable microprocessor, wherein the first programmable microprocessor is in data communication with a first game controller and wherein the first game controller is adapted to be manually manipulated by a player to interface with a video game;and signaling by the first programmable microprocessor to a second programmable microprocessor to begin the program execution, wherein the second programmable microprocessor is in data communication with a second game controller and the first programmable microprocessor, wherein the program execution is synchronized for the first and the second game controllers, and wherein the second game controller is adapted to be manually manipulated by a player to interface with the video game.
- The method of claim 7 wherein the method further comprises connecting the first and the second programmable microprocessors externally with a cable to the first and the second game controllers respectively.
- The method of claim 7 wherein the first and the second game controllers are respectively in communication with a first gaming console and a second gaming console.
- The method of claim 9 , wherein the first gaming console and the second gaming console each are a part of a first local network and a second local network, respectively.
- The method of claim 7 wherein the first and the second programmable microprocessors are in data communication with each other via a trigger wire.
- A system for synchronizing multiple game controllers, the system comprising: a primary game controller adapted to be manually manipulated by a player to interface with a video game;at least one secondary game controller adapted to be manually manipulated by a player to interface with the video game;a primary programmable microprocessor communicating with the primary game controller, wherein the primary programmable microprocessor provides primary program instructions executable by the primary game controller;and at least one secondary programmable microprocessor communicating with the at least one secondary game controller and the primary programmable microprocessor, wherein the at least one secondary programmable microprocessor provides respective program instructions executable by the at least one secondary game controller;wherein the primary programmable microprocessor is configured to initiate an execution of the primary program instructions and signal the at least one secondary programmable microprocessor to begin execution of the respective program instructions such that execution operation of the primary and the at least one secondary game controllers are synchronized.
- The system of claim 12 wherein the primary and the at least one secondary programmable microprocessors are respectively connected externally with a cable to the primary and the at least one secondary game controllers.
- The system of claim 12 wherein the primary and the at least one secondary game controllers are respectively in communication with a first gaming console and at least one secondary gaming console.
- The system of claim 14 , wherein the first gaming console and the at least one secondary gaming console each are a part of a first local network and at least one secondary local network, respectively.
- The system of claim 14 , wherein the first gaming console and the at least one secondary gaming console are in communication with each other over the Internet.
- The system of claim 12 wherein the primary and the at least one secondary programmable microprocessors are connected to each other via at least one trigger wire.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.