U.S. Pat. No. 12,303,792
MULTIPLAYER E-GAMING IMPORTABLE CONTROLS AND SETTINGS
AssigneeInternational Business Machines Corp
Issue DateMarch 22, 2023
Illustrative Figure
Abstract
According to one embodiment, a method, computer system, and computer program product for importing player settings is provided. The present invention may include requesting one or more player settings responsive to receiving a command from a user to import one or more player settings associated with a player; receiving the one or more player settings; performing a hardware check to determine if the player settings are compatible with one or more user hardware elements; overwriting one or more user settings with the revised player settings based on the hardware check; and displaying a message to the user with one or more results of the overwrite.
Description
DETAILED DESCRIPTION Detailed embodiments of the claimed structures and methods are disclosed herein; however, it can be understood that the disclosed embodiments are merely illustrative of the claimed structures and methods that may be embodied in various forms. This invention may, however, be embodied in many different forms and should not be construed as limited to the exemplary embodiments set forth herein. In the description, details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the presented embodiments. Embodiments of the present invention relate to the field of computing, and more particularly to human-computer interaction. The following described exemplary embodiments provide a system, method, and program product to, among other things, enable a user to request and obtain settings, comprising keybindings, from a multiplayer gaming platform or streaming platform, and import the obtained settings in the local gaming client of the user. As previously described, keybinding is the practice of mapping one or more user inputs, often corresponding with an individual physical button, key, or other interface element, to one or more actions by a computer, such as invoking a software program or performing a preprogrammed action. In the context of gaming, all in-game actions, from moving a character to interacting with the game world to issuing commands to units, may be mapped to different keys or other interface elements, and may further be customizable, such that a user may change the individual mappings to the user's preference, and bind program functions to a different set of keystrokes instead of or in addition to the default. This is a useful feature in that oftentimes the default keybinding is insufficient for a given user for a variety of reasons; for example, the default keybinding may not take into account the particular hardware setup and interface options of a ...
DETAILED DESCRIPTION
Detailed embodiments of the claimed structures and methods are disclosed herein; however, it can be understood that the disclosed embodiments are merely illustrative of the claimed structures and methods that may be embodied in various forms. This invention may, however, be embodied in many different forms and should not be construed as limited to the exemplary embodiments set forth herein. In the description, details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the presented embodiments.
Embodiments of the present invention relate to the field of computing, and more particularly to human-computer interaction. The following described exemplary embodiments provide a system, method, and program product to, among other things, enable a user to request and obtain settings, comprising keybindings, from a multiplayer gaming platform or streaming platform, and import the obtained settings in the local gaming client of the user.
As previously described, keybinding is the practice of mapping one or more user inputs, often corresponding with an individual physical button, key, or other interface element, to one or more actions by a computer, such as invoking a software program or performing a preprogrammed action. In the context of gaming, all in-game actions, from moving a character to interacting with the game world to issuing commands to units, may be mapped to different keys or other interface elements, and may further be customizable, such that a user may change the individual mappings to the user's preference, and bind program functions to a different set of keystrokes instead of or in addition to the default. This is a useful feature in that oftentimes the default keybinding is insufficient for a given user for a variety of reasons; for example, the default keybinding may not take into account the particular hardware setup and interface options of a given user, may be poorly designed such that, for example, keys tied to important actions are difficult to reach, may be unintuitive to a user because, for example, the user is acclimated and has developed muscle memory for a different keybinding, et cetera. Furthermore, in this era of streaming and constant digital connection, users may be playing with or watching friends, teammates, and internet personalities and may wish to play as they do and import their keybindings, because other players may have developed more efficient keybindings than the default, may possess similar interface options or may have developed similar muscle memory to the user. However, short of asking another player for their keybindings and manually changing each hotkey, this is largely impossible.
Several games and game plug-ins offer “streamer mode” features, such as displaying a historical list of the abilities used in the game by a streamer to viewers of the corresponding stream; this list is meant for viewer instructional purposes, but is insufficient for the purposes of allowing a user to play like the streamer in that it fails to display corresponding key bindings for the abilities. To enable copying of keybindings, a streamer might have to maintain a list of each ability, its placement on the screen, and the “keybinding” associated. This list would need to be manually maintained each time a change is made, and manually updated by any players using the list. In some cases, streamers may include a visual overlay of the controller they're using which displays the button/trigger presses performed by the streamer to viewers of the stream. However, in order to use this overlay in a helpful way, a viewer would first need to closely watch the overlay and screen actions to discern which buttons perform which actions. Such a method is slow, inefficient, error-prone, and frustrating.
Furthermore, a game may possess a number of settings, which may include interface settings, graphical settings, et cetera. Interface settings may, for example, allow the user to control the field of view displayed to the user, what graphical user interface elements are displayed to the user during the game, how a player character controls, mouse sensitivity, et cetera. Interface settings may comprise the keybindings. Graphical settings may allow a user to control different visual qualities of the game interface and world, such as resolution, visual effects, film grain, brightness, motion blur, depth of field, lens flare, shadow and water fidelity, et cetera, as well as select software rendering techniques to apply such as anti-aliasing, post-processing, texture filtering, et cetera. Interface settings may have a marked effect on gameplay; for example, a user who has increased their field of view in the interface settings may be able to see more of the world around them, providing a noticeable advantage over players with default or lesser fields of view. Likewise, graphical settings have a significant impact on the resource usage of the game; a high resource usage may result in lag, latency, crashing, and other various degradations of computer performance which may seriously affect gameplay. As such, there may be certain combinations of settings that produce great improvements in gameplay and performance. However, many settings are unintuitive and defy understanding by most players; the practical effect that 16× anisotropic texture filtering has on gameplay may defy casual understanding. Consequently, for any given game, a player may have to do research to find the effect of various settings and choose a desired combination. This is difficult and time consuming.
As such, it may be advantageous to, among other things, implement a system that interfaces with a game and/or streaming platform to enable a user to instantly import settings and/or keybindings from a player or streamer. Therefore, the present embodiment has the capacity to improve the technical field of human-computer interaction by addressing interface inefficiency caused by flawed default settings and keybindings, providing a technical means to enable a user to quickly and easily import setting configurations and keybindings that can improve the performance of the user's computing setup, improve the interface efficiency between the user and the computer, and improve user's speed, efficiency, immersion, and enjoyment of interactive software programs such as games, development interfaces, mixed-reality experiences, et cetera.
According to one embodiment, the invention is a system and method to allow streaming and multiplayer gaming platforms to provide settings, including keybindings, to a requesting user.
Various aspects of the present disclosure are described by narrative text, flowcharts, block diagrams of computer systems and/or block diagrams of the machine logic included in computer program product (CPP) embodiments. With respect to any flowcharts, depending upon the technology involved, the operations can be performed in a different order than what is shown in a given flowchart. For example, again depending upon the technology involved, two operations shown in successive flowchart blocks may be performed in reverse order, as a single integrated step, concurrently, or in a manner at least partially overlapping in time.
A computer program product embodiment (“CPP embodiment” or “CPP”) is a term used in the present disclosure to describe any set of one, or more, storage media (also called “mediums”) collectively included in a set of one, or more, storage devices that collectively include machine readable code corresponding to instructions and/or data for performing computer operations specified in a given CPP claim. A “storage device” is any tangible device that can retain and store instructions for use by a computer processor. Without limitation, the computer readable storage medium may be an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these mediums include: diskette, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or Flash memory), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded device (such as punch cards or pits/lands formed in a major surface of a disc) or any suitable combination of the foregoing. A computer readable storage medium, as that term is used in the present disclosure, is not to be construed as storage in the form of transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, light pulses passing through a fiber optic cable, electrical signals communicated through a wire, and/or other transmission media. As will be understood by those of skill in the art, data is typically moved at some occasional points in time during normal operations of a storage device, such as during access, de-fragmentation or garbage collection, but this does not render the storage device as transitory because the data is not transitory while it is stored.
The following described exemplary embodiments provide a system, method, and program product to enable a user to request and obtain settings, comprising keybindings, from a multiplayer gaming platform or streaming platform, and import the obtained settings in the local gaming client of the user.
Referring now toFIG.1, computing environment100contains an example of an environment for the execution of at least some of the computer code involved in performing the inventive methods, such as code block145, which may comprise one or more software platforms107and settings transfer program108. In addition to code block145, computing environment100includes, for example, computer101, wide area network (WAN)102, end user device (EUD)103, remote server104, public cloud105, and private cloud106. In this embodiment, computer101includes processor set110(including processing circuitry120and cache121), communication fabric111, volatile memory112, persistent storage113(including operating system122and code block145, as identified above), peripheral device set114(including user interface (UI), device set123, storage124, and Internet of Things (IoT) sensor set125), and network module115. Remote server104includes remote database130. Public cloud105includes gateway140, cloud orchestration module141, host physical machine set142, virtual machine set143, and container set144.
COMPUTER101may take the form of a desktop computer, laptop computer, tablet computer, smart phone, smart watch or other wearable computer, mainframe computer, quantum computer or any other form of computer or mobile device now known or to be developed in the future that is capable of running a program, accessing a network or querying a database, such as remote database130. As is well understood in the art of computer technology, and depending upon the technology, performance of a computer-implemented method may be distributed among multiple computers and/or between multiple locations. On the other hand, in this presentation of computing environment100, detailed discussion is focused on a single computer, specifically computer101, to keep the presentation as simple as possible. Computer101may be located in a cloud, even though it is not shown in a cloud inFIG.1. On the other hand, computer101is not required to be in a cloud except to any extent as may be affirmatively indicated.
PROCESSOR SET110includes one, or more, computer processors of any type now known or to be developed in the future. Processing circuitry120may be distributed over multiple packages, for example, multiple, coordinated integrated circuit chips. Processing circuitry120may implement multiple processor threads and/or multiple processor cores. Cache121is memory that is located in the processor chip package(s) and is typically used for data or code that should be available for rapid access by the threads or cores running on processor set110. Cache memories are typically organized into multiple levels depending upon relative proximity to the processing circuitry. Alternatively, some, or all, of the cache for the processor set may be located “off chip.” In some computing environments, processor set110may be designed for working with qubits and performing quantum computing.
Computer readable program instructions are typically loaded onto computer101to cause a series of operational steps to be performed by processor set110of computer101and thereby effect a computer-implemented method, such that the instructions thus executed will instantiate the methods specified in flowcharts and/or narrative descriptions of computer-implemented methods included in this document (collectively referred to as “the inventive methods”). These computer readable program instructions are stored in various types of computer readable storage media, such as cache121and the other storage media discussed below. The program instructions, and associated data, are accessed by processor set110to control and direct performance of the inventive methods. In computing environment100, at least some of the instructions for performing the inventive methods may be stored in code block145in persistent storage113.
COMMUNICATION FABRIC111is the signal conduction paths that allow the various components of computer101to communicate with each other. Typically, this fabric is made of switches and electrically conductive paths, such as the switches and electrically conductive paths that make up busses, bridges, physical input/output ports and the like. Other types of signal communication paths may be used, such as fiber optic communication paths and/or wireless communication paths.
VOLATILE MEMORY112is any type of volatile memory now known or to be developed in the future. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, the volatile memory is characterized by random access, but this is not required unless affirmatively indicated. In computer101, the volatile memory112is located in a single package and is internal to computer101, but, alternatively or additionally, the volatile memory may be distributed over multiple packages and/or located externally with respect to computer101.
PERSISTENT STORAGE113is any form of non-volatile storage for computers that is now known or to be developed in the future. The non-volatility of this storage means that the stored data is maintained regardless of whether power is being supplied to computer101and/or directly to persistent storage113. Persistent storage113may be a read only memory (ROM), but typically at least a portion of the persistent storage allows writing of data, deletion of data and re-writing of data. Some familiar forms of persistent storage include magnetic disks and solid-state storage devices. Operating system122may take several forms, such as various known proprietary operating systems or open-source Portable Operating System Interface type operating systems that employ a kernel. The code included in code block145typically includes at least some of the computer code involved in performing the inventive methods.
PERIPHERAL DEVICE SET114includes the set of peripheral devices of computer101. Data communication connections between the peripheral devices and the other components of computer101may be implemented in various ways, such as Bluetooth connections, Near-Field Communication (NFC) connections, connections made by cables (such as universal serial bus (USB) type cables), insertion type connections (for example, secure digital (SD) card), connections made through local area communication networks and even connections made through wide area networks such as the internet. In various embodiments, UI device set123may include components such as a display screen, speaker, microphone, wearable devices (such as goggles and smart watches), keyboard, mouse, printer, touchpad, game controllers, and haptic devices. Storage124is external storage, such as an external hard drive, or insertable storage, such as an SD card. Storage124may be persistent and/or volatile. In some embodiments, storage124may take the form of a quantum computing storage device for storing data in the form of qubits. In embodiments where computer101is required to have a large amount of storage (for example, where computer101locally stores and manages a large database) then this storage may be provided by peripheral storage devices designed for storing very large amounts of data, such as a storage area network (SAN) that is shared by multiple, geographically distributed computers. IoT sensor set125is made up of sensors that can be used in Internet of Things applications. For example, one sensor may be a thermometer and another sensor may be a motion detector.
NETWORK MODULE115is the collection of computer software, hardware, and firmware that allows computer101to communicate with other computers through WAN102. Network module115may include hardware, such as modems or Wi-Fi signal transceivers, software for packetizing and/or de-packetizing data for communication network transmission, and/or web browser software for communicating data over the internet. In some embodiments, network control functions and network forwarding functions of network module115are performed on the same physical hardware device. In other embodiments (for example, embodiments that utilize software-defined networking (SDN)), the control functions and the forwarding functions of network module115are performed on physically separate devices, such that the control functions manage several different network hardware devices. Computer readable program instructions for performing the inventive methods can typically be downloaded to computer101from an external computer or external storage device through a network adapter card or network interface included in network module115.
WAN102is any wide area network (for example, the internet) capable of communicating computer data over non-local distances by any technology for communicating computer data, now known or to be developed in the future. In some embodiments, the WAN may be replaced and/or supplemented by local area networks (LANs) designed to communicate data between devices located in a local area, such as a Wi-Fi network. The WAN and/or LANs typically include computer hardware such as copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and edge servers.
END USER DEVICE (EUD)103is any computer system that is used and controlled by an end user (for example, a customer of an enterprise that operates computer101) and may take any of the forms discussed above in connection with computer101. EUD103typically receives helpful and useful data from the operations of computer101. For example, in a hypothetical case where computer101is designed to provide a recommendation to an end user, this recommendation would typically be communicated from network module115of computer101through WAN102to EUD103. In this way, EUD103can display, or otherwise present, the recommendation to an end user. In some embodiments, EUD103may be a client device, such as thin client, heavy client, mainframe computer, desktop computer and so on.
REMOTE SERVER104is any computer system that serves at least some data and/or functionality to computer101. Remote server104may be controlled and used by the same entity that operates computer101. Remote server104represents the machine(s) that collect and store helpful and useful data for use by other computers, such as computer101. For example, in a hypothetical case where computer101is designed and programmed to provide a recommendation based on historical data, then this historical data may be provided to computer101from remote database130of remote server104.
PUBLIC CLOUD105is any computer system available for use by multiple entities that provides on-demand availability of computer system resources and/or other computer capabilities, especially data storage (cloud storage) and computing power, without direct active management by the user. Cloud computing typically leverages sharing of resources to achieve coherence and economies of scale. The direct and active management of the computing resources of public cloud105is performed by the computer hardware and/or software of cloud orchestration module141. The computing resources provided by public cloud105are typically implemented by virtual computing environments that run on various computers making up the computers of host physical machine set142, which is the universe of physical computers in and/or available to public cloud105. The virtual computing environments (VCEs) typically take the form of virtual machines from virtual machine set143and/or containers from container set144. It is understood that these VCEs may be stored as images and may be transferred among and between the various physical machine hosts, either as images or after instantiation of the VCE. Cloud orchestration module141manages the transfer and storage of images, deploys new instantiations of VCEs and manages active instantiations of VCE deployments. Gateway140is the collection of computer software, hardware, and firmware that allows public cloud105to communicate through WAN102.
Some further explanation of virtualized computing environments (VCEs) will now be provided. VCEs can be stored as “images.” A new active instance of the VCE can be instantiated from the image. Two familiar types of VCEs are virtual machines and containers. A container is a VCE that uses operating-system-level virtualization. This refers to an operating system feature in which the kernel allows the existence of multiple isolated user-space instances, called containers. These isolated user-space instances typically behave as real computers from the point of view of programs running in them. A computer program running on an ordinary operating system can utilize all resources of that computer, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, programs running inside a container can only use the contents of the container and devices assigned to the container, a feature which is known as containerization.
PRIVATE CLOUD106is similar to public cloud105, except that the computing resources are only available for use by a single enterprise. While private cloud106is depicted as being in communication with WAN102, in other embodiments a private cloud may be disconnected from the internet entirely and only accessible through a local/private network. A hybrid cloud is a composition of multiple clouds of different types (for example, private, community or public cloud types), often respectively implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud architecture is bound together by standardized or proprietary technology that enables orchestration, management, and/or data/application portability between the multiple constituent clouds. In this embodiment, public cloud105and private cloud106are both part of a larger hybrid cloud.
According to the present embodiment, the software platform107may comprise two or more discrete software programs which may be located on separate machines, but which are networked such that they are capable of communicating with each other, and which are designed to interoperate with each other to carry out a function. For example, software program107may comprise a streaming platform, which may comprise a server and one or more clients; the streaming platform may receive streamed media at the server from one or more clients and may transmit that streamed media in real time to one or more clients. Additionally or alternatively, the software platform107may comprise a multiplayer gaming platform, which may comprise a server and one or more clients, for example corresponding to players of the game, where the server receives information on a local game state from each of a number of clients participating in a game, fuses the received local game states into an overall game state, and communicates the overall game state to each participating client. In embodiments of the invention, the software platform107may be stored and/or run within or by any number or combination of devices including computer101, end user device103, remote server104, private cloud106, and/or public cloud105, peripheral device set114, and server112and/or on any other device connected to WAN102. Furthermore, software platform107may be distributed in its operation over any number or combination of the aforementioned devices.
According to the present embodiment, the settings transfer program108may be a program configured to enable a user to request and obtain settings, comprising keybindings, from a multiplayer gaming platform or streaming platform, and import the obtained settings in the local gaming client of the user. The settings transfer program108may, when executed, cause the computing environment100to carry out a settings transfer process200. The settings transfer process200may be explained in further detail below with respect toFIG.2. In embodiments of the invention, the settings transfer program108may be a subcomponent of, integrated with, called by, or otherwise in communication and interoperable with one or more software platforms107. In embodiments of the invention, the settings transfer program108may be stored and/or run within or by any number or combination of devices including computer101, end user device103, remote server104, private cloud106, and/or public cloud105, peripheral device set114, and server112and/or on any other device connected to WAN102. Furthermore, settings transfer program108may be distributed in its operation over any number or combination of the aforementioned devices.
Referring now toFIG.2, an operational flowchart illustrating a settings transfer process200is depicted according to at least one embodiment. At202, the settings transfer program108may capture user interface data regarding one or more interface elements connected to an end user device103. Here, the settings transfer program108may analyze the user device103to identify connected interface devices through which the user may interact with the user device103. Interface devices, or interface elements, may include computer-integrated devices such as laptop keyboards or trackpads, peripheral devices such as video game controllers, attached keyboards, attached mice, joysticks, and any other dedicated input devices, which may comprise various input means such as buttons, keys, analog sticks, triggers, touchscreens, et cetera. In some embodiments, interface elements may comprise microphones and cameras, through which a user may provide speech and gesture inputs, respectively. The settings transfer program108may identify connected devices by searching for interface devices connected with the user device103and comparing found devices against a pre-provided list of known devices and associated technical specifications, which may include the number, location, type, relative position, axis of motion, et cetera regarding the input means comprising a given interface device.
At204, the settings transfer program108may identify one or more user interface preferences. Here, the settings transfer program108may search for and retrieve keybindings from one or more games installed on the user device. In some embodiments of the invention, the settings transfer program108may look up actions associated with the keybindings, for example by searching a pre-provided list or database associated with the respective games. The settings transfer program108may group retrieved keybindings based on the genre of the game from which they were retrieved; for example, keybindings from platforming games may be grouped separately from first-person games, which may be grouped separately from keybindings from real-time strategy games. In some embodiments, the settings transfer program108may utilize machine learning to infer whether actions from games of the same genre are equivalent between other games of that genre. The settings transfer program108may, based on the output of the machine learning model, identify whether equivalent actions are mapped to the same user input. If a pattern is identified, the settings transfer program108may prompt the user to modify one or more user keybindings to conform to the pattern.
At206, the settings transfer program108may prompt the user to modify one or more user keybindings based on the user interface preferences. In some embodiments, the settings transfer program108may prompt the user in response to the user installing a new game, creating a new account for a game, playing a new game for the first time, when a pattern in user keybindings is discovered, et cetera. Where, for example, two or more equivalent actions in other games of the same genre as a new game are mapped to the same key, the settings transfer program108may prompt the user to change the keybinding for the equivalent action of the new game to match the same key to which the equivalent action in the other games are mapped. In an exemplary instance, the settings transfer program108may identify that two games installed on the user device103and defined as belonging to a “platformer” genre have actions titled “jump,” both of which are mapped to the spacebar. Upon detecting that the user has recently installed, opened, and/or played a game, the settings transfer program108may determine a genre associated with that game by querying, for example, an online gaming service hosting the game, or the user; upon discovering that this game belongs to the platformer genre, and has an action labeled “jump” which is mapped to the ctrl key, the settings transfer program108may prompt the user to allow settings transfer program108to automatically change the jump hotkey from the ctrl key to the spacebar, thereby maintaining consistency in user actions and associated controls. The settings transfer program108may prompt the user by, for example, operating a display device to render a graphical element such as a popup text box, push notification, image, animation, video, et cetera on a display associated with user device103. Responsive to the user accepting the prompt, the settings transfer program108may modify the keybindings of the new game to match those of previous installed, played, and/or opened games.
At208, the settings transfer program108may, responsive to receiving a command from the user to import one or more player keybindings of a player, request player keybindings and player interface data associated with the player. Here, the software platform107may comprise some means of enabling a user to request keybindings of a particular player; for example, in the context of a gaming platform, a button or other interactable graphical element may be displayed over a player during the game, within a profile or menu associated with that player, next to a list of recently encountered players, et cetera. In another example, in the context of a streaming platform, a button or other interactable graphical element may be overlaid onto the stream, displayed in a menu near the stream, within a menu accessible from the stream, et cetera, where the button or other interactable graphical element may be associated with the player who is streaming the game. The button or other interactable graphical element may, upon being clicked or otherwise engaged with by the user, send a command, for example to a server104or other such remote service or program, to transmit the keybindings that that player is using while playing the game that the user is currently playing or watching a stream of, to the user device103.
At210, the settings transfer program108may receive the player keybindings and the player interface data. Here, the settings transfer program108may receive, for example from a server104or other such remote service or program, keybindings that the user-initiated transmission of by interacting with the interactable graphical element. The settings transfer program108may also receive player interface data, which may be information regarding the interface devices connected to the system used by the player from which the keybindings were retrieved, and which were used by the player to play the game, as well as the various input means that may comprise them.
At212, the settings transfer program108may, responsive to determining that the player interface data is not equivalent to the user interface data, infer one or more similarities between the player interface data and the user interface data based on static bindings. The settings transfer program108may determine that the player interface data is not equivalent by comparing the user interface data with the player interface data; if the interface devices comprising the user interface data match one or more of the interface devices comprising the player interface data, than the corresponding interface data is equivalent. However, if no interface devices comprising the user interface data do not match any interface devices of the player interface data, then the respective interface data is not equivalent; in such embodiments, the settings transfer program108may analyze the position, type, arrangement, et cetera of input means of the respective interface devices comprising the user interface data and the player interface data, to infer whether an input means or group of input means on respective input devices are similar, such that mapping the player keybindings to the user's keybindings would still be possible. For instance, if a player's system comprises an official gamestation controller, which the player uses to play the game, but the user plays the game on a third-party mad dogz controller, then the settings transfer program108may not consider the player interface data and the user interface data to be equivalent, because the gamestation controller is not the same as the mad dogz controller. However, the settings transfer program108may analyze the input means and find that while the dimensions and button placement of the two controllers are not identical, they both possess a grouping of four buttons on the right side and an analog stick on the left side; in such a scenario, the settings transfer program108may infer that the two controllers are similar, and may proceed with mapping the player keybindings to the user's game. In some embodiments, for example where settings transfer program108operates or is in communication with a camera sensor, settings transfer program108may prompt the user to utilize the camera to obtain images of one or more peripherals that do not match; the settings transfer program108may use visual processing and machine learning techniques to identify input means on the surface of the controller for the purpose of inferring similarities.
At214, the settings transfer program108may overwrite one or more user keybindings with the received player keybindings based on the inferred similarities. Here, the settings transfer program108may interface with the game, for example using an API, to modify the keybindings of the game to replace the keybindings with those corresponding to the player. In some embodiments, settings transfer program108may only replace keybindings pertaining to matching or similar interface devices. In some embodiments, the settings transfer program108may prompt the user to inform the user of the similarities and request user authorization to overwrite the user keybindings with the player keybindings that correspond to the inferred similarities. In some embodiments, for example where settings transfer program108can identify no equivalent keybindings and no inferred similarities, the settings transfer program108may prompt the user to manually enter the keybindings, or to authorize the overwriting of one or more keybindings.
At216, the settings transfer program108may display a message to the user with the results of the overwrite. Here, the settings transfer program108may display a graphical element on a digital display device associated with user device103. The graphical element may comprise a written message which may include suggestions for using the newly imported player keybindings, and/or any changes from a previous revision of the player keybindings previously received that were associated with the same player.
Referring now toFIG.3, an operational flowchart illustrating a settings transfer process300is depicted according to at least one embodiment. At302, the settings transfer program108may capture user system data regarding one or more system elements connected to a user system103. Here, the settings transfer program108may analyze the user device103to identify its component parts that drive the performance of user device103in running the game, such as central processing units, graphical processing units, random access memory, display devices, et cetera. The settings transfer program108may further retrieve statistics relating to the performance of identified component parts, such as the number and speed of cores comprising a central processing unit, the amount and speed of random access memory, the architecture and performance of a graphical processing unit, the native resolution of a display, et cetera, for example by looking up the identified component parts in a list comprising a number of parts and their associated performance statistics.
At304, the settings transfer program108may identify one or more user settings preferences. Here, the settings transfer program108may identify one or more settings that a user may never want to import, and/or one or more settings that a user may always want to import. For example, a user may always want to import settings corresponding to lens flare, motion blur, shadow quality, and water quality, because such settings may have a large impact on performance from game to game, but the user may never want to import effects quality, because the user loves effects and always wants them set to the highest level regardless of the potential impact on performance. The settings transfer program108may identify the user preferences by prompting the user to submit settings selections, and/or by consulting a pre-provided list of user preferences, and/or by crawling user preferences from other games, software platforms107, devices, data repositories, services, et cetera. In the present example, the settings may not comprise keybindings.
At306, the settings transfer program108may, responsive to receiving a command from the user to import one or more player settings of a player, request player settings associated with the player. Here, the software platform107may comprise some means of enabling a user to request settings of a particular player; for example, in the context of a gaming platform, a button or other interactable graphical element may be displayed over a player during the game, within a profile or menu associated with that player, next to a list of recently encountered players, et cetera. In another example, in the context of a streaming platform, a button or other interactable graphical element may be overlaid onto the stream, displayed in a menu near the stream, within a menu accessible from the stream, et cetera, where the button or other interactable graphical element may be associated with the player who is streaming the game. The button or other interactable graphical element may, upon being clicked or otherwise engaged with by the user, send a command, for example to a server104or other such remote service or program, to transmit the settings that that player is using while playing the game that the user is currently playing or watching a stream of, to the user device103.
At308, the settings transfer program108may receive the player settings. Here, the settings transfer program108may receive, for example from a server104or other such remote service or program, player settings that the user-initiated transmission of through interacting with the interactable graphical element.
At310, the settings transfer program108may, responsive to determining that the system elements are incompatible with one or more of the player settings based on the user system data, revise the player settings to remove the one or more incompatible player settings. The settings transfer program108may identify that system elements are incompatible with a given setting of the player settings where the setting exceeds the performance capabilities of the system elements, for example where a setting enables ray tracing but the graphical processing unit of the user device103does not support ray tracing. In some embodiments, the settings transfer program108may initiate a performance check, wherein settings transfer program108models the effect that one or more settings of the user settings would have on the user device's103ability to render the game, as measured by frames per second, latency, lag, et cetera; if any or a combination of such metrics fall below a performance threshold, than such one or more settings may be considered to be incompatible. The performance threshold may represent the threshold below which the gameplay experience will be significantly degraded, and may be pre-provided by the user, or may be a default threshold formulated based on aggregate information from other players. In an example where a setting raises the graphics to ultra but the graphical processing unit is unequal to the task, resulting in frames per second of the game dipping below a performance threshold where visual quality and gameplay become noticeably degraded, settings transfer program108may label such setting as incompatible with the user device103. The settings transfer program108may then revise the player settings to delete incompatible player settings, leaving only player settings that are compatible with user device103.
At312, the settings transfer program108may overwrite one or more user settings with the revised player settings based on the user settings preferences. Here, the settings transfer program108may interface with the game, for example using an API, to modify the settings of the game to replace the settings with those corresponding to the player. In some embodiments, settings transfer program108may only replace settings that the user has designated should always be replaced and may exclude settings which the user has designated as never replace in the user setting preferences. In some embodiments, the settings transfer program108may only modify the settings of the game to replace the user settings with player settings that are compatible with the one or more system elements, and may exclude player settings that are incompatible, for example by replacing the user settings with player settings that have been revised to exclude incompatible player settings.
At314, the settings transfer program108may display a message to the user with the results of the overwrite. Here, the settings transfer program108may display a graphical element on a digital display device associated with user device103. The graphical element may comprise a written message which may include suggestions for using the newly imported player settings, and/or any changes from a previous revision of the player settings previously received that were associated with the same player.
Referring now toFIG.4, an operational flowchart illustrating a settings transfer process400is depicted according to at least one embodiment. At402, the settings transfer program108may, responsive to receiving a command from a user to import one or more player settings associated with a player, request the one or more player settings. In this embodiment, the settings may or may not comprise keybindings. Here, the software platform107may comprise some means of enabling a user to request settings of a particular player; for example, in the context of a gaming platform, a button or other interactable graphical element may be displayed over a player during the game, within a profile or menu associated with that player, next to a list of recently encountered players, et cetera. In another example, in the context of a streaming platform, a button or other interactable graphical element may be overlaid onto the stream, displayed in a menu near the stream, within a menu accessible from the stream, et cetera, where the button or other interactable graphical element may be associated with the player who is streaming the game. The button or other interactable graphical element may, upon being clicked or otherwise engaged with by the user, send a command, for example to a server104or other such remote service or program, to transmit the settings that that player is using while playing the game that the user is currently playing or watching a stream of, to the user device103.
At404, the settings transfer program108may receive the player settings. Here, the settings transfer program108may receive, for example from a server104or other such remote service or program, player settings that the user-initiated transmission of by interacting with the interactable graphical element.
At406, the settings transfer program108may perform a hardware check to determine if the player settings are compatible with one or more user hardware elements. Here, the hardware check may comprise gathering, by settings transfer program108, user system data regarding one or more system elements connected to a user system103. Here, the settings transfer program108may analyze the user device103to identify its component parts that drive the performance of user device103in running the game, such as central processing units, graphical processing units, random access memory, display devices, et cetera.
The settings transfer program108may further retrieve statistics relating to the performance of identified component parts, such as the number and speed of cores comprising a central processing unit, the amount and speed of random access memory, the architecture and performance of a graphical processing unit, the native resolution of a display, et cetera, for example by looking up the identified component parts in a list comprising a number of parts and their associated performance statistics. The settings transfer program108may identify that system elements are incompatible with a given setting of the player settings where the setting exceeds the performance capabilities of the system elements, for example where a setting enables ray tracing but the graphical processing unit of the user device103does not support ray tracing.
In some embodiments of the invention, the hardware check may comprise a performance check, wherein the settings transfer program108models the effect that one or more settings of the player settings would have on the user device's103ability to render the game, as measured by frames per second, latency, lag, et cetera; if any or a combination of such metrics fall below a performance threshold, than the player setting causing the performance effect may be considered to be incompatible. The performance threshold may represent the threshold below which the gameplay experience will be significantly degraded, and may be pre-provided by the user, or may be a default threshold formulated based on aggregate information from other players. In an example where a setting raises the graphics to ultra but the graphical processing unit is unequal to the task, resulting in frames per second of the game dipping below a performance threshold where visual quality and gameplay become noticeably degraded, settings transfer program108may label such setting as incompatible with the user device103. The settings transfer program108may then revise the player settings to delete incompatible player settings, leaving only player settings that are compatible with user device103.
Alternatively, or additionally, for example where the player settings comprise keybindings, the hardware check may comprise analyzing, by settings transfer program108, the user device103to identify connected interface devices through which the user may interact with the user device103. Interface devices, or interface elements, may include computer-integrated devices such as laptop keyboards or trackpads, peripheral devices such as video game controllers, attached keyboards, attached mice, joysticks, and any other dedicated input devices, which may comprise various input means such as buttons, keys, analog sticks, triggers, touchscreens, et cetera. In some embodiments, interface elements may comprise microphones and cameras, through which a user may provide speech and gesture inputs, respectively. The settings transfer program108may identify connected devices by searching for interface devices connected with the user device103and comparing found devices against a pre-provided list of known devices and associated technical specifications, which may include the number, location, type, relative position, axis of motion, et cetera regarding the input means comprising a given interface device, which may be stored as user interface data. The settings transfer program108may, responsive to determining that the player settings comprise keybindings, request player interface data from the player. Responsive to receiving the requested player interface data, the settings transfer program108may match the requested player interface data against the user interface data; if a peripheral in the player interface data matches a peripheral in the user interface data, such that the peripherals have identical or nearly identical input means, the settings transfer program108may consider the peripherals to match. If the settings transfer program108fails to match a peripheral from the user interface data with a peripheral from the player interface data, the settings transfer program108may analyze the position, type, arrangement, et cetera of input means of the respective interface devices comprising the user interface data and the player interface data, to infer whether an input means or group of input means on respective input devices are similar, such that the layout of input means are close enough that mapping the player keybindings to the user's keybindings on the similar peripheral would still provide the user with a substantially similar control paradigm to the player.
At408, the settings transfer program108may, based on the hardware check, revise the received player settings to remove one or more incompatible settings. The settings transfer program108may identify that system elements are incompatible with a given setting of the player settings where the setting exceeds the performance capabilities of the system elements, for example where a setting enables ray tracing but the graphical processing unit of the user device103does not support ray tracing. In some embodiments, the settings transfer program108may initiate a performance check, wherein settings transfer program108models the effect that one or more settings of the user settings would have on the user device's103ability to render the game, as measured by frames per second, latency, lag, et cetera; if any or a combination of such metrics fall below a performance threshold, than such one or more settings may be considered to be incompatible. The performance threshold may represent the threshold below which the gameplay experience will be significantly degraded, and may be pre-provided by the user, or may be a default threshold formulated based on aggregate information from other players. In an example where a setting raises the graphics to ultra but the graphical processing unit is unequal to the task, resulting in frames per second of the game dipping below a performance threshold where visual quality and gameplay become noticeably degraded, settings transfer program108may label such setting as incompatible with the user device103. The settings transfer program108may then revise the player settings to delete incompatible player settings, leaving only player settings that are compatible with user device103.
At410, the settings transfer program108may overwrite one or more user settings with the revised player settings. Here, the settings transfer program108may interface with the game, for example using an API, to modify the settings of the game to replace the settings with those corresponding to the player. In some embodiments, settings transfer program108may only replace settings that the user has designated should always be replaced and may exclude settings which the user has designated as never replace in the user setting preferences. In some embodiments, the settings transfer program108may only modify the settings of the game to replace the user settings with player settings that are compatible with the one or more system elements, and may exclude player settings that are incompatible, for example by replacing the user settings with player settings that have been revised to exclude incompatible player settings.
At412, the settings transfer program108may display a message to the user with the results of the overwrite. Here, the settings transfer program108may display a graphical element on a digital display device associated with user device103. The graphical element may comprise a written message which may include suggestions for using the newly imported player settings, and/or any changes from a previous revision of the player settings previously received that were associated with the same player.
It may be appreciated thatFIGS.2-4provide only illustrations of individual implementations and do not imply any limitations with regard to how different embodiments may be implemented. One skilled in the art would understand embodiments and aspects of any ofFIGS.2-4to be applicable to and combinable with the others.
The descriptions of the various embodiments of the present invention have been presented for purposes of illustration but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
- A processor-implemented method for importing player settings, the method comprising: responsive to receiving a command from a user to import one or more player settings associated with a player, requesting the one or more player settings;receiving the one or more player settings;performing a hardware check to determine if the player settings are compatible with one or more user hardware elements;overwriting one or more user settings with the revised player settings based on the hardware check;and displaying a message to the user with one or more results of the overwrite.
- The method of claim 1, wherein performing the hardware check further comprises: responsive to determining that a player peripheral associated with one or more of the player settings does not match a user peripheral, removing one or more keybindings associated with the player peripheral from the player settings.
- The method of claim 1, wherein performing the hardware check further comprises: responsive to determining that a player peripheral associated with one or more of the player settings does not match a user peripheral, identifying one or more similarities between the player peripheral and the user peripheral based on a static mapping;and removing one or more keybindings associated with the player peripheral which do not correspond to the identified similarities from the player settings.
- The method of claim 1, wherein the overwriting is based on one or more user interface preferences, and wherein the user interface preferences are based on user keybindings from a plurality of games of a same genre on a user device.
- The method of claim 1, wherein the hardware check comprises a performance check, comprising: identifying a performance impact of the user settings on a user device based on system data regarding one or more system elements connected to the user device.
- The method of claim 1, wherein the overwriting is based on one or more user settings preferences.
- The method of claim 1, wherein the command is received responsive to a user interacting with a button in a multiplayer gaming platform or a streaming platform.
- A computer system for importing player settings, the computer system comprising: one or more processors, one or more computer-readable memories and one or more computer-readable storage media;program instructions, stored on at least one of the one or more storage media for execution by at least one of the one or more processors via at least one of the one or more memories, to carry out the following steps: responsive to receiving a command from a user to import one or more player settings associated with a player, requesting the one or more player settings;receiving the one or more player settings;performing a hardware check to determine if the player settings are compatible with one or more user hardware elements;overwriting one or more user settings with the revised player settings based on the hardware check;and displaying a message to the user with one or more results of the overwrite.
- The computer system of claim 8, wherein the program instructions to perform the hardware check further comprise: responsive to determining that a player peripheral associated with one or more of the player settings does not match a user peripheral, removing one or more keybindings associated with the player peripheral from the player settings.
- The computer system of claim 8, wherein the program instructions to perform the hardware check further comprise: responsive to determining that a player peripheral associated with one or more of the player settings does not match a user peripheral, identifying one or more similarities between the player peripheral and the user peripheral based on a static mapping;and removing one or more keybindings associated with the player peripheral which do not correspond to the identified similarities from the player settings.
- The computer system of claim 8, wherein the program step to overwrite is based on one or more user interface preferences, and wherein the user interface preferences are based on user keybindings from a plurality of games of a same genre on a user device.
- The computer system of claim 8, wherein the command is received responsive to a user interacting with a button in a multiplayer gaming platform or a streaming platform.
- The computer system of claim 8, wherein the program step to overwrite is based on one or more user settings preferences.
- The computer system of claim 8, wherein the command is received responsive to a user interacting with a button in a multiplayer gaming platform or a streaming platform.
- A computer program product for importing player settings, the computer program product comprising: one or more computer-readable storage media;program instructions, stored on at least one of the one or more storage media, to perform the following steps: responsive to receiving a command from a user to import one or more player settings associated with a player, requesting the one or more player settings;receiving the one or more player settings;performing a hardware check to determine if the player settings are compatible with one or more user hardware elements;overwriting one or more user settings with the revised player settings based on the hardware check;and displaying a message to the user with one or more results of the overwrite.
- The computer program product of claim 15, wherein the program instructions to perform the hardware check further comprise: responsive to determining that a player peripheral associated with one or more of the player settings does not match a user peripheral, removing one or more keybindings associated with the player peripheral from the player settings.
- The computer program product of claim 15, wherein the program instructions to perform the hardware check further comprise: responsive to determining that a player peripheral associated with one or more of the player settings does not match a user peripheral, identifying one or more similarities between the player peripheral and the user peripheral based on a static mapping;and removing one or more keybindings associated with the player peripheral which do not correspond to the identified similarities from the player settings.
- The computer program product of claim 15, wherein the program step to overwrite is based on one or more user interface preferences, and wherein the user interface preferences are based on user keybindings from a plurality of games of a same genre on a user device.
- The computer program product of claim 15, wherein the command is received responsive to a user interacting with a button in a multiplayer gaming platform or a streaming platform.
- The computer program product of claim 15, wherein the program step to overwrite is based on one or more user settings preferences.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.