GAME WINDOW
20250303304 ยท 2025-10-02
Inventors
Cpc classification
A63F13/60
HUMAN NECESSITIES
A63F2300/538
HUMAN NECESSITIES
A63F13/77
HUMAN NECESSITIES
A63F2300/60
HUMAN NECESSITIES
International classification
A63F13/77
HUMAN NECESSITIES
A63F13/60
HUMAN NECESSITIES
Abstract
Systems, methods, and computer-readable media for providing a game to a user through a user interface. A gaming platform may include a game client, a game window, a message flow, a launcher, a game launch service, a game provider, a platform back end, and a testing module. The game client may provide the game. The game client may be embedded in the game window. The game window may provide the ability for a user to interact with the game through an input, as well as one or more interface elements agnostic to the game. The message flow may facilitate the translation and communication of a message from a first format associated with the game client and a second format associated with the game window.
Claims
1. A system for testing a game provided to a user via a user interface, the system comprising: a game client operable for providing the game; a game window in which the game client is embedded, the game window operable for receiving, via the user interface, input corresponding to the game from the user; an event flow operable for facilitating a message transmission between the game client and the game window; a testing module operable to conduct one or more tests on one or more components of the game window; and one or more non-transitory computer-readable media comprising computer-executable instructions that, when executed by at least one processor, perform a method for testing the game window, comprising: performing, via the testing module, the one or more tests on the one or more components of the user interface, wherein performing the one or more tests comprises: automatically locating the one or more components of the user interface; and responsive to locating the one or more components of the user interface, automatically selecting the one or more components of the user interface; and compiling, after performing the one or more tests on the one or more components, a set of test results.
2. The system of claim 1, wherein the testing module comprises: a machine learning model trained to automatically locate and select the one or more components of the user interface of the game.
3. The system of claim 2, wherein the machine learning model is trained on a set of historical games and historical game clients associated with a third-party game provider; wherein the game is provided by the third-party game provider.
4. The system of claim 1, wherein the system further comprises: a game provider operable to communicate with the game client and a component of a platform backend; wherein the method further comprises: determining whether one or more transactions occurred between the game provider, the game client, the game window, and the platform backend in response to automatically selecting each component from the one or more components.
5. The system of claim 1, wherein the game window is further operable to provide a game-agnostic component from the one or more components such that the game-agnostic component is uniform across a plurality of games including the game.
6. The system of claim 5, wherein the testing module is further operable to test one or more suppressed components of the game client, the one or more suppressed components are associated with the one or more components of the game window.
7. The system of claim 5, wherein the game-agnostic component from the one or more components comprises a button actuatable by the user.
8. A method for testing a game provided to a user via a user interface, the method comprising: receiving a request to launch the game, the game comprising a plurality of game-specific controls; launching, in a game client embedded in a game window, the game; providing, via the user interface associated with the game window, one or more components; performing, via a machine learning model trained to locate and select the one or more components of the user interface, one or more tests on the one or more components of the user interface, wherein performing the one or more tests comprises: automatically locating a location for each component of the one or more components of the user interface; and responsive to locating the location for each component of the one or more components of the user interface, automatically selecting the location for each component of the one or more components of the user interface; and compiling, after performing the one or more tests on the one or more components, a set of test results.
9. The method of claim 8, further comprising: suppressing, by the game client, a game control from the plurality of game-specific controls, wherein the game control corresponds to at least one component from the one or more components.
10. The method of claim 9, wherein performing the one or more tests on the one or more components of the user interface further comprises: determining whether the game control from the plurality of game-specific controls has been suppressed.
11. The method of claim 10, wherein determining whether the game control from the plurality of game-specific controls has been suppressed comprises: selecting a second location of the user interface, the second location associated with the game control; and in response to selecting the second location, determining whether a message associated with selecting of the second location was received by the game client.
12. The method of claim 8, wherein the location for each component from the one or more components of the user interface includes a button actuatable the user.
13. The method of claim 12, wherein automatically selecting the location for each component of the one or more components of the user interface comprises automatically actuating the button for each component.
14. The method of claim 8, wherein performing the one or more tests on the one or more components of the user interface further comprises: responsive to automatically selecting the location for each component of the one or more components of the user interface, determining whether an element associated with the user interface and at least one component from the one or more components updated.
15. One or more non-transitory computer-readable media comprising computer-executable instructions that, when executed by at least one processor, perform a method of testing a game provided to a user, the method comprising: receiving a request to launch the game, the game comprising one or more game-specific controls; launching, in a game client embedded in a game window, the game; providing, via a user interface associated with the game window, one or more game-agnostic components; performing, via a machine learning model trained to locate and select the one or more game-agnostic components of the user interface, one or more tests on the one or more game-agnostic components of the user interface, wherein performing the one or more tests comprises: automatically locating a location for each component of the one or more game-agnostic components of the user interface; and responsive to locating the location for each component of the one or more game-agnostic components of the user interface, automatically selecting the location for each component of the one or more game-agnostic components of the user interface; and compiling, after performing the one or more tests on the one or more game-agnostic components, a set of test results.
16. The one or more non-transitory computer-readable media of claim 15, wherein automatically selecting the location for each component of the one or more game-agnostic components of the user interface comprises: selecting a first location provided by the game window, the first location including an interface element; and wherein selecting the first location provided by the game window initiates transmittal of a second request by the game window to the game client; wherein the request is a first request.
17. The one or more non-transitory computer-readable media of claim 16, wherein performing the one or more tests on the one or more game-agnostic components of the user interface further comprises: determining whether a reply associated with the request is received from the game client by the game window; and determining whether a second interface element associated with a first interface element and the first location has updated, wherein the interface element is the first interface element.
18. The one or more non-transitory computer-readable media of claim 17, wherein the method further comprises: wherein the set of test results includes information indicative of the second interface element having updated upon selection of the first location.
19. The one or more non-transitory computer-readable media of claim 15, wherein the method further comprises: retraining the machine learning model using the set of test results.
20. The one or more non-transitory computer-readable media of claim 15, wherein each game control from the one or more game-specific controls has a functionality that overlaps at least one component of the one or more game-agnostic components of the user interface.
Description
BRIEF DESCRIPTION OF THE DRAWING FIGURES
[0027] Embodiments of the present disclosure are described in detail below with reference to the attached drawing figures, wherein:
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036] The drawing figures do not limit the present disclosure to the specific embodiments disclosed and described herein. The drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure.
DETAILED DESCRIPTION
[0037] The following detailed description references the accompanying drawings that illustrate specific embodiments in which the present disclosure can be practiced. The embodiments are intended to describe aspects of the present disclosure in sufficient detail to enable those skilled in the art to practice the present disclosure. Other embodiments can be utilized and changes can be made without departing from the scope of the present disclosure. The following detailed description is, therefore, not to be taken in a limiting sense. The scope of the present disclosure is defined only by the appended claims, along with the full scope of equivalents to which such claims are entitled.
[0038] In this description, references to one embodiment, an embodiment, or embodiments mean that the feature or features being referred to are included in at least one embodiment of the technology. Separate references to one embodiment, an embodiment, or embodiments in this description do not necessarily refer to the same embodiment and are also not mutually exclusive unless so stated and/or except as will be readily apparent to those skilled in the art from the description. For example, a feature, structure, act, etc. described in one embodiment may also be included in other embodiments, but is not necessarily included. Thus, the technology can include a variety of combinations and/or integrations of the embodiments described herein.
[0039] The following disclosure is directed to systems and methods for providing a game to a user through a user interface. In some embodiments, a gaming platform 200 includes a game client, a game window, a message flow, a launcher, a game launch service, a game provider, a platform back end, and a testing module. In some embodiments, the game client may provide the game. The game client may be embedded in the game window. In some embodiments, the game window may provide the ability for a user to interact with the game through an input, as well as one or more interface elements agnostic to the game. In some embodiments, the message flow may facilitate the translation and communication of a message from a first format associated with the game client and a second format associated with the game window. In some embodiments, the launcher facilitates the launching of the game in the game client embedded in the game window. The game launch service may facilitate the launching the game by interfacing with one or more components of the platform backend. The game provider may provide the game launch service with a game-specific launch flow. The testing module may conduct a set of tests on the game window.
[0040]
[0041] Such non-transitory computer-readable media include both volatile and nonvolatile media, removable and nonremovable media, and contemplate media readable by a database. For example, computer-readable media include (but are not limited to) RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile discs (DVD), holographic media or other optical disc storage, magnetic cassettes, magnetic tape, magnetic disk storage, and other magnetic storage devices. These technologies can store data temporarily or permanently. However, unless explicitly specified otherwise, the term computer-readable media should not be construed to include physical, but transitory, forms of signal transmission such as radio broadcasts, electrical signals through a wire, or light pulses through a fiber-optic cable. Examples of stored information include computer-useable instructions, data structures, program modules, and other data representations.
[0042] Finally, network interface card (NIC) 124 is also attached to system bus 104 and allows computer 102 to communicate over a network such as local network 126. NIC 124 can be any form of network interface known in the art, such as Ethernet, ATM, fiber, Bluetooth, or Wi-Fi (i.e., the IEEE 802.11 family of standards). NIC 124 connects computer 102 to local network 126, which may also include one or more other computers, such as computer 128, and network storage, such as data store 130. Generally, a data store such as data store 130 may be any repository from which information can be stored and retrieved as needed. Examples of data stores include relational or object-oriented databases, spreadsheets, file systems, flat files, directory services such as LDAP and Active Directory, or email storage systems. A data store may be accessible via a complex API (such as, for example, Structured Query Language), a simple API providing only read, write and seek operations, or any level of complexity in between. Some data stores may additionally provide management functions for data sets stored therein such as backup or versioning. Data stores can be local to a single computer such as computer 128, accessible on a local network such as local network 126, or remotely accessible over Internet 132. Local network 126 is in turn connected to Internet 132, which connects many networks such as local network 126, remote network 134 or directly attached computers such as computer 136. In some embodiments, computer 102 can itself be directly connected to Internet 132.
Gaming Platform Architecture
[0043]
[0044] In some embodiments, user 202 may launch and/or access an instance of game client 206 and game window 208 (discussed below) through user interface 204. User 202 may be any user of a gaming platform, including a person, a group, a tester, an administrator, another platform, a computer, and the like. User interface 204 may be any device now known or later developed for displaying and/or interacting with game client 206 and game window 208, including, but not limited to, a computer, a monitor, a database, a mobile device, VR headset, and the like. It is noted herein that different user interfaces may require any number of additional steps for accessing, launching, and interacting with games provided by game client 206 and game window 208.
[0045] In some embodiments, gaming platform 200 may include game client 206. Game client 206 may provide functionality to a game provided by a third-party provider. For example, game client 206 may provide functionality for an online slot machine game that allows a user to initiate a virtual slot machine spin. Further, game client 206 may interface with additional elements of a given platform in order to facilitate a transaction corresponding to one or more user actions, inputs, and/or interactions with game client 206. For example, game client 206 may interface with platform back end 210 to access a financial account (e.g., a wallet) associated with the user interacting with game client 206.
[0046] In some embodiments, game client 206 may facilitate the display of a graphical user interface to user 202 through user interface 204. For example, game client 206 may manage the front-end assets of a graphical user interface, such that it facilitates the display of the assets to user 202 through user interface 204. The front-end assets may include any assets now known or later developed, including, but not limited to, colors, shapes, images, etc. associated with games.
[0047] In some embodiments, game client 206 may be embedded in game window 208. Game window 208 may facilitate the display of game-agnostic GUI elements to user 202 through user interface 204. For example, as depicted in
[0048] In some embodiments, game window 208 may interface with platform back end 210 to facilitate a transaction. For example, when user 202 launches game window 208, game window 208 may interface with platform back end 210 in order to request information to facilitate the launching of game window 208, user account information associated with user 202, session management information, and the like. In some embodiments, platform back end 210 may transmit messagesincluding, but not limited to, push notifications, promotional messages, regulatory messages, and the liketo game client 206 and/or game window 208. Accordingly, the messages transmitted by platform back end 210 may be displayed to user 202 via user interface 204. For example, the messages may be displayed to user 202 in the form of a graphical element.
[0049] In some embodiments, game client 206 and game window 208 may interface with one another. In such embodiments, game client 206 and game window 208 may interface through message flow 212. As discussed below with respect to message flow 400 of
[0050] In some embodiments, game client 206 and/or game window 208 may interface with launcher 216 in order to launch game client 206 and game window 208. In some embodiments, launcher 216 may be embedded within game client 206 and/or game window 208. Generally, launcher 216 may facilitate one or more processes involved with launching game client 206 and game window 208, including launching game client 206 within game window 208. In order to do so, as discussed further with respect to
[0051] For example, in some embodiments, launcher 216 may be connected to game launch service 218. Launcher 216 may interface with game launch service 218 to initiate back-end processes for launching game client 206 and game window 208. For example, game launch service 218 may connect to platform back end 210 in order to begin a new gaming session associated with user 202 and the particular game being launched.
[0052] For another example, in some embodiments, launcher 216 may be connected to game provider 214. Launcher 216 may request game-specific information from game provider 214. For example, launcher 216 may request game provider-specific launch information, including how to launch particular assets to be displayed to user 202 through user interface 204. For another example, launcher 216 may request access to various components of the game provided by game provider 214 in order to suppress and/or access certain assets, such as audio controls.
[0053] In some embodiments, game window 208 may interface with testing module 220. Broadly, testing module 220 may initiate testing of any number of features of game window 208 and game client 206. For example, testing module 220 may initiate testing of the communication of messages between game window 208 and game client 206 through message flow 212. Accordingly, testing module 220 may be able to determine whether the interaction of user 202 with game window 208 results in accurate messages and instructions being communicated to game client 206.
[0054] In some embodiments, testing module 220 performs automated testing on game window 208 and game client 206. For example, in some embodiments, testing module 220 may be informed by one or more machine learning models in order to test the functionality of game window 208. For example, testing module 220 may utilize knowledge of the previous testing conducted by testing module 220 in order to determine whether the testing generated the outcomes expected by testing module 220. Accordingly, testing module 220 may modify various tests. For example, testing module 220 may test various components displayed to user 202 through user interface 204 to ensure that user 202 selecting various components displayed results in the intended action associated with the various components. As such, testing module 220 may need to know the location of the various components to enable their selection by testing module 220. Accordingly, testing module 220 may modify various tests if the machine learning models are informed that not all of the components being displayed to user 202 were correctly being actuated by testing module 220 during a prior test. Testing module 220 may perform image processing (such as, for example computer vision or image processing techniques) to identify locations of the components and may modify the tests to ensure the future accuracy of the estimated locations of the various components of game window 208.
[0055] Machine learning models utilized by testing module 220 may be any suitable model now known or later developed, including, but not limited to, linear regression, logistic regression, support vector machines, nave bayes, k-nearest neighbors, boosting algorithms, decision trees, random forest, neural networks, classifiers, reinforcement learning, cluster analysis, k-means clustering, large language models, and similar machine learning models. In such embodiments, the machine learning model used by testing module 220 may be trained off a variety of training data sets. The information included in the training data sets may be any suitable information for optimizing testing, including, but not limited to, prior testing information, component information, rendering information, web engine or app layout data, transactional information, messaging information, game provider information, consumer behavior information, user interface specific information, and similar information. Using machine learning to inform testing conducted by testing module 220 may allow for more efficient testing such that a given game can be tested in a shorter period of time. Accordingly, testing module 220 may conduct a large number of tests on a large variety of games in a more time-efficient manner.
[0056] Continuing on,
[0057] At step 304, a request for launch data is transmitted. In some embodiments, the request for launch data may be transmitted to game launch service 218 which may gather the launch data from other elements of gaming platform 200. For example, launcher 216 may facilitate the retrieval of launch data from various other components in the system, such as platform back end 210 through game launch service 218.
[0058] At step 306, the backend launch process is initiated. In some embodiments, as described above with regard to step 304, game launch service 218 may interface with platform back end 210. Accordingly, platform back end 210 may initiate one or more processes to facilitate the retrieval of launch data. For example, platform back end 210 may include a session manager, and the session manager may start a new user session and transmit information regarding the new user session to game launch service 218.
[0059] At step 308, the game provider launch process is initiated. In some embodiments, game launch service 218 may interface with game provider 214 to initiate the provider-specific launch flow for a particular game. For example, game provider 214 may initiate the configuration of the game in a manner that is specific to the game. This may be an alternative to, or in addition to, the launch processes conducted by game launch service 218 and platform back end 210. In some embodiments, the initiation of the game provider launch process may be excluded from method 300, such as when the game provider does not provide a specific launch process for the game.
[0060] At step 310, the launch data is constructed and transmitted. In some embodiments, game launch service 218 may construct and package the launch data and provide the launch data to launcher 216. For example, the constructed and packaged launch date may include instructions on how to configure the game client 206 within game window 208 such that it is displayed to user 202 through user interface 204. Accordingly, launcher 216 may then analyze the launch data and properly configure the instance of game client 206 within game window 208.
[0061] At step 312, a request to launch the game is sent to the game provider. In some embodiments, upon receiving the constructed and packaged launch data from game launch service 218, launcher 216 may interface with game provider 214 to launch the game within game client 206 embedded in game window 208 according to the parameters described by the constructed and packaged launch data. Accordingly, game provider 214 may retrieve and return the game requested such that game client 206 displays the game to user 202 and game window 208 provides the ability to interact with the game to user 202.
[0062] At step 314, the game is launched by the game client 206 in the game window 208. In some embodiments, the game is launched by the game client 206 in game window 208 such that user 202 can see unsuppressed assets of the game displayed by game client 206 and various assets of game window 208. Further, the game may be launched by the game client 206 in game window 208 such that game window 208 provides the ability to interact with elements of the game. For example, game window 208 may allow user 202 to call game client 206 by selecting a spin button such that game client 206 initiates an animation corresponding to a spin.
[0063] Continuing on,
[0064] In some embodiments, game client 406 may transmit a message to game window 408 in a different format than the messages understood by game window 408 and other components of the system. For example, the syntax of the message sent by game client 406 may differ from the syntax of the messages received by game window 408. As such, in some embodiments, game client 406 may interface with message mapper 402 in order to standardize the message to a format that is understandable by game window 408.
[0065] In some embodiments, message mapper 402 includes a library corresponding to the messages understood by game window 408, platform back end 410, and any other system components that may be receiving a message. The library may contain information regarding syntax and formatting specific to a particular instance of game provider 414. Accordingly, message mapper 402 may compare the message received from game client 406 to the library in order to translate the message to a standardized message format understood by game window 408.
[0066] Upon translating the message, message mapper 402 may transmit the message to message handler 404. In some embodiments, the message transmitted by game client 406 may already conform to the standardized message format understood by game window 408. As such, game client 406 may transmit the message directly to message handler 404 without transmitting the message to message handler 404. In some embodiments, message mapper 402 may route the message to the intended recipient of the message. For example, in the event that message handler 404 receives a message requesting game window 408 to suppress the display of the menu, message handler 404 may deliver the message to game window 408. For another example, in the event the message is a request by game window 408 to game client 406 requesting game client 406 display an updated balance, message handler 404 may deliver the message to message mapper 402 such that message mapper 402 can translate the message back to the syntax and formatting of the messages understood by game client 406 regarding the particular game provided by game provider 414, generally corresponding to game provider 214 depicted in
[0067] In some embodiments, as described below with regard to
[0068] Continuing on,
[0069] In some embodiments, as discussed above, gaming interface 500a may include game-agnostic components 506. For example, gaming interface 500a may include a plurality of controls 506a (such as a pay table, audio controls, and rules) that are game agnostic such that all games may contain the plurality of controls 506a without affecting the game itself. In this example, a user may interact with the plurality of controls 506a in order to change the volume of sound being outputted by game 502, a feature that may be utilized in every game across all the game providers. Other game-agnostic components may include exit game button 506b, time 506c, and menu button 506d.
[0070] In some embodiments, gaming interface 500a may include a balance indicator 508. The balance indicator 508 may correspond to an amount of funds, such as physical funds or virtual funds, located in a financial account associated with the user interacting with game 502. As such, the amount shown by balance indicator 508 may update as a user interacts with game 502 and gaming interface 500a. Further, gaming interface 500a may include menu button 506d, when, upon being pressed, may initiate the opening of an additional user interface, such as gaming interface 500b.
[0071] Continuing on,
[0072] In some embodiments, gaming interface 500b may include some or all of the buttons displayed in gaming interface 500a, such as exit game button 506b. Gaming interface 500b may include additional components not displayed in gaming interface 500a. For example, gaming interface 500b may include additional instances of game-agnostic components 506, such as exit menu button 506e and menu applications 506f. In some embodiments, gaming interface 500b may display boxes containing information regarding a user. For example, gaming interface 500b may display recently played box 510a that provides information on the recently played games of a user. For another example, gaming interface 500b may display user profile box 510b that provides account information, such as the username, last login, the time, the session, and the account balance.
[0073] In some embodiments, gaming interface 500b may include deposit button 512. Upon selecting deposit button 512, the underlying game client may initiate a transaction with any number of back-end systems to withdraw the requested deposit amount from an account associated with the user. Accordingly, the underlying game client may request the update of one or more interfaces that display the balance of a user account, such as balance indicator 508 depicted in
[0074] Continuing on,
[0075] Continuing on,
[0076] In step 604, a model is trained using the training data. In some embodiments, as discussed above with respect to testing module 220 and
[0077] The model may be trained to optimize any number of processes. By way of example, game window 408 may be initially unaware of the locations of various components displayed to a user. As such, it may be difficult to automatically test the functionality of the front end, given that instructions on where to locate various components may be unavailable to testing module 412. As such, in some embodiments, the model may be trained to locate various components of a graphical user interface such that the training module may locate and test the various components. As such, the model may be trained on prior testing information regarding whether particular components were located, where they were located and/or not located, and any icons or images associated with the location of associated components. For example, the testing information may include whether a message was received by game client 406 when an area of the graphical user interface was selected by testing module 412, since that may indicate a component displayed on the graphical user interface was selected.
[0078] In step 606, testing is conducted on the functionality of game window 408. As described above with regard to step 604, testing module 412 may test any number of functionalities associated with game window 408 and game client 406. For example, testing module 412 may test whether or not the selection of the various components displayed on a user interface resulted in appropriate transactions occurring between game window 408, game client 406, platform back end 410, game provider 414, and other components of message flow 400.
[0079] In step 608, testing results from game window 408 testing are received. As discussed above, the testing of game window 408 may provide information to inform the system on the functionality of game window 408, game client 406, platform back in 418, game provider 414, and other components of the system, as well as inform future testing. For example, if testing results indicate that a particular component of the graphical user interfaces for games associated with a particular instance of game provider 414 is prone to error, future testing conducted may focus on ensuring that the particular component is operational.
[0080] In step 610, the training data is updated. In some embodiments, upon updating the training data, the model may be retrained in accordance with step 604. Accordingly, the model used by testing module 412 may be further optimized in any number of ways to perform testing on game window 408. For example, training data may be updated to include a more accurate estimation of the location of the various components on the graphical user interface associated with game window 408. Thus, testing module 412 may be able to select a more precise location associated with a component in future testing.
[0081] Although the present disclosure has been described with reference to the embodiments illustrated in the attached drawing figures, it is noted that equivalents may be employed and substitutions made herein without departing from the scope of the present disclosure as recited in the claims.
[0082] Having thus described various embodiments of the present disclosure, what is claimed as new and desired to be protected by Letters Patent includes the following: