The present disclosure relates generally to electronic games, and more specifically to a system and method for generating and playing a three dimensional (3D) Scrabble® game.
Scrabble® is one of the most popular board games in the world. Scrabble® is played by two to four players on a board containing a grid of rectangles. Each player picks 7 input tiles and places them on a rack in front of them. The tiles also show point values associated with the letter on each tile, with larger values being allocated for letters used less frequently; for example, an “E” is worth 1 point whereas a “Z” is worth 10. The game begins with first player placing a word in the center of the board (one letter of the first word must be played on the center square). The players take turns forming legitimate words of a given language (e.g., English, Spanish, French, etc.) on the board by placing the tiles in the rectangles. Scores are influenced by special rectangles on the board which award extra points for doubling or tripling the value of a particular letter or an entire word.
After forming a word, that player announces his score and it is recorded. The player then replenishes their rack with new tiles, only having 7 tiles in their rack at any time. If all 7 tiles are used in one word, the player receives a bonus of 50 points and takes 7 more tiles, if there are that many left in the bag or face down on the table. Play then proceeds to the next player. Taking turns, everyone places their tiles on the board to form legitimate words. If other players feel a word is not legitimate, they can challenge it. If the challenge is proven to be correct, the player has to take the word off the board, losing the point total and a turn. In modern digital versions of the game, input words are automatically checked against a game dictionary, and an “input is not a word” message is generated for display when an input word is not present in the game dictionary. Players have to add onto other player's tiles to form new words. The goal of the game is to use all the tiles on the board. The game ends when one of the players has used up all their tiles and the tiles in the bag or if no more legitimate words can be formed by the remaining tiles. The point scores left on the other players racks are subtracted from their scores and added to the first place finisher's score. The person with the highest score wins.
Computer video games have become popular entertainment options for children and adults alike. Many fantasy games have been created and many traditional games such as chess, draw poker and the like have been implemented in a computer video format. However, such video games typically keep the same format as the original game and, although some are often displayed in three dimensions, they are generally limited to two-dimensional play on the video screen. In other words, traditional video games generally do not permit the game to be manipulated and played in three dimensions volumetrically and thus do not permit the additional level of complexity possible when the games are played in three dimensions volumetrically. The term “volumetrically” indicates that the game is played on a cubic structure (e.g., 15 letter cubes by 15 letter cubes by 15 letter cubes in which there are 3375 potential letter cubes for use in word plays. Each letter in the cube has a unique position (e.g., (X,Y,Z) in an XYZ-plane.
Virtual and augmented reality environments are generated by computers using, in part, data that describes the environment. This data may describe, for example, various objects with which a user may sense and interact with. Examples of these objects include objects that are rendered and displayed for a user to see, audio that is played for a user to hear, and tactile (or haptic) feedback for a user to feel. Users may sense and interact with the virtual and augmented reality environments through a variety of visual, auditory and tactical means.
Thus, improvements in efficient implementation of traditional board games to be played and manipulated in virtual and augmented reality environments are needed.
The following presents a simplified summary of one or more aspects in order to provide a basic understanding of such aspects. This summary is not an extensive overview of all contemplated aspects, and is intended to neither identify key or critical elements of all aspects nor delineate the scope of any or all aspects. Its sole purpose is to present some concepts of one or more aspects in a simplified form as a prelude to the more detailed description that is presented later.
The present disclosure implements traditional games in a volumetric cube displayed on a computer display screen in three dimensions. In an aspect, the volumetric display cube permits the game to be played and manipulated in three dimensions by allowing a player to manipulate the volumetric display cube to expose the respective faces during play of the game. Advantageously, the volumetric display cube is configured to be rendered and manipulated in virtual and augmented reality environments.
In an aspect, a method for generating an interactive three dimensional (3D) game includes generating a manipulable volumetric virtual 3D display cube. The manipulable volumetric virtual 3D display cube includes a plurality of cubic elements. Different combinations of the plurality of cubic elements include a plurality of play objects. A first input object, second input object, third input object fourth input object, and fifth input object is generated. A determination is made whether the user provided the input by manipulating at least one of the manipulable volumetric virtual 3D display cube, first input object, second input object, third input object or fourth input object The manipulable volumetric virtual 3D display cube is rotated along at least a vertical axis, in response to determining that the user provided the input by manipulating the manipulable volumetric virtual 3D display cube. A different play object is displayed within the manipulable volumetric virtual 3D display cube as the selected play object based on user's manipulation of the first input object, in response to determining that the user provided the input by manipulating the first input object. A different axis is selected as the play axis for the selected play object within the fifth input object based on user's manipulation of the second input object, in response to determining that the user provided the input by manipulating the second input object.
To the accomplishment of the foregoing and related ends, the one or more aspects comprise the features hereinafter fully described and particularly pointed out in the claims. The following description and the annexed drawings set forth in detail certain illustrative features of the one or more aspects. These features are indicative, however, of but a few of the various ways in which the principles of various aspects may be employed, and this description is intended to include all such aspects and their equivalents.
The disclosed aspects will hereinafter be described in conjunction with the appended drawings, provided to illustrate and not to limit the disclosed aspects, wherein like designations denote like elements, and in which:
The detailed description set forth below in connection with the appended drawings is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well known components may be shown in block diagram form in order to avoid obscuring such concepts.
Those skilled in the art will readily appreciate that the description given herein with respect to those figures is for explanatory purposes only and is not intended in any way to limit the scope of the disclosure. For example, while the preferred aspect of the disclosure is described with respect to a Scrabble® game, those skilled in the art will appreciate that numerous other applications, games, and the like may be implemented in three dimensions on a computer video screen in accordance with the techniques of the disclosure. Accordingly, all questions regarding the scope of the disclosure should be resolved by referring to the claims.
Turning now to the figures, example aspects are depicted with reference to one or more components described herein, where components in dashed lines may be optional.
Various aspects presented herein are preferably implemented as software containing instructions for controlling a processor, which in turn controls the display on a computing device.
During play of the game, the game software may be loaded on the memory 102 of the host computing device 106 in the game mode, the game's graphics images are displayed on a video display 110, and play of the game is controlled by user entries via touchscreen (as described below) and/or via keyboard 112 and mouse 114. Some computing devices 106 such as laptop computers, may include a trackpad or touchpad (not shown in
The computing device 106 may operate in a networked environment supporting connections to one or more remote computers, such as client devices. The network connection 108 depicted in
In the illustrative aspects of
In an aspect, the shape of the display cube 206 may be defined by a plurality of corner cubic elements. In an aspect, each of the corner cubic elements may comprise a triple word score cubic elements. It should be noted that additional triple word score cubic elements 215 may reside on the outer planes of the display cube 206.
In an aspect, the display cube 206 may render all played play objects 316 (such as other played words). In an aspect, each play object 316 may include a plurality of cubic elements. In an aspect, the processor 104 may generate a geometry buffer for storing the x, y, z values of each cubic element 316. In an aspect, the word builder 310 and the letter selector 312 may be rendered at the bottom of the touch screen 302, as shown in
In an aspect, by manipulating another input object, namely the word list 304, a user may select next play position within the display cube 206. In the example in
In another aspect, the visual setup may be more defined. For example, the thickness values (on a scale of 0.1-3) for a selection outline, crosshair outline (e.g., yellow around the word), axis picker outline (e.g., green highlight), verifying word outline (e.g., orange highlight for verified words), may be 2.4, 1.5, 3, and 1.3, respectively. The letter transparency (on a scale between 0 and 1) for a selected word and letters inside a selected axis may be 1, for a second level of connected letters may be 0.6, and for a third level will fade from 0.5-0.23 based on distance.
In an aspect, the play objects 316 other than the selected object 318 may be displayed in transparent white color. Visual appearance of the play objects 316 may be indicative of their relative proximity to the selected object 318. As a non-limiting example, the processor 104 may render play objects 316 that are located closer to the selected object 318 to appear brighter than play objects 316 that are located further away from the selected object 318.
In addition, to putting into a focus the selected word 318, the processor 104 may also indicate all value cubic elements associated with the selected word 318 that may be displayed around the selected word 318. As a non-limiting example, the selected word may include two double letter cubic elements and one triple word cubic element. As noted above, all value cubic elements may be color coded. In an aspect, the view of the display cube 206 illustrated in
In an aspect, the processor 104 may receive or detect an event associated with moving the display cube 206. The event may be a touch, a gesture, a proximity or hovering input using an electronic pen or a part of user's body, etc. For example, while the display cube 206 is displayed on the touch screen 302, the event may be generated by moving the display cube 206 upwards, downwards, rightwards, or leftwards and releasing after touching the screen 302. In an aspect, the processor 104 may rotate the display cube 206 in the direction of finger motion.
In an aspect, the display cube 206 may be rendered in either a “look up at” (display cube) or a “look down at” positions. In an aspect, a user may perform a touch and tilt down operation to look downward at the display cube 206. Similarly, a user may perform a touch and tilt up operation to look upward at the display cube 206, when the display cube 206 is rendered in “look down at” position. In an aspect, a user may perform a double tap operation by double tapping central portion of the display cube 206 and a mapping function (e.g., zoom in/out to/from the selected word 318) corresponding to the selected surface may be performed dynamically by the processor 104 responsive to user's input (double tap).
In addition, a user may rotate the display cube 206 left/right around vertical axis (Y axis) at any time while playing. In an aspect, the processor 104 may utilize rotational limit positions on each side, so that rotation of the display cube 206 may be stopped to prevent the display cube 206 from rendering played words backwards and/or from rendering played words in a stacked up fashion. In an aspect, the rotational limit position may be set at 28 degrees left or right with respect to the starting position. In an aspect, the default and optimum viewing position may render the display cube 206 rotated to the user at a 45-degree angle of rotation. It should be noted, that in various implementations other rotational limits may be used to improve readability of the data rendered by the display cube 206. The display cube 206 in
The touch screen 302 may use LCD (liquid crystal display) technology, or LPD (light emitting polymer display) technology, although other display technologies may be used in other aspects. The touch screen 302 may detect contact and any movement or breaking thereof using any of a plurality of touch sensing technologies now known or later developed, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch screen 302.
As noted above, a user may dynamically perform a double tap operation by double tapping central portion of the display cube 206. In response to such input, a mapping function (e.g., zoom in/out to/from a selected word) corresponding to the selected surface may be performed by the processor 104 in real time. In an aspect, in response to detecting a double tap operation, the processor 104 may automatically generate a view of the display cube 206 shown in
In an aspect, in response to detecting another double tap operation, the processor 104 may dynamically return to the wide context view (shown in
It should be noted that the word list is in order of play, with the first in the list being the first word played, and the last in the list is the last word played. An advantage of navigating this list is to “scan” through all the words. Any word that moves into the selection box is highlighted in the game cube in real time. Players can scan the list as fast they wish. In this “scanning” process, if the player slows and stops on a word, the possible value cubes that could be played fade in. The list is not visibly expandable in this wide view. That action can be done in the zoomed in mode (see
In an aspect, by default, the processor 104 may render the played words in the word list 304 for the side of display cube 206 facing the user. As shown in
In an aspect, in response to detecting any navigation of the word list 304 by a user, the processor 104 may automatically disable any manipulation of the display cube 206. This functionality may enable a user to navigate the word list 304 by touching over the display cube 206 area.
Furthermore, in addition to dynamically updating the selected word 318, the processor 104 may interactively display one or more value cubic elements related to potential plays in any of the three axis associated with the selected object 318, such as, but not limited to a double letter cubic element 420 and a triple word cubic element 422. In an aspect, other value cubic elements may be selectively faded away as a user navigates the word list 304.
A user may dynamically switch between different play axes by tapping on the axis picker input object 308.
In an aspect, the axis picker input object 308 may rotate in the same direction in 3D around the vertical axis as the display cube 206. More specifically, axis picker input object 308 moves precisely in sync with the game cube (and the crosshair object 307 inside it). This means movements and positions left/right as well as the look up and look down positions move in sync at all times.
In an aspect, for each play, a user should select one of the three axes 502, 504 and 506 in the axis picker input object 308 corresponding to three play axes 512, 514 and 516 in the crosshair object 307 associated with the selected word 318. In response to a user selecting one of the three axes 502, 504 and 506, the processor 104 may dynamically select a corresponding axis of play associated with the selected word 318 in the display cube 206.
As shown in
In an aspect, in response to user tapping the axis picker input object 308, the processor 104 may dynamically update the crosshair object 307, as shown in
In an aspect, in response to user tapping the axis picker input object 308 one more time, the processor 104 may dynamically update the display cube 206, as shown in
Advantageously, in addition to selecting the corresponding play axis in the crosshair object 307, the processor 104 may also identify and display adjacent (e.g., tangent or parallel) play objects that should be considered by a user for the selected play axis. For example, as shown in
As noted above, rotating the display cube 206 left/right by even minimal amounts may create parallaxes, enhancing the sense of 3D space, and/or clarifying positions of individual play objects. In an aspect, additional user taps may continue the cycle shown in
In an aspect, the axis picker input object 308 may also be used for selecting a play position in the selected word 318.
In an aspect, as shown in
It should be noted that according to rules of the game, a user may select a play position off any letter in the selected word 318, as well as the space before or after the selected word 318. For example, a user may place the letter “s” at the end of the selected word 318 to make it plural.
It should also be noted that the dots are not specific to positions (letters) in the movement across the words. They simply indicate a direction of motion for a users' finger. Thus the user can look at the game cube and the crosshair object, can see the movement, and can stop on the desired letter.
In an aspect, a user may perform the side step operation using the selected word 318 by pressing and holding the axis picker input object 308 using two fingers in double touch 702 and 704 fashion. In response to detecting a double touch 702 and 704 of the axis picker input object 308 by the processor 104, the axis picker input object 308 may expand and a vertical row of dots 706 may appear extending in the opposite directions from the center of the axis picker input object 308.
In an aspect, as shown in
It should be noted that in an aspect, the processor 104 may automatically validate user input. In the example illustrated in
In an aspect, the processor 104 may be configured to validate words using a dictionary, such as but not limited to Scrabble® dictionary, which may be stored in the computing device's memory 102. In response to validating a particular word, the processor may highlight the validated word. In an aspect, the highlighted words may be color coded. For example, play objects 718 and 720 may be highlighted in orange if the words contained in the corresponding play objects are valid words.
In addition, the processor 104 may be configured to calculate the score for each of the newly created words. In an aspect, the processor 104 may display the score for this particular play and may render the score in a location just below a message bar object 726 that may be positioned at the top of the touch screen 302.
As shown in
In an aspect, a user may input letters into the tiles 808 within the word builder 310 using the input tiles 312. As noted above, at the start of the game, the processor 104 may assign a predefined number (for example, seven) randomly generated letters to the input tiles 312 for each player participating in the game. In an aspect, the input tiles 312 may contain letters of a particular alphabet. In an aspect, the alphabet may be a Latin alphabet. Examples of Latin-alphabet based languages include, but are not limited to, English, German, Dutch, Danish, Swedish, Norwegian, French, Spanish, Portuguese, Italian, etc. However, aspects of the present disclosure are not limited to Latin-based alphabet languages and may work with any other language that may be used for playing Scrabble®.
In the example illustrated in
In an aspect, a user may press and hold a desired input tile 312, such as input tile 312a and may move 806 (for example, by dragging) the desired input tile 312a to the desired word builder tile 704, such as word builder tile 804c, within the word builder 310 as shown in
In an aspect, in response to detecting the move 806 of one of the input tiles 312 to the word builder 310, the processor 104 may dynamically display the corresponding letter in the corresponding play position within the selected play axis 802 of the crosshair object 307, as shown in
In an aspect, a user may have an option of moving back the newly placed letters in the word builder 310 by double tapping them. For example, a user may double tap the word builder tile 804e to remove letter “s” from the selected word 318 back to the input tile 312c, until the current play is submitted to the system. In an aspect, the letter in the newly played input tile 312, such as tile 312c, may be replaced by a user swiping 708 two fingers downwards from the word builder 310. In an aspect, in response to detecting a touch input, the processor 104 may wait for a predetermined period of time (e.g., a few milliseconds) to check whether a second touch input is detected. In response to detecting the second touch input, the processor 104 may assign a new letter to the empty input tile 312c.
In an aspect, the processor 104 may color code word builder tiles 804 to indicate to a user positions of the corresponding value cubic elements (if any) that are in play and located in the selected play axis 802. For example, if the first value cubic element 810 is light blue indicating a double letter cubic element, the processor 104 may render the corresponding word builder tile 804f in light blue color as well. Similarly, if the second value cubic element 812 is pink indicating a double word cubic element, the processor 104 may render the corresponding input tile 804g in yellow color as well, and so on. Advantageously, the word builder 310 may act as a proxy of the selected play axis 802 of the crosshair object 307. In other words, the processor 104 may employ the word builder 310 to simplify the process of placing desired letters into the 3D display cube 206 by performing substantially simultaneous updates of the word builder 310 and the corresponding selected play axis 802 within the crosshair object 307.
In an aspect, a user may submit a desired play by pressing a submit button. In response to user pressing the submit button 814, the processor 104 may calculate the score for the submitted play and present the calculated score via the message bar object 726. In addition, the processor 104 may dynamically append the newly created word to the word list 304.
In an aspect, in order to improve interactivity with the display cube 206, the processor 104 may selectively display only play objects that are meaningful to the specific axis selected by a user. In the example shown in
In
It should be noted that in
As shown in
It should be noted that once the user places letters in the selected play axis to form new play objects (words), in response, the processor 104 may moderately highlight corresponding adjacent play objects.
As noted above, a user may move the highlight rectangle 406 up or down to locate the next word to view. For example, a user may use the highlight rectangle 406 to move from the selected word 1002 containing the word “VACCUM” shown in
In an aspect, the interactive menu 1104 may include, but is not limited to the following buttons: “Resign game” 1106, “Tiles remaining” 1108, “Pass your turn” 1110, and “Swap tiles” 1112.
In response to user pressing the “Resign game” button 1106, the processor 104 may enable the user to quit the game and may close the game software application. In response to user pressing the “Pass your turn” button 1110, the processor 104 may enable the user to pass their turn and may enable the next player to make a play.
In an aspect, in response to user pressing the “Swap tiles” button 1112, the processor 104 may render an interactive UI control element that may enable the user to indicate specific letters from the plurality of input tiles 312 that the user may want to exchange for new letters. The aforementioned interactive UI control element may be further configured to perform the exchange of corresponding letters.
In an aspect, in response to user pressing the “Tiles Remaining” button 1108, the processor 104 may render another UI control element that may include, for example, a grid of all letters of the alphabet (and may also include a blank “wild card” space). The processor 104 may provide information, such as the number of tiles remaining, for each of the plurality of letters of the alphabet.
In an optional aspect, the interactive menu 1104 may include a UI control element configured to display various game related statistics, such as, but not limited to community ranking (e.g., top X %), highest score, average score, wins between individual players, best single play, number of “bingo's.”
At 1202, the processor 104 may generate a display cube 206. In an aspect, the display cube 206 permits the game to be played and manipulated in three dimensions by allowing the player to manipulate the display cube to expose the respective faces during play of the Scrabble® game. The virtual 3D display cube 206 includes a plurality of mutually perpendicular surfaces. Each of the plurality of surfaces has a unique play surface associated with the 3D game and may include various combinations play objects (words) of the Scrabble®. By rotating the view of the display cube 206, a user may get a better sense of a three dimensional position of each word within the display cube 206.
At 1204, the processor 104 may generate a played word list. In an aspect, by default, the processor 104 may render the played words in the word list 304 for the side of display cube 206 facing the user. As shown in
At 1205, the processor 104 may generate a crosshair object 307.
At 1206, the processor 104 may generate an axis picker input object 308. Advantageously, the axis picker input object 308 is a visualization tool that enables users to see three mutually perpendicular axes that are available for a new game play. User actions include visualization command inputs or graphical gestures directed at the axis picker input object 308 where the processor 104 may analyze such actions. For example, if the display cube 206 is generated using X, Y, Z coordinate axes, the axis picker input object 308 may be used to select one of X, Y and Z directions for next game play. A user may dynamically switch between different play axes by tapping one of the axes 502, 504 and 506 on the axis picker input object 308, as shown in
At 1208, the processor 104 may generate a word builder 310.
At 1210, the processor 104 may generate a plurality of input tiles 312. In an aspect, at the start of the game, the processor 104 may assign 7 randomly generated letters to the input tiles 312 for each player participating in the game.
At 1212, the processor 104 may wait for a user input event. In an aspect, a user may provide input by manipulating at least one of the virtual 3D display cube 206, the word list 304, the axis picker input object 308, the word builder 310 or the plurality of input tiles 312.
If the user provided input by manipulating the display cube 206 (decision block 1214, “Yes” branch) then, at 1216, the processor 104 may rotate the display cube 206 along one of the three mutually perpendicular axes to display at least one of the plurality of play objects from different angles. In an aspect, a user may rotate the display cube 206 left/right around vertical axis at any time while playing. In an aspect, the processor 104 may utilize rotational limit positions on each side, so that rotation of the display cube 206 may be stopped to prevent the display cube 206 from rendering played words backwards and/or from rendering played words in a stacked up fashion. In an aspect, the rotational limit position may be set at 28 degrees left or right with respect to the starting position. In an aspect, the default and optimum viewing position may render the display cube 206 rotated to the user at a 45-degree angle in such a way that overlap of both front and back edges of the display cube 206 is visible to user. It should be noted, that in various implementations other rotational limits may be used to improve readability of the data rendered by the display cube 206. The display cube 206 in
If the user provided input by manipulating the word list 304 (decision block 1218, “Yes” branch) then, at 1220, the processor 104 may display a different play object within the display cube 206 as the selected play object based on user's manipulation of the word list 304.
If the user provided input by manipulating the axis picker input object 308 (decision block 1222, “Yes” branch) then, at 1224, the processor 104 may select a different surface as the play surface for the selected play object based on user's manipulation of the axis picker input object 308. In response to user pressing and holding 602 the axis picker input object 308, the axis picker input object 308 may expand and a vertical row of dots 604 may appear extending in the opposite directions from the center of the axis picker input object 308. A user may dynamically switch between different play axes by tapping one of the axes 502, 504 and 506 on the axis picker input object 308, as shown in
The disclosed approach provides game software configured to generate a 3D playable and movable Scrabble® game rendered in a display cube and having an interactive interface adapted for touch screen devices. In an aspect, the display cube is easily rotatable and tiltable to provide best viewing 3D angle for a user. The disclosed approach provides rotational limits to prevent any information from being presented backwards and/or from being stacked up. Advantageously, the disclosed approach enables user to tilt the display cube up or down to obtain optimum viewing angle as well. As yet another advantage, the disclosed interactive user interface enables users to switch between different viewing modes.
In other words, one aspect a method of generating an interactive three dimensional (3D) game includes generating a manipulable volumetric virtual 3D display cube. The manipulable volumetric virtual 3D display cube includes a plurality of cubic elements. Different combinations of the plurality of cubic elements include a plurality of play objects. A first input object, second input object, third input object, fourth input object and fifth input object is generated. A determination is made whether the user provided the input by manipulating at least one of the manipulable volumetric virtual 3D display cube, first input object, second input object, third input object or fourth input object The manipulable volumetric virtual 3D display cube is rotated along at least a vertical axis, in response to determining that the user provided the input by manipulating the manipulable volumetric virtual 3D display cube. A different play object is displayed within the manipulable volumetric virtual 3D display cube as the selected play object based on user's manipulation of the first input object, in response to determining that the user provided the input by manipulating the first input object. A different axis is selected as the play axis for the selected play object within the fifth input object based on user's manipulation of the second input object, in response to determining that the user provided the input by manipulating the second input object.
In one or any combination of these aspects, the interactive 3D game comprises a 3D Scrabble® game. Each of the plurality of play positions comprises an input tile.
In one or any combination of these aspects, the first input object is configured to navigate a list of played words. The word selected by the user in the list of played words corresponds to the selected play object in the virtual 3D display cube.
In one or any combination of these aspects, the second input object and the fifth input object comprises three mutually perpendicular axis. The user selects the play surface associated with the play object within the fifth input object by selecting a corresponding axis in the second input object.
In one or any combination of these aspects, the method further includes, in response to determining that the user holds one of the three mutually perpendicular axis in the second input object with a finger and subsequently moves the finger upwards or downwards from a holding position, changing play positions within the selected play object based on the movement of user's finger.
In one or any combination of these aspects, the method further includes, in response to determining that the user holds one of the three mutually perpendicular axis in the second input object with two fingers and subsequently moves the two fingers upwards or downwards from a holding position, displaying within the virtual 3D display cube one or more alternative play objects. The one or more alternative play objects at least partially shares a common edge with the selected play object.
In one or any combination of these aspects, the third input object is configured to display one or more input tiles. Each of the one or more input tiles corresponds to a play position within the selected play object. One more letters populated within the input tiles of the third input object correspond to one or more letters populated within the play object.
In one or any combination of these aspects, the fourth input object is configured to display a predefined number of input tiles. Generating the fourth input object includes automatically populating each of the input tiles of the fourth input object with a random letter.
In one or any combination of these aspects, the method further includes: in response to determining that a user selected one of the input tiles of the fourth input object and in response to determining that the user dragged the selected input tile to a particular input tile of the third input object, updating the particular input tile of the third input object to display the letter populated within the selected input tile of the fourth input object, and updating a play position within the selected play object corresponding to the particular tile of the third input object to display the letter populated within the selected input tile of the fourth input object.
It should be noted that although the user interface featuring the volumetric virtual 3D display cube is shown as being output on a touchscreen-enabled computer device (e.g., a smartphone), the user interface may also be realized in an augmented reality (AR), virtual reality (VR), or mixed reality (MR) device. For example, the user may wear a VR/AR headset that displays the user interface such that it appears to the viewer to be an actual 3D object, existing in x y z space. In this scenario, users may still rotate the game cube left and right for optimum views, but because AR and VR headsets display objects in stereo 3D, their sense of “front” and “back” is clearer. Because there are no limitations of a mobile screen, there is more room to place the game and navigation objects. This includes a fuller view of the game cube and its navigation objects. In particular, the axis picker input object and the word list can be located outward and not overlap the game cube.
In some aspects, the sense of the third dimensional space allows the lower input objects (e.g., word builder object and tile rack) to appear to exist closer to the user than the rest of the game items, giving a sense of them being in the key input position for interacting with their letters and seeing them being placed in the game cube.
The user may additionally use a remote of the VR/AR headset (e.g., a controller, electronic gloves, etc.) or a camera (e.g., motion sensor) to press buttons, make gestures, etc., that are comparable to the tapping and swiping actions described throughout the present disclosure. For example, the user may make a swiping motion in the air. This movement may be captured by a camera and converted into a game command (e.g., swiping) that is executed and shown on the user headset in the VR headset. In one aspect, the inputs provided by the user may be tracked via finger movements on the hand of the user. For example, the user may wear a device on his/her wrist or a device may be integrated in the AR/VR headset that monitors the palm area of the user's hand. As the user makes gestures with his/her finger over the palm area (e.g., swiping, pinching, circle gesture, etc.), the device may utilize detection methods such as, but not limited to, radar/Bluetooth/Wi-Fi technology and/or computer vision techniques to detect the gestures and movements and translate them into game commands. For example, the user may guide his right hand index finger in a up/down motion on the left hand palm area, and the device may classify this motion as a vertical swipe in the game.
As shown, the computer system 20 includes a central processing unit (CPU) 21, a system memory 22, and a system bus 23 connecting the various system components, including the memory associated with the central processing unit 21. The system bus 23 may comprise a bus memory or bus memory controller, a peripheral bus, and a local bus that is able to interact with any other bus architecture. Examples of the buses may include PCI, ISA, PCI-Express, HyperTransport™, InfiniBand™, Serial ATA, I2C, and other suitable interconnects. The central processing unit 21 (also referred to as a processor) can include a single or multiple sets of processors having single or multiple cores. The processor 21 may execute one or more computer-executable code implementing the techniques of the present disclosure. The system memory 22 may be any memory for storing data used herein and/or computer programs that are executable by the processor 21. The system memory 22 may include volatile memory such as a random access memory (RAM) 25 and non-volatile memory such as a read only memory (ROM) 24, flash memory, etc., or any combination thereof. The basic input/output system (BIOS) 26 may store the basic procedures for transfer of information between elements of the computer system 20, such as those at the time of loading the operating system with the use of the ROM 24.
The computer system 20 may include one or more storage devices such as one or more removable storage devices 27, one or more non-removable storage devices 28, or a combination thereof. The one or more removable storage devices 27 and non-removable storage devices 28 are connected to the system bus 23 via a storage interface 32. In an aspect, the storage devices and the corresponding computer-readable storage media are power-independent modules for the storage of computer instructions, data structures, program modules, and other data of the computer system 20. The system memory 22, removable storage devices 27, and non-removable storage devices 28 may use a variety of computer-readable storage media. Examples of computer-readable storage media include machine memory such as cache, SRAM, DRAM, zero capacitor RAM, twin transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; flash memory or other memory technology such as in solid state drives (SSDs) or flash drives; magnetic cassettes, magnetic tape, and magnetic disk storage such as in hard disk drives or floppy disks; optical storage such as in compact disks (CD-ROM) or digital versatile disks (DVDs); and any other medium which may be used to store the desired data and which can be accessed by the computer system 20.
The system memory 22, removable storage devices 27, and non-removable storage devices 28 of the computer system 20 may be used to store an operating system 35, additional program applications 37, other program modules 38, and program data 39. The computer system 20 may include a peripheral interface 46 for communicating data from input devices 40, such as a keyboard, mouse, stylus, game controller, voice input device, touch input device, or other peripheral devices, such as a printer or scanner via one or more I/O ports, such as a serial port, a parallel port, a universal serial bus (USB), or other peripheral interface. A display device 47 such as one or more monitors, projectors, or integrated display, may also be connected to the system bus 23 across an output interface 48, such as a video adapter. In addition to the display devices 47, the computer system 20 may be equipped with other peripheral output devices (not shown), such as loudspeakers and other audiovisual devices.
The computer system 20 may operate in a network environment, using a network connection to one or more remote computers 49. The remote computer (or computers) 49 may be local computer workstations or servers comprising most or all of the aforementioned elements in describing the nature of a computer system 20. Other devices may also be present in the computer network, such as, but not limited to, routers, network stations, peer devices or other network nodes. The computer system 20 may include one or more network interfaces 51 or network adapters for communicating with the remote computers 49 via one or more networks such as a local-area computer network (LAN) 50, a wide-area computer network (WAN), an intranet, and the Internet. Examples of the network interface 51 may include an Ethernet interface, a Frame Relay interface, SONET interface, and wireless interfaces.
Aspects of the present disclosure may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.
The computer readable storage medium can be a tangible device that can retain and store program code in the form of instructions or data structures that can be accessed by a processor of a computing device, such as the computing system 20. The computer readable storage medium may be an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. By way of example, such computer-readable storage medium can comprise a random access memory (RAM), a read-only memory (ROM), EEPROM, a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), flash memory, a hard disk, a portable computer diskette, a memory stick, a floppy disk, or even a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon. As used herein, a computer readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or transmission media, or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network interface in each computing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing device.
Computer readable program instructions for carrying out operations of the present disclosure may be assembly instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language, and conventional procedural programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a LAN or WAN, or the connection may be made to an external computer (for example, through the Internet). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
In various aspects, the systems and methods described in the present disclosure can be addressed in terms of modules. The term “module” as used herein refers to a real-world device, component, or arrangement of components implemented using hardware, such as by an application specific integrated circuit (ASIC) or FPGA, for example, or as a combination of hardware and software, such as by a microprocessor system and a set of instructions to implement the module's functionality, which (while being executed) transform the microprocessor system into a special-purpose device. A module may also be implemented as a combination of the two, with certain functions facilitated by hardware alone, and other functions facilitated by a combination of hardware and software. In certain implementations, at least a portion, and in some cases, all, of a module may be executed on the processor of a computer system. Accordingly, each module may be realized in a variety of suitable configurations, and should not be limited to any particular implementation exemplified herein.
In the interest of clarity, not all of the routine features of the aspects are disclosed herein. It would be appreciated that in the development of any actual implementation of the present disclosure, numerous implementation-specific decisions must be made in order to achieve the developer's specific goals, and these specific goals will vary for different implementations and different developers. It is understood that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of engineering for those of ordinary skill in the art, having the benefit of this disclosure.
Furthermore, it is to be understood that the phraseology or terminology used herein is for the purpose of description and not of restriction, such that the terminology or phraseology of the present specification is to be interpreted by the skilled in the art in light of the teachings and guidance presented herein, in combination with the knowledge of those skilled in the relevant art(s). Moreover, it is not intended for any term in the specification or claims to be ascribed an uncommon or special meaning unless explicitly set forth as such.