U.S. patent application number 14/573593 was filed with the patent office on 2016-06-23 for method and system for gaming revenue.
The applicant listed for this patent is William Webb. Invention is credited to William Webb.
Application Number | 20160180645 14/573593 |
Document ID | / |
Family ID | 56118309 |
Filed Date | 2016-06-23 |
United States Patent
Application |
20160180645 |
Kind Code |
A1 |
Webb; William |
June 23, 2016 |
METHOD AND SYSTEM FOR GAMING REVENUE
Abstract
A method and system comprises integrating a contest framework
into a game. The contest framework at least comprises means for
communicating with a transactional server, a plurality of listeners
being configured to monitor interactions during a play of the game
for communication to the transactional server, and means for
displaying notifications from the transactional server. The
transactional server is at least configured for processing received
interactions in conjunction with a progressive jackpot contest
associated with the game and communicating notifications regarding
the processing to the contest framework. A communicating with the
transactional server at least comprises associating the game with a
progressive jackpot contest and setting parameters for the
progressive jackpot contest.
Inventors: |
Webb; William; (Houston,
TX) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Webb; William |
Houston |
TX |
US |
|
|
Family ID: |
56118309 |
Appl. No.: |
14/573593 |
Filed: |
December 17, 2014 |
Current U.S.
Class: |
463/27 |
Current CPC
Class: |
G07F 17/323 20130101;
G07F 17/3258 20130101 |
International
Class: |
G07F 17/32 20060101
G07F017/32 |
Claims
1. A method comprising the steps of: integrating a
software-development kit (SDK) for implementing a contest framework
into a first mobile game, the first mobile game for execution on a
mobile device, said SDK at least comprising (i) means for
communicating with a transactional server, (ii) a plurality of
listeners being configured to monitor interactions during a play of
said first mobile game for direct communication to said
transactional server, the plurality of listeners comprising a
collection of nested interfaces embedded within the SDK configured
to monitor the interactions associated with the first mobile game
and communicate information associated with the monitored
interactions to the transactional server, and (iii) means for
displaying notifications from said transactional server, wherein
said transactional server is configured to: manage a plurality of
progressive jackpot contests associated with a plurality of
different mobile games, each particular mobile game associated with
a unique application programming interface (API) key corresponding
to at least one particular progressive jackpot contest associated
with the particular mobile game, each particular progressive
jackpot contest associated with a defined contest time period
during which the transactional server is configured to receive a
non-limited number of contest attempts from a non-limited number of
players for the particular progressive jackpot contest, wherein
each particular progressive jackpot contest is completed at the end
of the defined contest time period associated with the particular
progressive jackpot contest; process received interactions from the
plurality of listeners in conjunction with at least one progressive
jackpot contest associated with said first mobile game; communicate
notifications regarding said processing to said SDK; and
automatically update results associated with the particular
progressive jackpot contest in response to receiving the
information on the monitored interactions; and communicating with
said transactional server via a web dashboard, the communication
including the unique API key associated with said first mobile
game, said communication associating said first mobile game with a
particular progressive jackpot contest of the plurality of
progressive jackpot contests based on the unique API key, the
communication providing parameters for the particular progressive
jackpot contest associated with said first mobile game.
2. The method as recited in claim 1, in which said interactions at
least comprises attempts at playing said first mobile game and
results of playing said first mobile game.
3. The method as recited in claim 2, in which said parameters at
least comprises an amount of fee for attempting play of said first
mobile game, an allocation of fees, and a duration of said
progressive jackpot contest.
4. The method as recited in claim 3, in which said transactional
server is further configured for ranking results of attempts made
for said first mobile game, escrowing fees for attempts at playing
said first mobile game, and allocating revenue for each attempt at
playing said first mobile game.
5. The method as recited in claim 4, in which said notifications at
least comprises a status regarding said progressive jackpot
contest, a status of escrowed fees, and a result of said
ranking.
6. The method as recited in claim 5, in which said notifications at
least enables deposits for escrowing.
7. The method as recited in claim 6, in which said SDK further
comprises means for determining a location of said play of said
first mobile game.
8. The method as recited in claim 1, in which said communicating
with said transactional server further comprises obtaining the API
key.
9. (canceled)
10. A system comprising: a software-development kit (SDK) for
implementing a contest framework executed by at least one hardware
processor, the SDK being configured for integrating into a first
mobile game, said SDK at least comprising a plurality of listeners
being configured to monitor interactions during a play of said
first mobile game and means for displaying notifications, the
plurality of listeners comprising a collection of nested interfaces
embedded within the SDK configured to monitor the interactions
associated with the first mobile game and communicate information
associated with the monitored interactions directly to a
transactional server, said first mobile game with said integrated
SDK being configured for operation on one or more mobile computing
devices; a transactional server configured to: communicate with
said SDK; manage a plurality of progressive jackpot contests
associated with a plurality of different mobile games, each mobile
game associated with a unique application programming interface
(API) key associated with at least one particular progressive
jackpot contest associated with the mobile game, each particular
progressive jackpot contest associated with a defined contest time
period during which the transactional server is configured to
receive a non-limited number of contest attempts from a non-limited
number of players for the particular progressive jackpot contest,
wherein each particular progressive jackpot contest is completed at
the end of the defined contest time period associated with the
particular progressive jackpot contest; process received
interactions from the plurality of listeners in conjunction with at
least one progressive jackpot contest associated with said first
mobile game with said integrated SDK; communicate notifications
regarding said processing to said SDK; and automatically update
results associated with the particular progressive jackpot contest
in response to receiving the information on the monitored
interactions; and a web dashboard, executed by a hardware
processor, being configured for communicating with said
transactional server, the communication including the unique API
key corresponding with said first mobile game, said web dashboard
being configured for at least associating said first mobile game
with a particular progressive jackpot contest of the plurality of
the progressive jackpot contests based on the unique API key
associated with said first mobile game and providing parameters for
the particular progressive jackpot contest associated with said
first mobile game.
11. The system as recited in claim 10, further comprising a gaming
server from which the one or more computing devices loads said game
with said integrated SDK.
12. The system as recited in claim 11, in which said interactions
at least comprises attempts at playing said first mobile game with
said integrated SDK and results of playing said first mobile game
with said integrated SDK.
13. The system as recited in claim 12, in which said parameters at
least comprises an amount of fee for attempting play of said first
mobile game with said integrated SDK, an allocation of fees, and a
duration of said contest.
14. The system as recited in claim 13, in which said transactional
server is further configured for ranking results of attempts made
for said first mobile game with said integrated SDK, escrowing fees
for attempts at playing said first mobile game with said integrated
SDK, and allocating revenue for each attempt at playing said first
mobile game with said integrated SDK.
15. The system as recited in claim 14, in which said notifications
at least comprises a status regarding said contest, a status of
escrowed fees, and a result of said ranking.
16. The system as recited in claim 15, in which said notifications
at least enables deposits for escrowing.
17. The system as recited in claim 16, in which said SDK further
comprises means for determining a location of said play of said
game.
18. The system as recited in claim 10, in which the API key is
obtained via said web dashboard.
19-20. (canceled)
21. A method comprising: integrating a software-development kit
(SDK) for implementing a contest framework into a first mobile
game, the first mobile game for execution on a mobile device, said
SDK configured to communicate with a transactional server, the SDK
comprising a plurality of listeners being configured to monitor
interactions during a play of said first mobile game for direct
communication to said transactional server, the plurality of
listeners comprising a collection of nested interfaces embedded
within the SDK configured to monitor the interactions associated
with the first mobile game and communicate information associated
with the monitored interactions to the transactional server,
wherein the transactional server is configured to manage a
plurality of progressive jackpot contests associated with a
plurality of different mobile games, each particular mobile game
associated with a unique application programming interface (API)
key corresponding to at least one particular progressive jackpot
contest associated with the particular mobile game, each particular
progressive jackpot contest associated with a defined contest time
period during which the transactional server is configured to
receive a non-limited number of contest attempts from a non-limited
number of players for the particular progressive jackpot contest,
wherein each particular progressive jackpot contest is completed at
the end of the defined contest time period associated with the
particular progressive jackpot contest, the SDK further configured
to display notifications from said transactional server, wherein
said transactional server is configured to: process received
interactions from the plurality of listeners in conjunction with at
least one progressive jackpot contest associated with said first
mobile game; communicate notifications regarding said processing to
said SDK, and automatically update results associated with the
particular progressive jackpot contest in response to receiving the
information on the monitored interactions; and communicating with
said transactional server via a web dashboard, the communication
including the unique API key associated with said first mobile
game, said communication associating said first mobile game with a
particular progressive jackpot contest of the plurality of
progressive jackpot contests based on the unique API key, the
communication providing parameters for the particular progressive
jackpot contest associated with said first mobile game.
22. The method as recited in claim 21, in which said interactions
at least comprises attempts at playing said first mobile game and
results of playing said first mobile game.
23. The method as recited in claim 22, in which said parameters at
least comprises an amount of fee for attempting play of said first
mobile game, an allocation of fees, and a duration of said
progressive jackpot contest.
24. The method as recited in claim 23, in which said transactional
server is further configured for ranking results of attempts made
for said first mobile game, escrowing fees for attempts at playing
said first mobile game, and allocating revenue for each attempt at
playing said first mobile game.
25. The method as recited in claim 24, in which said notifications
at least comprises a status regarding said progressive jackpot
contest, a status of escrowed fees, and a result of said
ranking.
26. The method as recited in claim 25, in which said notifications
at least enables deposits for escrowing.
27. The method as recited in claim 26, in which said SDK is further
configured to determine a location of said play of said first
mobile game.
28. The method as recited in claim 21, in which said communicating
with said transactional server further comprises obtaining the API
key.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] Not applicable.
RELATED CO-PENDING U.S. PATENT APPLICATIONS
[0002] Not applicable.
FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
[0003] Not applicable.
REFERENCE TO SEQUENCE LISTING, A TABLE, OR A COMPUTER LISTING
APPENDIX
[0004] Not applicable.
COPYRIGHT NOTICE
[0005] A portion of the disclosure of this patent document contains
material that is subject to copyright protection. The copyright
owner has no objection to the facsimile reproduction by anyone of
the patent document or patent disclosure as it appears in the
Patent and Trademark Office, patent file or records, but otherwise
reserves all copyright rights whatsoever.
FIELD OF THE INVENTION
[0006] One or more embodiments of the invention generally relate to
a mobile-gaming platform. More particularly, the invention relates
to an application interface (API) and software-development kit
(SDK) that allows third-party developers to generate gaming revenue
for their online and mobile games.
BACKGROUND OF THE INVENTION
[0007] The following background information may present examples of
specific aspects of the prior art (e.g., without limitation,
approaches, facts, or common wisdom) that, while expected to be
helpful to further educate the reader, are not to be construed as
limiting the present invention, or any embodiments thereof, to
anything stated or implied therein or inferred thereupon.
[0008] In the $24 billion mobile-gaming industry, a majority of
in-application (in-app) revenue is generated from purchases of
virtual currencies and goods; mobile players spend tens of billions
of dollars each year for the challenge to accumulate the most
virtual items, which hold zero value outside of the games that they
play, and to add their names at the top of the leader boards. At
best, this tendency is a testament to "game stickiness", which
arises from any factor that encourages a player to stay longer and
to return. However, to remain relevant in the gaming industry,
third-party developers must not only promote the mirage of value
associated with virtual incentives, they must also continuously
update their games as well as try to retain users while monetizing
their games at the same time. In view of the foregoing, it is clear
that this approach is not perfect and leaves room for more optimal
approaches.
[0009] The following is an example of a specific aspect in the
prior art that, while expected to be helpful to further educate the
reader as to additional aspects of the prior art, is not to be
construed as limiting the present invention, or any embodiments
thereof, to anything stated or implied therein or inferred
thereupon. One such aspect of the prior art is believed to show a
methods and systems for interfacing with a third-party application.
Although it appears that the systems and methods disclosed are
directed primarily to gaming machines and systems, some of the
apparatuses, systems and methods disclosed might be adaptable for
use in other types of devices, systems or environments, as
applicable, such that their use is not restricted exclusively to
gaming machines and contexts. At least one display device may be a
mobile display device, such as a PDA or tablet PC that enables play
of at least a portion of the primary or secondary game at a
location remote from the gaming machine. For example, it is
believed that the remote host or another host may provide a
progressive game with a progressive jackpot to a group of gaming
machines and that the gaming machine to which the remote host is
sending content may be operable to play the progressive game but
may not be currently participating in the progressive game at a
particular time and thus not contributing to the jackpot, which in
this example is one indicator of the group state of the gaming
machine in the group. It is believed that when the progressive
jackpot reaches a certain level or a game participant/player
completes a certain task or a user creates qualifying notification
settings, the remote host may send information to the gaming
machine to indicate that the jackpot has reached a certain
threshold to entice a player on the gaming machine to join the
progressive game. Thus, it appears that the remote host may
dynamically adjust content sent to the gaming machine based upon a
group state for a group of gaming machines that the gaming machine
is currently not affecting. Additionally, in other embodiments, it
is believed that the request sent by third-party device may include
a request to obtain a SDK from server-based system. It appears that
in these embodiments, the SDK is used by third-party user to
develop the content approval application or the graphical element
creation application. Moreover, it is believed that in other
embodiments, the SDK is used by third-party user to develop content
that is displayed on gaming display device where the SDK includes
the graphical element creation application.
[0010] By way of educational background, another aspect of the
prior art generally useful to be aware of is that of what appears
to be a gaming reality system and a mobile device that features the
application of providing the player with many opportunities to win
awards, such as cash or prizes to maintain a player's interest in a
gaming machine. The application also appears to teach of using
progressive jackpots for more experienced players, which may cause
strategy to vary depending upon the current progressive amount. The
application appears to make calls to the augmented reality
technology SDK to determine if a tag is present in the current live
camera image, and if so, the SDK returns the position of the tag
relative to the user in 3D space. Additionally, the SDK appears
compatible with Unity plugin, an Android or Apple smartphone/tablet
with a rear-facing camera and ARM processor, and a video gaming
machine with LCD or other flat screen displays.
[0011] As a point of educational reference, such approaches may not
provide a progressive jackpot rewards system where gamers are allow
to make as many attempts as they wish (no cap) at attaining the
high score of a contest given that they have sufficient funds in
their account and the contest time has not expired. Additionally,
such approaches may not provide a dynamic rewards structure that
may be manipulated by, for example, a web-based dashboard to
perform varies functions such as create contests, implement
different payout structures, adjust contest parameters, and send
content, messages, and notifications to players. Furthermore, such
approaches may not provide a social element that allows players to
share contests and statuses, such as jackpot amounts, with
others.
[0012] In view of the foregoing, it is clear that these traditional
techniques are not perfect and leave room for more optimal
approaches.
BRIEF DESCRIPTION OF THE DRAWINGS
[0013] The present invention is illustrated by way of example, and
not by way of limitation, in the figures of the accompanying
drawings and in which like reference numerals refer to similar
elements and in which:
[0014] FIG. 1 illustrates a software-development kit (SDK) and
application interface (API) that can be integrated into third-party
games, in accordance with an embodiment of the present
invention;
[0015] FIG. 2 illustrates a system architecture, in accordance with
an embodiment of the present invention;
[0016] FIG. 3 is a flowchart of an exemplary method 300 for
integrating the SDK, in accordance with an embodiment of the
present invention;
[0017] FIG. 4 illustrates a player using deposited funds to pay an
attempt fee architecture, in accordance with an embodiment of the
present invention;
[0018] FIG. 5 illustrates the fee-splitting architecture, in
accordance with an embodiment of the present invention;
[0019] FIG. 6 is a flowchart of an exemplary method 600 for
reporting scores, in accordance with an embodiment of the present
invention;
[0020] FIG. 7 illustrates a contest lobby, in accordance with an
embodiment of the present invention;
[0021] FIG. 8 illustrates the details screen of a contest lobby, in
accordance with an embodiment of the present invention;
[0022] FIG. 9 illustrates a general notification, in accordance
with an embodiment of the present invention.
[0023] FIG. 10 illustrates an exemplary method 1000 for sending
notifications to players, in accordance with an embodiment of the
present invention;
[0024] FIG. 11 illustrates an in-game notification registration
prompt, in accordance with an embodiment of the present
invention;
[0025] FIG. 12 is a flowchart of an exemplary method 1200 for
player registration, in accordance with an embodiment of the
present invention;
[0026] FIG. 13 illustrates an in-game notification deposit prompt,
in accordance with an embodiment of the present invention;
[0027] FIG. 14 is a flowchart of an exemplary method 1400 for the
player deposit, in accordance with an embodiment of the present
invention;
[0028] FIG. 15 illustrates a post-attempt notification display, in
accordance with an embodiment of the present invention;
[0029] FIG. 16 illustrates an expanded contest detail and leader
board notification display, in accordance with an embodiment of the
present invention;
[0030] FIG. 17 is a flowchart of an exemplary method 1700 for the
third-party developer account creation, in accordance with an
embodiment of the present invention;
[0031] FIG. 18 is a flowchart of an exemplary method 1800 for the
third-party developer creating a contest, in accordance with an
embodiment of the present invention;
[0032] FIG. 19 is a flowchart of an exemplary method 1900 for the
platform synchronization, in accordance with an embodiment of the
present invention;
[0033] FIG. 20 is a flowchart of an exemplary method 2000 for the
player participation contest, in accordance with an embodiment of
the present invention;
[0034] FIG. 21 is a block diagram of an exemplary client/server
system 2100 which may be used by an exemplary web-enabled/networked
embodiment of the present invention; and
[0035] FIG. 22 is a block diagram depicting a conventional
client/server communication system.
[0036] Unless otherwise indicated illustrations in the figures are
not necessarily drawn to scale.
DETAILED DESCRIPTION OF SOME EMBODIMENTS
[0037] The present invention is best understood by reference to the
detailed figures and description set forth herein.
[0038] Embodiments of the invention are discussed below with
reference to the Figures. However, those skilled in the art will
readily appreciate that the detailed description given herein with
respect to these figures is for explanatory purposes as the
invention extends beyond these limited embodiments. For example, it
should be appreciated that those skilled in the art will, in light
of the teachings of the present invention, recognize a multiplicity
of alternate and suitable approaches, depending upon the needs of
the particular application, to implement the functionality of any
given detail described herein, beyond the particular implementation
choices in the following embodiments described and shown. That is,
there are numerous modifications and variations of the invention
that are too numerous to be listed but that all fit within the
scope of the invention. Also, singular words should be read as
plural and vice versa and masculine as feminine and vice versa,
where appropriate, and alternative embodiments do not necessarily
imply that the two are mutually exclusive.
[0039] It is to be further understood that the present invention is
not limited to the particular methodology, compounds, materials,
manufacturing techniques, uses, and applications, described herein,
as these may vary. It is also to be understood that the terminology
used herein is used for the purpose of describing particular
embodiments only, and is not intended to limit the scope of the
present invention. It must be noted that as used herein and in the
appended claims, the singular forms "a," "an," and "the" include
the plural reference unless the context clearly dictates otherwise.
Thus, for example, a reference to "an element" is a reference to
one or more elements and includes equivalents thereof known to
those skilled in the art. Similarly, for another example, a
reference to "a step" or "a means" is a reference to one or more
steps or means and may include sub-steps and subservient means. All
conjunctions used are to be understood in the most inclusive sense
possible. Thus, the word "or" should be understood as having the
definition of a logical "or" rather than that of a logical
"exclusive or" unless the context clearly necessitates otherwise.
Structures described herein are to be understood also to refer to
functional equivalents of such structures. Language that may be
construed to express approximation should be so understood unless
the context clearly dictates otherwise.
[0040] Unless defined otherwise, all technical and scientific terms
used herein have the same meanings as commonly understood by one of
ordinary skill in the art to which this invention belongs.
Preferred methods, techniques, devices, and materials are
described, although any methods, techniques, devices, or materials
similar or equivalent to those described herein may be used in the
practice or testing of the present invention. Structures described
herein are to be understood also to refer to functional equivalents
of such structures. The present invention will now be described in
detail with reference to embodiments thereof as illustrated in the
accompanying drawings.
[0041] From reading the present disclosure, other variations and
modifications will be apparent to persons skilled in the art. Such
variations and modifications may involve equivalent and other
features which are already known in the art, and which may be used
instead of or in addition to features already described herein.
[0042] Although Claims have been formulated in this Application to
particular combinations of features, it should be understood that
the scope of the disclosure of the present invention also includes
any novel feature or any novel combination of features disclosed
herein either explicitly or implicitly or any generalization
thereof, whether or not it relates to the same invention as
presently claimed in any Claim and whether or not it mitigates any
or all of the same technical problems as does the present
invention.
[0043] Features which are described in the context of separate
embodiments may also be provided in combination in a single
embodiment. Conversely, various features which are, for brevity,
described in the context of a single embodiment, may also be
provided separately or in any suitable subcombination. The
Applicants hereby give notice that new Claims may be formulated to
such features and/or combinations of such features during the
prosecution of the present Application or of any further
Application derived therefrom.
[0044] References to "one embodiment," "an embodiment," "example
embodiment," "various embodiments," etc., may indicate that the
embodiment(s) of the invention so described may include a
particular feature, structure, or characteristic, but not every
embodiment necessarily includes the particular feature, structure,
or characteristic. Further, repeated use of the phrase "in one
embodiment," or "in an exemplary embodiment," do not necessarily
refer to the same embodiment, although they may.
[0045] Headings provided herein are for convenience and are not to
be taken as limiting the disclosure in any way.
[0046] The enumerated listing of items does not imply that any or
all of the items are mutually exclusive, unless expressly specified
otherwise.
[0047] The terms "a", "an" and "the" mean "one or more", unless
expressly specified otherwise.
[0048] Devices or system modules that are in at least general
communication with each other need not be in continuous
communication with each other, unless expressly specified
otherwise. In addition, devices or system modules that are in at
least general communication with each other may communicate
directly or indirectly through one or more intermediaries.
[0049] A description of an embodiment with several components in
communication with each other does not imply that all such
components are required. On the contrary a variety of optional
components are described to illustrate the wide variety of possible
embodiments of the present invention.
[0050] As is well known to those skilled in the art many careful
considerations and compromises typically must be made when
designing for the optimal manufacture of a commercial
implementation any system, and in particular, the embodiments of
the present invention. A commercial implementation in accordance
with the spirit and teachings of the present invention may
configured according to the needs of the particular application,
whereby any aspect(s), feature(s), function(s), result(s),
component(s), approach(es), or step(s) of the teachings related to
any described embodiment of the present invention may be suitably
omitted, included, adapted, mixed and matched, or improved and/or
optimized by those skilled in the art, using their average skills
and known techniques, to achieve the desired implementation that
addresses the needs of the particular application.
[0051] A "computer" may refer to one or more apparatus and/or one
or more systems that are capable of accepting a structured input,
processing the structured input according to prescribed rules, and
producing results of the processing as output. Examples of a
computer may include: a computer; a stationary and/or portable
computer; a computer having a single processor, multiple
processors, or multi-core processors, which may operate in parallel
and/or not in parallel; a general purpose computer; a
supercomputer; a mainframe; a super mini-computer; a mini-computer;
a workstation; a micro-computer; a server; a client; an interactive
television; a web appliance; a telecommunications device with
internet access; a hybrid combination of a computer and an
interactive television; a portable computer; a tablet personal
computer (PC); a personal digital assistant (PDA); a portable
telephone; application-specific hardware to emulate a computer
and/or software, such as, for example, a digital signal processor
(DSP), a field-programmable gate array (FPGA), an application
specific integrated circuit (ASIC), an application specific
instruction-set processor (ASIP), a chip, chips, a system on a
chip, or a chip set; a data acquisition device; an optical
computer; a quantum computer; a biological computer; and generally,
an apparatus that may accept data, process data according to one or
more stored software programs, generate results, and typically
include input, output, storage, arithmetic, logic, and control
units.
[0052] Those of skill in the art will appreciate that where
appropriate, some embodiments of the disclosure may be practiced in
network computing environments with many types of computer system
configurations, including personal computers, hand-held devices,
multi-processor systems, microprocessor-based or programmable
consumer electronics, network PCs, minicomputers, mainframe
computers, and the like. Where appropriate, embodiments may also be
practiced in distributed computing environments where tasks are
performed by local and remote processing devices that are linked
(either by hardwired links, wireless links, or by a combination
thereof) through a communications network. In a distributed
computing environment, program modules may be located in both local
and remote memory storage devices.
[0053] "Software" may refer to prescribed rules to operate a
computer. Examples of software may include: code segments in one or
more computer-readable languages; graphical and or/textual
instructions; applets; pre-compiled code; interpreted code;
compiled code; and computer programs.
[0054] The example embodiments described herein can be implemented
in an operating environment comprising computer-executable
instructions (e.g., software) installed on a computer, in hardware,
or in a combination of software and hardware. The
computer-executable instructions can be written in a computer
programming language or can be embodied in firmware logic. If
written in a programming language conforming to a recognized
standard, such instructions can be executed on a variety of
hardware platforms and for interfaces to a variety of operating
systems. Although not limited thereto, computer software program
code for carrying out operations for aspects of the present
invention can be written in any combination of one or more suitable
programming languages, including an object oriented programming
languages and/or conventional procedural programming languages,
and/or programming languages such as, for example, Hyper text
Markup Language (HTML), Dynamic HTML, Extensible Markup Language
(XML), Extensible Stylesheet Language (XSL), Document Style
Semantics and Specification Language (DSSSL), Cascading Style
Sheets (CSS), Synchronized Multimedia Integration Language (SMIL),
Wireless Markup Language (WML), Java.TM., Jini.TM., C, C++,
Smalltalk, Perl, UNIX Shell, Visual Basic or Visual Basic Script,
Virtual Reality Markup Language (VRML), ColdFusion.TM. or other
compilers, assemblers, interpreters or other computer languages or
platforms.
[0055] Computer program code for carrying out operations for
aspects of the present invention may be written in any combination
of one or more programming languages, including an object oriented
programming language such as Java, Smalltalk, C++ or the like and
conventional procedural programming languages, such as the "C"
programming language or similar programming languages. The program
code 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 local area network (LAN) or a wide area
network (WAN), or the connection may be made to an external
computer (for example, through the Internet using an Internet
Service Provider).
[0056] A network is a collection of links and nodes (e.g., multiple
computers and/or other devices connected together) arranged so that
information may be passed from one part of the network to another
over multiple links and through various nodes. Examples of networks
include the Internet, the public switched telephone network, the
global Telex network, computer networks (e.g., an intranet, an
extranet, a local-area network, or a wide-area network), wired
networks, and wireless networks.
[0057] The Internet is a worldwide network of computers and
computer networks arranged to allow the easy and robust exchange of
information between computer users. Hundreds of millions of people
around the world have access to computers connected to the Internet
via Internet Service Providers (ISPs). Content providers (e.g.,
website owners or operators) place multimedia information (e.g.,
text, graphics, audio, video, animation, and other forms of data)
at specific locations on the Internet referred to as webpages.
Websites comprise a collection of connected, or otherwise related,
webpages. The combination of all the websites and their
corresponding webpages on the Internet is generally known as the
World Wide Web (WWW) or simply the Web.
[0058] Aspects of the present invention are described below with
reference to flowchart illustrations and/or block diagrams of
methods, apparatus (systems) and computer program products
according to embodiments of the invention. It will be understood
that each block of the flowchart illustrations and/or block
diagrams, and combinations of blocks in the flowchart illustrations
and/or block diagrams, can be implemented by computer program
instructions. These computer program instructions may be provided
to a processor of a general purpose computer, special purpose
computer, or other programmable data processing apparatus to
produce a machine, such that the instructions, which execute via
the processor of the computer or other programmable data processing
apparatus, create means for implementing the functions/acts
specified in the flowchart and/or block diagram block or
blocks.
[0059] The flowchart and block diagrams in the figures illustrate
the architecture, functionality, and operation of possible
implementations of systems, methods and computer program products
according to various embodiments. In this regard, each block in the
flowchart or block diagrams may represent a module, segment, or
portion of code, which comprises one or more executable
instructions for implementing the specified logical function(s). It
should also be noted that, in some alternative implementations, the
functions noted in the block may occur out of the order noted in
the figures. For example, two blocks shown in succession may, in
fact, be executed substantially concurrently, or the blocks may
sometimes be executed in the reverse order, depending upon the
functionality involved. It will also be noted that each block of
the block diagrams and/or flowchart illustration, and combinations
of blocks in the block diagrams and/or flowchart illustration, can
be implemented by special purpose hardware-based systems that
perform the specified functions or acts, or combinations of special
purpose hardware and computer instructions.
[0060] These computer program instructions may also be stored in a
computer readable medium that can direct a computer, other
programmable data processing apparatus, or other devices to
function in a particular manner, such that the instructions stored
in the computer readable medium produce an article of manufacture
including instructions which implement the function/act specified
in the flowchart and/or block diagram block or blocks.
[0061] Further, although process steps, method steps, algorithms or
the like may be described in a sequential order, such processes,
methods and algorithms may be configured to work in alternate
orders. In other words, any sequence or order of steps that may be
described does not necessarily indicate a requirement that the
steps be performed in that order. The steps of processes described
herein may be performed in any order practical. Further, some steps
may be performed simultaneously.
[0062] It will be readily apparent that the various methods and
algorithms described herein may be implemented by, e.g.,
appropriately programmed general purpose computers and computing
devices. Typically a processor (e.g., a microprocessor) will
receive instructions from a memory or like device, and execute
those instructions, thereby performing a process defined by those
instructions. Further, programs that implement such methods and
algorithms may be stored and transmitted using a variety of known
media.
[0063] When a single device or article is described herein, it will
be readily apparent that more than one device/article (whether or
not they cooperate) may be used in place of a single
device/article. Similarly, where more than one device or article is
described herein (whether or not they cooperate), it will be
readily apparent that a single device/article may be used in place
of the more than one device or article.
[0064] The functionality and/or the features of a device may be
alternatively embodied by one or more other devices which are not
explicitly described as having such functionality/features. Thus,
other embodiments of the present invention need not include the
device itself.
[0065] The term "computer-readable medium" as used herein refers to
any medium that participates in providing data (e.g., instructions)
which may be read by a computer, a processor or a like device. Such
a medium may take many forms, including but not limited to,
non-volatile media, volatile media, and transmission media.
Non-volatile media include, for example, optical or magnetic disks
and other persistent memory. Volatile media include dynamic random
access memory (DRAM), which typically constitutes the main memory.
Transmission media include coaxial cables, copper wire and fiber
optics, including the wires that comprise a system bus coupled to
the processor. Transmission media may include or convey acoustic
waves, light waves and electromagnetic emissions, such as those
generated during radio frequency (RF) and infrared (IR) data
communications. Common forms of computer-readable media include,
for example, a floppy disk, a flexible disk, hard disk, magnetic
tape, any other magnetic medium, a CD-ROM, DVD, any other optical
medium, punch cards, paper tape, any other physical medium with
patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any
other memory chip or cartridge, a carrier wave as described
hereinafter, or any other medium from which a computer can
read.
[0066] Various forms of computer readable media may be involved in
carrying sequences of instructions to a processor. For example,
sequences of instruction (i) may be delivered from RAM to a
processor, (ii) may be carried over a wireless transmission medium,
and/or (iii) may be formatted according to numerous formats,
standards or protocols, such as Bluetooth, TDMA, CDMA, 3G.
[0067] Where databases are described, it will be understood by one
of ordinary skill in the art that (i) alternative database
structures to those described may be readily employed, (ii) other
memory structures besides databases may be readily employed. Any
schematic illustrations and accompanying descriptions of any sample
databases presented herein are exemplary arrangements for stored
representations of information. Any number of other arrangements
may be employed besides those suggested by the tables shown.
Similarly, any illustrated entries of the databases represent
exemplary information only; those skilled in the art will
understand that the number and content of the entries can be
different from those illustrated herein. Further, despite any
depiction of the databases as tables, an object-based model could
be used to store and manipulate the data types of the present
invention and likewise, object methods or behaviors can be used to
implement the processes of the present invention.
[0068] A "computer system" may refer to a system having one or more
computers, where each computer may include a computer-readable
medium embodying software to operate the computer or one or more of
its components. Examples of a computer system may include: a
distributed computer system for processing information via computer
systems linked by a network; two or more computer systems connected
together via a network for transmitting and/or receiving
information between the computer systems; a computer system
including two or more processors within a single computer; and one
or more apparatuses and/or one or more systems that may accept
data, may process data in accordance with one or more stored
software programs, may generate results, and typically may include
input, output, storage, arithmetic, logic, and control units.
[0069] A "network" may refer to a number of computers and
associated devices that may be connected by communication
facilities. A network may involve permanent connections such as
cables or temporary connections such as those made through
telephone or other communication links. A network may further
include hard-wired connections (e.g., coaxial cable, twisted pair,
optical fiber, waveguides, etc.) and/or wireless connections (e.g.,
radio frequency waveforms, free-space optical waveforms, acoustic
waveforms, etc.). Examples of a network may include: an internet,
such as the Internet; an intranet; a local area network (LAN); a
wide area network (WAN); and a combination of networks, such as an
internet and an intranet.
[0070] As used herein, the "client-side" application should be
broadly construed to refer to an application, a page associated
with that application, or some other resource or function invoked
by a client-side request to the application. A "browser" as used
herein is not intended to refer to any specific browser (e.g.,
Internet Explorer, Safari, FireFox, or the like), but should be
broadly construed to refer to any client-side rendering engine that
can access and display Internet-accessible resources. A "rich"
client typically refers to a non-HTTP based client-side
application, such as an SSH or CFIS client. Further, while
typically the client-server interactions occur using HTTP, this is
not a limitation either. The client server interaction may be
formatted to conform to the Simple Object Access Protocol (SOAP)
and travel over HTTP (over the public Internet), FTP, or any other
reliable transport mechanism (such as IBM.RTM. MQSeries.RTM.
technologies and CORBA, for transport over an enterprise intranet)
may be used. Any application or functionality described herein may
be implemented as native code, by providing hooks into another
application, by facilitating use of the mechanism as a plug-in, by
linking to the mechanism, and the like.
[0071] Exemplary networks may operate with any of a number of
protocols, such as Internet protocol (IP), asynchronous transfer
mode (ATM), and/or synchronous optical network (SONET), user
datagram protocol (UDP), IEEE 802.x, etc.
[0072] Embodiments of the present invention may include apparatuses
for performing the operations disclosed herein. An apparatus may be
specially constructed for the desired purposes, or it may comprise
a general-purpose device selectively activated or reconfigured by a
program stored in the device.
[0073] Embodiments of the invention may also be implemented in one
or a combination of hardware, firmware, and software. They may be
implemented as instructions stored on a machine-readable medium,
which may be read and executed by a computing platform to perform
the operations described herein.
[0074] More specifically, as will be appreciated by one skilled in
the art, aspects of the present invention may be embodied as a
system, method or computer program product. Accordingly, aspects of
the present invention may take the form of an entirely hardware
embodiment, an entirely software embodiment (including firmware,
resident software, micro-code, etc.) or an embodiment combining
software and hardware aspects that may all generally be referred to
herein as a "circuit," "module" or "system." Furthermore, aspects
of the present invention may take the form of a computer program
product embodied in one or more computer readable medium(s) having
computer readable program code embodied thereon.
[0075] In the following description and claims, the terms "computer
program medium" and "computer readable medium" may be used to
generally refer to media such as, but not limited to, removable
storage drives, a hard disk installed in hard disk drive, and the
like. These computer program products may provide software to a
computer system. Embodiments of the invention may be directed to
such computer program products.
[0076] An algorithm is here, and generally, considered to be a
self-consistent sequence of acts or operations leading to a desired
result. These include physical manipulations of physical
quantities. Usually, though not necessarily, these quantities take
the form of electrical or magnetic signals capable of being stored,
transferred, combined, compared, and otherwise manipulated. It has
proven convenient at times, principally for reasons of common
usage, to refer to these signals as bits, values, elements,
symbols, characters, terms, numbers or the like. It should be
understood, however, that all of these and similar terms are to be
associated with the appropriate physical quantities and are merely
convenient labels applied to these quantities.
[0077] Unless specifically stated otherwise, and as may be apparent
from the following description and claims, it should be appreciated
that throughout the specification descriptions utilizing terms such
as "processing," "computing," "calculating," "determining," or the
like, refer to the action and/or processes of a computer or
computing system, or similar electronic computing device, that
manipulate and/or transform data represented as physical, such as
electronic, quantities within the computing system's registers
and/or memories into other data similarly represented as physical
quantities within the computing system's memories, registers or
other such information storage, transmission or display
devices.
[0078] In a similar manner, the term "processor" may refer to any
device or portion of a device that processes electronic data from
registers and/or memory to transform that electronic data into
other electronic data that may be stored in registers and/or
memory. A "computing platform" may comprise one or more
processors.
[0079] Embodiments within the scope of the present disclosure may
also include tangible and/or non-transitory computer-readable
storage media for carrying or having computer-executable
instructions or data structures stored thereon. Such non-transitory
computer-readable storage media can be any available media that can
be accessed by a general purpose or special purpose computer,
including the functional design of any special purpose processor as
discussed above. By way of example, and not limitation, such
non-transitory computer-readable media can include RAM, ROM,
EEPROM, CD-ROM or other optical disk storage, magnetic disk storage
or other magnetic storage devices, or any other medium which can be
used to carry or store desired program code means in the form of
computer-executable instructions, data structures, or processor
chip design. When information is transferred or provided over a
network or another communications connection (either hardwired,
wireless, or combination thereof) to a computer, the computer
properly views the connection as a computer-readable medium. Thus,
any such connection is properly termed a computer-readable medium.
Combinations of the above should also be included within the scope
of the computer-readable media.
[0080] While a non-transitory computer readable medium includes,
but is not limited to, a hard drive, compact disc, flash memory,
volatile memory, random access memory, magnetic memory, optical
memory, semiconductor based memory, phase change memory, optical
memory, periodically refreshed memory, and the like; the
non-transitory computer readable medium, however, does not include
a pure transitory signal per se; i.e., where the medium itself is
transitory.
[0081] Some embodiments of the present invention may provide means
and/or methods for storage, analysis, and/or management of data. In
some of these embodiments, data may be provided by users and/or
received from external software. Many embodiments, and variations
thereof, may provide for a framework for contests.
[0082] FIG. 1 illustrates a software-development kit (SDK) and
application interface (API) that can be integrated into third-party
games, in accordance with an embodiment of the present invention.
In the present embodiment, the SDK 104 is accessed through a
transactional server 110. In some embodiments, the SDK 104 may also
be accessed via a cloud network, a storage device, such as, but not
limited to, a cd, disc or flash drive, or any kind of computer/CPU,
processor or server that is capable of hosting the SDK 104. The SDK
104 may integrate with the third-party gaming platform with mobile,
PC, or console programming, computer code, or script 106. In a
non-limiting example, the integrated SDK 104 allows uninterrupted
game play. In the present embodiment, the third-party programming,
computer code, or script 106 may be accessed by player(s) 102,
contest attempts 108, the SDK 104 and the gaming server 112. In an
alternate embodiment, transactional server 110 may directly access
or host the third-party programming 106 or connect with the gaming
server 112 to retrieve needed data. In a non-limiting example,
player(s) 102 interact through the third party gaming interface 106
but are connected to the SDK 104 behind the scenes. In the present
embodiment, the SDK 104 may have a series of tools called listeners
that may communicate with the third-party programming, computer
code, or script 106 and report results and data involving any
contest attempts 108 made by player(s) 102 to the transactional
server 110. In another embodiment, the third-party gaming server
112 may report results to the SDK 104 or the transactional server
110 when a contest attempt 108 is made. In many embodiments, the
transactional server 110 may take the results from any contest
attempt 108 and use the data to perform functions such as, but not
limited to, rank the contest attempt 108 results in relevant or
associated contest(s) and apply the result to the player's 102
profile and gaming history. In the present embodiment, the SDK 104
and the third-party gaming framework 106 communicate in the backend
to ensure that gaming quality and user experience remains fluid. In
the present embodiment, the SDK 104 may have `listeners` embedded
throughout the software to monitor and report user interaction
data, metrics, and trip actions that notify the SDK 104/server 110
to perform a certain action. A listener may be generally known as a
collection of nested interfaces with callbacks that captures the
player(s) 102 interaction within the third-party gaming framework
106.
[0083] FIG. 2 illustrates a system architecture, in accordance with
an embodiment of the present invention. In the present embodiment,
server 110 provides the infrastructure upon which the software
runs. In a non-limiting example, server 110 may be a dedicated
infrastructure. In another non-limiting example, server 110 may be
a cloud-based or shared infrastructure that is leased from a
provider of cloud-based services. The web application 205 provides
the software that runs on the server and contains the application
and business logic of the innovation. The web application 205 may
take data received from contest attempts 108 and may apply it to
the correlating contest. The web application 205 is the engine that
runs the platform, performing many different functions such as, but
not limited to, holding, tracking and scoring contests, determining
winner(s), and all other logic needed to operate such as, but not
limited to, managing accounts of player(s) 102, deposits, contest
attempt 108 histories, and more. The SDK 104 may be provided to a
third-party developer 210 to be integrated into its apps, and once
the SDK 104 is integrated, the administrator 215 may be given full
control of the software via a web dashboard 220. The third-party
developer 210 may have access to tools 225 that enhance the
function of the software. Tools 225 may include, but are not
limited to, integration instructions, debugging tools, plugins,
sample integrations and other helpful resources that help simplify
the integration process or supplement SDK 104 performance. In a
non-limiting example, the third-party developer 210 may use an IP
address to verify the location, primarily, without limitation, to
ensure that the player(s) 102 are playing within a jurisdiction
that allows the usage of this software. A database 230 provides
storage for all persistent states of the software. Finally, the
players 102 as "users" may be able to utilize the SDK 104 in the
apps and games in which the third-party developer 210 has
integrated the SDK 104. In a non-limiting example, players may
still play the third-party game, even if the SDK is not integrated.
In this example they may not be able to compete in progressive
jackpot contests provided by the SDK. In another non-limiting
example, if the SDK is integrated, players may still play the game
without playing in a contest. In this example their game attempts
and results simply are not reported or factored in to the
contest(s) and only go towards that game's own internal
leaderboard, if any.
[0084] FIG. 3 is a flowchart of an exemplary method 300 for
integrating the SDK, in accordance with an embodiment of the
present invention. In the present embodiment, the third-party
developer 210 signs up by creating a profile in a step 305, and,
using the web dashboard, generates an app name in a step 310, and
creates a new app and receives a unique API key for the game/app
106 in a step 315. In an alternate embodiment, third-party
developer 210 may be assigned a unique API key that they may embed
in each of their games along with the SDK and use for
authentication while talking with the SDK within the game. After
the API key is displayed in a step 320, the third-party developer
210 may elect, in a step 325 to integrate the API key with the SDK
104 via, without limitation, a Gradle, an Ant, or a Maven build
system. For a Gradle build system, the third-party 210 may use the
Gradle repository link (build.gradle) to add dependency in the
settings and build, in a step 330; for a Maven build system, the
third-party developer 210 may add the Maven repository and
dependency in the pom.xml settings, in a step 335; and, for an Ant
build system, the third-party developer 210 may download Assets,
Res, and Jar files from the web dashboard 220 server 110 and
integrate the files into the code or game 106, in a step 440. In
other embodiments, the API key may be integrated with the SDK 104
by other means such as, but not limited to, other alternate
programming languages.
[0085] FIG. 4 illustrates a player using deposited funds to pay an
attempt fee architecture, in accordance with an embodiment of the
present invention. In the present embodiment, a player 102 may make
a contest attempt 108 at any time during a contest 405 as long as
he has sufficient funds to pay the attempt fee 410 and the contest
time 415 has not expired. An unlimited number of players 420 may
make unlimited contest attempts 425 during unexpired contest time
415.
[0086] FIG. 5 illustrates the fee-splitting architecture, in
accordance with an embodiment of the present invention. In the
present embodiment, for each contest attempt 108 by a player 102,
the attempt fee 410 may be held in escrow 505 until the result of
the attempt 108 has been reported to the server 110. When the
result of the attempt 108 is reported to the server 110, the funds
may be released from escrow into the appropriate accounts,
according to the parameters set in the web dashboard 220. The
attempt fee 410 is split between a fixed percentage 510 going
toward the progressive jackpot 515 and a fixed percentage 510 going
toward the administrator account 520 to be split between the
administrator 215 and the third-party developer 210 of the game
405. In a non-limiting example, the fee-splitting percentages are,
in the web dashboard 220, defined by either the administrator 215
or the third-party developer 210. In the present embodiment, the
administrator 215, without limitation, may implement a minimum and
a maximum percentage of each attempt fee 410 that either the
administrator 215 or the third-party developer 210 may receive or a
minimum and a maximum percentage of each attempt fee 410 that goes
to the progressive jackpot 515 of the contest 405. The
administrator 215 may have access and overriding control over
aspects in the web dashboard 220, including, but not limited to,
contests 405, parameters of contests 405, and level of access
granted to the third-party developer 210. The attempt fee 410 may
be refunded if a contest 405 is not available when the results of a
contest attempt 108 are reported. The administrator 215 may also
manually administer a refund if the administrator 215 deems it
appropriate.
[0087] FIG. 6 is a flowchart of an exemplary method 600 for
reporting scores, in accordance with an embodiment of the present
invention. In the present embodiment, when a contest attempt 108 is
completed, the SDK 104 reports results in a step 605. The SDK then
determines whether the contest 405 is still available in a step
610. If the SDK 104 determines that the contest 405 is not
available, then the SDK 104 determines whether a new contest 108 is
available in a step 620. If the SDK 104 determines that a new
contest 108 is not available, then the SDK 104 refunds the attempt
fee to the account of player 102 in a step 630. If the SDK 104
determines that the contest 405 is still available in a step 610,
then the SDK 104 ranks the performance of player 102 in a step 640,
releases the attempt fee 410 in a step 645, displays the score of
player 102 in a step 650, and displays the "Play again?" prompt in
a step 655. If, however, the SDK 104 determines that the contest
405 is not available and that a new contest is available in a step
620, the SDK reports and applies relevant metrics from the attempt
108 made to the new contest in a step 635, ranks the performance of
the player 102 in a step 640, releases the attempt fee 410 in a
step 645, displays the score of player 102 in a step 650, and
displays the "Play again?" prompt in a step 655.
[0088] FIG. 7 illustrates a contest lobby, in accordance with an
embodiment of the present invention. In the present embodiment, a
player 102 may access the contest lobby 700 through a web dashboard
220 or app/website. In some embodiments, the app/website may
provide the user with a list of apps/games that have integrated the
SDK 104 along with a list of current contests. The contest lobby
700 displays a list of current games 705 that have integrated with
the SDK 104. In a non-limiting example, the game 705 may include
Angry Birds, Tank Battles, Words with Friends, and X racing. In the
present embodiment, the lobby 700 also displays, without
limitation, for each game 705, the contest time 415 as "time
remaining", the contest type 710, the attempt fee 410, the
progressive jackpot 515 as "current jackpot", the current leader
and score 720, and the current score 640 of player 102. In a
non-limiting example, the remaining contest time 415 may be
displayed in days, hours, and/or minutes. In another non-limiting
example, the contest type 710 may include, without limitation,
highest score, most kills, fastest time, longest time duration,
highest level, etc. In another non-limiting example, the jackpot
515 is displayed in american currency. In other embodiments, the
jackpot may be displayed in another currency or virtual currency.
In the present embodiment, a player 102 may join any contest 405
via the "play" button 730. In other embodiments, player 102 player
may also join, without limitation, via a link shared on social
media, an in-app notification prompt (link provided), a push
notification (link provided), an email (link provided), text
message (link provided), QR code (link provided), or other
electronic methods that provides a link to join a contest.
[0089] FIG. 8 illustrates the details screen of a contest lobby, in
accordance with an embodiment of the present invention. In the
present embodiment, a player 102 may access the details screen 800
of a contest lobby 700, via a web dashboard 220 or app/website, by
selecting the detail button 805 that corresponds to the current
game 705. In some embodiments, details may be provided after an
attempt is made to show a player how he/she measures up to current
status of the contest. In some embodiments, details may be provided
in an in-app notification prompt, a push notification, an email,
text message, QR code, or other electronic methods that provides a
link to join a contest. The details screen 800 may display, without
limitation, the progressive jackpot 515 as "current jackpot",
contest type 710, the current leader and score 720, the current
score 650 of player 102, the fee per attempt 410, and contest time
415 as "time remaining". In some embodiments the administrator 215
may control and edit what is displayed on screens, including, but
not limited to, the details screen 800 via the web dashboard 220.
In a non-limiting example, the game 705 may include Angry Birds,
Tank Battles, Words with Friends, and X racing. In a non-limiting
example, the remaining contest time 415 may be displayed in days,
hours, and/or minutes. In another non-limiting example, the contest
type 710 may include highest score, most kills, or fastest time. In
another non-limiting example, the current jackpot 515 is displayed
in American currency but may be displayed in other currencies
should the administrator 215 choose. In the present embodiment, a
player 102 may join any contest 405 via the "play" button 730. In
other embodiments, player 102 may join via a "play" button on other
screens and in other electronic messages. In the present
embodiment, the player 102 may choose to cancel the detail lobby
800 via the "cancel" button 810, to return to contest lobby 700, or
to join a game 705 via the "play" button 730.
[0090] FIG. 9 illustrates a general notification 900, in accordance
with an embodiment of the present invention. In the present
embodiment, the displayed information, without limitation, may
include the winner 905 of game 705, the winner's score 910, the
high score 915 of player 102, the jackpot 920 won by winner 905, a
"play" button 730 for a new game 705, and an exit button 925 to
exit the gaming server 112. In other embodiments, for ongoing
contests, notification 900 may include, without limitation, time
remaining, current leader+score, and player's current score (if
any). From the notification screen, the player 102 may, without
limitation, be directed to the detail lobby screen 800 of the
current contest 705 via the details link 805, the contest lobby 700
via the view other contests link 930, the player's 102 account
balance 940, the player's profile/account, and help.
[0091] FIG. 10 illustrates an exemplary method 1000 for sending
notifications to players, in accordance with an embodiment of the
present invention. In the present embodiment, either an
administrator 215 or a third-party developer 210 may send to
players 102 a push notification about, without limitation, an
update, a growing jackpot, or a new contest in a step 1005. In
other embodiments, additionally, a player/user may share a contest
or attempt result with another user to inform them of an
interesting contest/jackpot/game/etc. or let them know of a great
score. In a non-limiting example, the auto-display feature may be
conditionally activated when a player 102 finishes an attempt 108.
In a non-limiting example, notifications may be a push or an
in-game notification. In another non-limiting example, the in-game
notifications may be a general prompt 900, a register prompt 1100,
a deposit prompt 1300, or a post attempt prompt 1500. In the
present embodiment, players 102 may elect to edit their push
notification settings, in a step 1010 by logging into their account
via the web dashboard 120, app/website, or through the account
settings link, either hyperlinked via the account balance 940 as
pictured or via its own icon in game notification 900 in a step
1035, in which the system may respond to the player setting in a
step 1040. After an attempt 108, a notification display 900 may
appear that displays the player's results and how that player
ranked in the contest along with contest standings and jackpot
information. The player 102, at a step 1015, selects the
notification display 900. When the player 102 selects the
notification display 900, the SDK 104 connects with the web server
110 parameters, in a step 1020. In a non-limiting example, the web
server 110 parameters may be the current user level, age, location,
account authentication, account status and whether the player 102
is eligible for that particular contest. The web application 220
responds with the current ongoing contest, in a step 1025 and
accordingly, the SDK 104 displays to the player 102 contest details
1030. In some embodiments, if the player does not have sufficient
funds to participate, a deposit prompt may appear.
[0092] FIG. 11 illustrates an in-game notification registration
prompt, in accordance with an embodiment of the present invention.
In the present embodiment, a general notification display 900 may
prompt the player 102 of a new contest. In some embodiments, other
means of electronic communications including, but not limited to,
email (link provided), text (link provided), social media (link
provided), QR code (link provided), etc. may notify the player. The
player 102, through the "play" button 730 must register or login
via the in-game notification registration prompt 1100 if they chose
to play or click on the "no" button 1190 to exit. In some
embodiments, the player may exit to normal game third-party
gameplay as if they simply continued with the game as if the prompt
never appeared. In some embodiments, notification may pop up again
in the future should they keep playing the third-party game. The
registration prompt 1100 accommodates both new user registration
1105 and existing registered users 1110. The prompt 1100 has,
without limitation, fields for existing players 102 to type their
username 1115 and password 1120, and a "login" button 1125 to enter
the game lobby 700. The prompt 1100 for a new player has, without
limitation, fields for new player to type full name 1135, email
1140, birthdate 1145, password 1150, username 1155 and a continue
button 1160. The registration prompt 1100 may also contain legal
terms of use 1165. In a non-limiting example, the legal terms may
be consenting that player 102 over age of 18 1170, agreeing to the
terms and conditions 1175, a link embedded to the terms and
conditions 1180, and an embedded help link 1185. In some
embodiments, user registration 1105 may include, without
limitation, the player's phone number and address.
[0093] FIG. 12 is a flowchart of an exemplary method 1200 for
player registration, in accordance with an embodiment of the
present invention. In the present embodiment, a player 102 may sign
up through the administration dashboard 120, in a step 1205 by
electing to use in a step 1210 a Twitter/Google Plus account in a
step 1215, or, a Facebook account in a step 1220 or, by manually
entering an email and password in a step 1225. In other
embodiments, other social media accounts may be linked. The
registration system, in a step 1230, may verify if that email is
available and, if yes, in a step 1235, continue to prompt player
102 to deposit funds. If the email is not available, the player 102
may be prompted for email again in a step 1240 and the system may
again verify the email availability in a step 1230. In a
non-limiting example, the system may automatically ping the given
email address to ensure it exist or email availability may be
checked through database 230 on transactional server 110. If the
player 102 elects to deposit funds, in a step 1235, the deposit
prompt notification 1300 may assist the player 102 in making
deposit, in a step 1250. Once the deposit is successful, or if the
player 102 elects not to deposit funds, at a step 1255, the
registration process concludes. In some embodiments, the player may
be prompted to deposit when he/she tries to enter a contest or make
an attempt but doesn't have sufficient funds. The user may also go
into his/her account details via web dashboard and/or app/website
and deposit.
[0094] FIG. 13 illustrates an in-game notification deposit prompt,
in accordance with an embodiment of the present invention. In the
present embodiment, following the registration prompt 1100 continue
button 1160, the player 102 is taken to the deposit prompt 1300.
The deposit prompt 1300 has, without limitation, fields for players
to type their name 1305, address 1310, city/state/zip 1315, phone
number 1320, a check box to indicate type of phone number 1325,
credit card information 1330, expiration date of credit card 1135,
the security CSC number of credit card 1340, the deposit amount
1345, and a register button 1350. In some embodiments, a link to
PayPal or other payment methods in order to add PayPal account may
be included. The deposit prompt 1300 may also contain legal terms
of use 1355. In a non-limiting example, the legal terms may be
consenting that player 102 allows credit card to be charged 1360, a
"back" link embedded 1365, and an embedded help link 1370.
Additionally, the deposit prompt may have a link to start over for
new users 1375 and to register 1380.
[0095] FIG. 14 is a flowchart of an exemplary method 1400 for the
player deposit, in accordance with an embodiment of the present
invention. A player 102, may input the amount of funds to be
deposited through the deposit prompt 1300 in the amount to be
deposited field 1345 in a step 1405. The player 102 may elect in a
step 1410 to deposit funds using, without limitation, a credit
card, PayPal, or virtual currencies. For a credit card deposit, in
a step 1415, the player 102 enters credit card information. For a
PayPal deposit, in a step 1420, the player 102 enters PayPal
information. For a virtual currency deposit, in a step 1425, the
player 102 enters their email address and password. In a
non-limiting example, third parties such as, but not limited to,
Stripe and PayPal may process payments into an admin bank account.
The players may be credited the amount to their account. Should a
player wish to withdraw a remaining amount or withdraw winnings,
admin may pay out from the admin bank account. Additionally,
third-party developers may be paid their % from the admin bank
account as well. In a non-limiting example, a virtual currency may
be Bitcoin. Once the player 102 enters their payment details, the
system prompts the player 102 to save the player's payment
information for future uses in a step 1430. If the player elects to
have the payment information saved, in a step 1435, the SDK 104 may
store the payment information. In a non-limiting example, payment
information may be stored on transactional server 110 and database
230. Once the payment information is successfully stored, or if the
player 102 elects not to store payment information, at a step 1440,
the payment will be securely processed and authorized and credit
the funds to the player's 102 account.
[0096] FIG. 15 illustrates a post-attempt notification display, in
accordance with an embodiment of the present invention. In the
present embodiment, the post-attempt notification display 1500
displays contest information to the player 102. The displayed
information, without limitation, may include message across the top
1505, a "try again" button 1510, the attempt fee 410 to try again
1515, a "no" button 1190, view other contests 930, the player's 102
score 650, the leader's score and name 720, the current jackpot
515, the player's 102 account balance 940, and the details button
805 that triggers a detail prompt display 1520. In the present
embodiment, the details display prompt 1520 may display, without
limitation, the name of the game 705, the current jackpot 515, the
contest type 710, the current leader score and name 720, the
player's 102 current score 650, the time remaining in the contest
415, the "play" button 730, and a "cancel" button 810 to return
back to the post-attempt notification display 1500.
[0097] FIG. 16 illustrates an expanded contest detail and leader
board notification display, in accordance with an embodiment of the
present invention. In the present embodiment, the expanded contest
detail and leader board notification display 1600 indicates the
leader board 1605 which permits the player 102 to compare the
player's current score 605 to the leader board scores 1615. The
notification display 1600 displayed may, without limitation,
include the game title 705, the attempt fee 410, the current
jackpot 515, the contest type 710, the current leader 720 the
contest time remaining 415, the "play" button 730, and a "cancel"
button 810 to return to the notification prompt. The leaderboard
1605 may display, without limitation, the top four leaders 1610
displayed in order by each leader's respective score 1615 and may
include the leaders username 1620.
[0098] FIG. 17 is a flowchart of an exemplary method 1700 for the
third-party developer account creation, in accordance with an
embodiment of the present invention. In the present embodiment, a
third-party developer 210 may create an account with an
administrator 215 via web dashboard 220 in a step 1705. In a
non-limiting example, the third-party developer 210 may create the
account without the assistance of the administrator 215. The
third-party developer 210 may elect to use, in a step 1710,
Twitter/Google Plus in a step 1715, or, Facebook in a step 1720, or
by manually entering an email and password in a step 1725 to
connect to the web dashboard 220. In a non-limiting example, their
Email/Facebook/Twitter/Google+ is associated with their developer
account in the web dashboard which is used to connect their games
with embedded SDK to their developer account in the web dashboard.
The registration system, in a step 1730, may verify the email
address and, if yes, in a step 1735, conclude the account creation.
After the email account is verified and the developer account is
created, the third-party developer 210 may add games developed by
the third-party developer 210 to its developer account via the web
dashboard 220. For each game added, the web dashboard 220 may
generate a unique API key for the developer to embed in the
game/code/script 106 along with the SDK 104 in order to sync it
with the third-party developer's account in the web dashboard 220.
If the email is not available or verifiable, in a step 1740, the
third-party developer 210 may be prompted for email again and if
available, in a step 1735 conclude the account creation.
[0099] FIG. 18 is a flowchart of an exemplary method 1800 for the
third-party developer creating a contest, in accordance with an
embodiment of the present invention. In the present embodiment, the
third party developer 210 logs into the API or dashboard 220
account in a step 1805. The third-party developer 210 creates and
starts a contest by selecting the game/app 106 in a step 1810, and,
in a step 1815, establishes the parameters for the contest. In a
non-limiting example, the third-party developer 210 may establish
parameters such as attempt fee amount 410, metric to guide or rank
participants, results, contest type, payout structure,
notifications, notification settings, and the start and end time.
In another non-limiting example, the game types 710 may be most
kills, most points, and fastest times. In another non-limiting
example, the payout structure may be set as one winner takes all,
top 5 payout, top 10 payout, or a percent of the jackpot 515 paid
to any capped placing order. As a non-limiting example, a percent
payout might be, 50% to 1st place, 30% to 2nd place, and 20% to 3rd
place. After the third-party developer 210 has input the
parameters, they are saved through the server 110 and onto the
database 230, in a step 1820.
[0100] FIG. 19 is a flowchart of an exemplary method 1900 for the
platform synchronization, in accordance with an embodiment of the
present invention. In the present embodiment the SDK 104 may
retrieve the data connection when a game/attempt 108 is started, in
a step 1905. As a non-limiting example, the third-party developer
may need to code in the game script 106 on the game server 112 to
push data to the listeners (receptors) of the integrated SDK 104.
The listeners in the embedded SDK 104 may be triggered and relay
any relevant data to the transactional server 110. The mobile, PC,
or console programming, computer code, or script 106 may push every
milestone via SDK 104 that has been integrated. In a non-limiting
example, milestones may include attempt started, finished attempt,
current and final score, or results. In the present embodiment, the
SDK 104 immediately scans for any updated information available in
the game 106 and/or attempt 108 to push, in a step 1910. If the SDK
104 recognizes updated information, it attempts to push the updated
milestones to the transactional server 110 in a step 1915. In
alternate embodiments, the SDK 104 may push the data to the web
dashboard 220 which may relay data to the transactional server 110,
or the SDK 104 may push the data to the transactional server 110
which may then relay data to the web dashboard 220. If the push, in
a step 1920 was successful, then the SDK 104 may check to verify if
the contest 415 has ended by the time the push occurred, in a step
1975. If the contest 415 has not ended, then the platform
synchronization may conclude. However, if the contest 415 has
ended, the SDK 104 may verify if a new contest is available, in a
step 1980. If a new contest is available, the results may be
applied to the current or new contest in a step 1985 and the SDK
104 may verify if the contest has ended when pushed again, in a
step 1975. If, in a step 1980, there is not a new contest and, in a
step 1990, the attempt fee 410 was held in escrow, the attempt fee
410 may be refunded to the account of player 102 in a step 1995. If
there is no updated information the platform synchronization may
conclude in a step 1999. However, if the push, in a step 1920 was
unsuccessful, the SDK 104 may retry, in a step 1925, using an
exponential back off based algorithm, in a step 1930, pushing the
milestone, in a step 1915. If the exponential back off based
algorithm is successful, in a step 1925, then, in a step 1999, the
platform synchronization may conclude. If the push still fails
after the exponential back off based retries, then the data may be
attempted to be stored into a secure database on the player's 102
device to retry later, in a step 1940. The data may be attempted to
be saved onto the internal storage of the player's 102 device such
as, without limitation, a phone, until the player 102 connects to
the internet in a step 1945. If the data is not saved onto the
player's 102 device, in a step 1950, the data may attempt to be
saved on the external storage of the player's 102 device for a
future retry, in a step 1955. If the external data save is
successful in a step 1960, then when the player 102 connects to the
internet, all the data waiting to be pushed and the platform
synchronization concludes. If the external data save was
unsuccessful, the SDK 104 may use an exponential back off based
algorithm in a step 1965 to push the data and retry, in a step
1970. If the retry is unsuccessful, then the data may be stored on
external storage to retry again later, in a step 1955. If the retry
was successful, then the platform synchronization concludes.
[0101] FIG. 20 is a flowchart of an exemplary method 2000 for the
player participation contest, in accordance with an embodiment of
the present invention. In the present embodiment, once a player 102
receives a notification about the contest via, without limitation,
a push notification, an in-game notification, email, SMS,
advertisement, web dashboard 220, or social media link, the player
102 may click on the participate button. The player 102 may enter
the required registration information or returning player username
and password to authenticate the account information from the
player 102, in a step 2005. The player 102 elects to make a contest
attempt 108 in a step 2010 and if the contest 410 is still open, in
a step 2015, then, the SDK 104 may verify if there sufficient funds
available in the player's 102 account, in a step 2020. If the
contest 410 is not open, then the SDK 104 may check for new contest
availability, in a step, 2025. If a new contest is available, the
SDK 104 may verify if there sufficient funds available in the
player's 102 account, in a step 2020. If there is not a new contest
available, the player participation concludes. If, there are
sufficient funds in player's 102 account, then the player 102 may
verify his or her intent to proceed with the attempt fee 410
deduction, in a step 2030. If then player 102 declines the attempt
fee 410 deduction, the player participation concludes. If the
player agrees to the deduction, the attempt fee 410 may be deducted
from the player's 102 account, in a step 2035 and split 510
according to the defined parameters in web dashboard 220, in a step
2040. The attempt fee 410 is held in escrow 505 until the results
from the attempt 108 are recorded in a step 2045 and the player 102
may proceed to the game 106 to make an attempt 108, in a step 2050.
If there are not sufficient funds in a player's account, the player
102 may be sent to the deposit prompt 1300 to obtain payment
authentication from the player 102, in a step 2055. The player may
be taken through the payment process 1400, at a step 2060, and
funds may be deposited into the player's 102 account, at a step
2065. The player 102 may be prompted to make a contest attempt 108,
in a step 2070. If a contest is available, in a step 2015, then the
SDK 104 may verify if there are sufficient funds available in the
player's 102 account, in a step 2020 and the player 102 may verify
the intent to proceed with the attempt fee 410 deduction, in a step
2030.
[0102] FIG. 21 is a block diagram of an exemplary client/server
system 2100 which may be used by an exemplary web-enabled/networked
embodiment of the present invention. A communication system 2100
includes a multiplicity of clients with a sampling of clients
denoted as a client 2102 and a client 2104, a multiplicity of local
networks with a sampling of networks denoted as a local network
2106 and a local network 2108, a global network 2110 and a
multiplicity of servers with a sampling of servers denoted as a
server 2112 and a server 2114.
[0103] Client 2102 may communicate bi-directionally with local
network 2106 via a communication channel 2116. Client 2104 may
communicate bi-directionally with local network 2108 via a
communication channel 2118. Local network 2106 may communicate
bi-directionally with global network 2110 via a communication
channel 2120. Local network 2108 may communicate bi-directionally
with global network 2110 via a communication channel 2122. Global
network 2110 may communicate bi-directionally with server 2112 and
server 2114 via a communication channel 2124. Server 2112 and
server 2114 may communicate bi-directionally with each other via
communication channel 2124. Furthermore, clients 2102, 2104, local
networks 2106, 2108, global network 2110 and servers 2112, 2114 may
each communicate bi-directionally with each other.
[0104] In one embodiment, global network 2110 may operate as the
Internet. It will be understood by those skilled in the art that
communication system 2100 may take many different forms.
Non-limiting examples of forms for communication system 2100
include local area networks (LANs), wide area networks (WANs),
wired telephone networks, wireless networks, or any other network
supporting data communication between respective entities.
[0105] Clients 2102 and 2104 may take many different forms.
Non-limiting examples of clients 2102 and 2104 include personal
computers, personal digital assistants (PDAs), cellular phones and
smartphones.
[0106] Client 2102 includes a CPU 2126, a pointing device 2128, a
keyboard 2130, a microphone 2132, a printer 2134, a memory 2136, a
mass memory storage 2138, a GUI 2140, a video camera 2142, an
input/output interface 2144 and a network interface 2146.
[0107] CPU 2126, pointing device 2128, keyboard 2130, microphone
2132, printer 2134, memory 2136, mass memory storage 2138, GUI
2140, video camera 2142, input/output interface 2144 and network
interface 2146 may communicate in a unidirectional manner or a
bi-directional manner with each other via a communication channel
2148. Communication channel 2148 may be configured as a single
communication channel or a multiplicity of communication
channels.
[0108] CPU 2126 may be comprised of a single processor or multiple
processors. CPU 2126 may be of various types including
micro-controllers (e.g., with embedded RAM/ROM) and microprocessors
such as programmable devices (e.g., RISC or SISC based, or CPLDs
and FPGAs) and devices not capable of being programmed such as gate
array ASICs (Application Specific Integrated Circuits) or general
purpose microprocessors.
[0109] As is well known in the art, memory 2136 is used typically
to transfer data and instructions to CPU 2126 in a bi-directional
manner. Memory 2136, as discussed previously, may include any
suitable computer-readable media, intended for data storage, such
as those described above excluding any wired or wireless
transmissions unless specifically noted. Mass memory storage 2138
may also be coupled bi-directionally to CPU 2126 and provides
additional data storage capacity and may include any of the
computer-readable media described above. Mass memory storage 2138
may be used to store programs, data and the like and is typically a
secondary storage medium such as a hard disk. It will be
appreciated that the information retained within mass memory
storage 2138, may, in appropriate cases, be incorporated in
standard fashion as part of memory 2136 as virtual memory.
[0110] CPU 2126 may be coupled to GUI 2140. GUI 2140 enables a user
to view the operation of computer operating system and software.
CPU 2126 may be coupled to pointing device 2128. Non-limiting
examples of pointing device 2128 include computer mouse, trackball
and touchpad. Pointing device 2128 enables a user with the
capability to maneuver a computer cursor about the viewing area of
GUI 2140 and select areas or features in the viewing area of GUI
2140. CPU 2126 may be coupled to keyboard 2130. Keyboard 2130
enables a user with the capability to input alphanumeric textual
information to CPU 2126. CPU 2126 may be coupled to microphone
2132. Microphone 2132 enables audio produced by a user to be
recorded, processed and communicated by CPU 2126. CPU 2126 may be
connected to printer 2134. Printer 2134 enables a user with the
capability to print information to a sheet of paper. CPU 2126 may
be connected to video camera 2142. Video camera 2142 enables video
produced or captured by user to be recorded, processed and
communicated by CPU 2126.
[0111] CPU 2126 may also be coupled to input/output interface 2144
that connects to one or more input/output devices such as such as
CD-ROM, video monitors, track balls, mice, keyboards, microphones,
touch-sensitive displays, transducer card readers, magnetic or
paper tape readers, tablets, styluses, voice or handwriting
recognizers, or other well-known input devices such as, of course,
other computers.
[0112] Finally, CPU 2126 optionally may be coupled to network
interface 2146 which enables communication with an external device
such as a database or a computer or telecommunications or internet
network using an external connection shown generally as
communication channel 2116, which may be implemented as a hardwired
or wireless communications link using suitable conventional
technologies. With such a connection, CPU 2126 might receive
information from the network, or might output information to a
network in the course of performing the method steps described in
the teachings of the present invention.
[0113] FIG. 22 is a block diagram depicting a conventional
client/server communication system. A communication system 2200
includes a multiplicity of networked regions with a sampling of
regions denoted as a network region 2202 and a network region 2204,
a global network 2206 and a multiplicity of servers with a sampling
of servers denoted as a server device 2208 and a server device
2210.
[0114] Network region 2202 and network region 2204 may operate to
represent a network contained within a geographical area or region.
Non-limiting examples of representations for the geographical areas
for the networked regions may include postal zip codes, telephone
area codes, states, counties, cities and countries. Elements within
network region 2202 and 2204 may operate to communicate with
external elements within other networked regions or within elements
contained within the same network region.
[0115] In some implementations, global network 2206 may operate as
the Internet. It will be understood by those skilled in the art
that communication system 2200 may take many different forms.
Non-limiting examples of forms for communication system 2200
include local area networks (LANs), wide area networks (WANs),
wired telephone networks, cellular telephone networks or any other
network supporting data communication between respective entities
via hardwired or wireless communication networks. Global network
2206 may operate to transfer information between the various
networked elements.
[0116] Server device 2208 and server device 2210 may operate to
execute software instructions, store information, support database
operations and communicate with other networked elements.
Non-limiting examples of software and scripting languages which may
be executed on server device 2208 and server device 2210 include C,
C++, C# and Java.
[0117] Network region 2202 may operate to communicate
bi-directionally with global network 2206 via a communication
channel 2212. Network region 2204 may operate to communicate
bi-directionally with global network 2206 via a communication
channel 2214. Server device 2208 may operate to communicate
bi-directionally with global network 2206 via a communication
channel 2216. Server device 2210 may operate to communicate
bi-directionally with global network 2206 via a communication
channel 2218. Network region 2202 and 2204, global network 2206 and
server devices 2208 and 2210 may operate to communicate with each
other and with every other networked device located within
communication system 2200.
[0118] Server device 2208 includes a networking device 2220 and a
server 2222. Networking device 2220 may operate to communicate
bi-directionally with global network 2206 via communication channel
2216 and with server 2222 via a communication channel 2224. Server
2222 may operate to execute software instructions and store
information.
[0119] Network region 2202 includes a multiplicity of clients with
a sampling denoted as a client 2226 and a client 2228. Client 2226
includes a networking device 2234, a processor 2236, a GUI 2238 and
an interface device 2240. Non-limiting examples of devices for GUI
2238 include monitors, televisions, cellular telephones,
smartphones and PDAs (Personal Digital Assistants). Non-limiting
examples of interface device 2240 include pointing device, mouse,
trackball, scanner and printer. Networking device 2234 may
communicate bi-directionally with global network 2206 via
communication channel 2212 and with processor 2236 via a
communication channel 2242. GUI 2238 may receive information from
processor 2236 via a communication channel 2244 for presentation to
a user for viewing. Interface device 2240 may operate to send
control information to processor 2236 and to receive information
from processor 2236 via a communication channel 2246. Network
region 2204 includes a multiplicity of clients with a sampling
denoted as a client 2230 and a client 2232. Client 2230 includes a
networking device 2248, a processor 2250, a GUI 2252 and an
interface device 2254. Non-limiting examples of devices for GUI
2238 include monitors, televisions, cellular telephones,
smartphones and PDAs (Personal Digital Assistants). Non-limiting
examples of interface device 2240 include pointing devices, mousse,
trackballs, scanners and printers. Networking device 2248 may
communicate bi-directionally with global network 2206 via
communication channel 2214 and with processor 2250 via a
communication channel 2256. GUI 2252 may receive information from
processor 2250 via a communication channel 2258 for presentation to
a user for viewing. Interface device 2254 may operate to send
control information to processor 2250 and to receive information
from processor 2250 via a communication channel 2260.
[0120] For example, consider the case where a user interfacing with
client 2226 may want to execute a networked application. A user may
enter the IP (Internet Protocol) address for the networked
application using interface device 2240. The IP address information
may be communicated to processor 2236 via communication channel
2246. Processor 2236 may then communicate the IP address
information to networking device 2234 via communication channel
2242. Networking device 2234 may then communicate the IP address
information to global network 2206 via communication channel 2212.
Global network 2206 may then communicate the IP address information
to networking device 2220 of server device 2208 via communication
channel 2216. Networking device 2220 may then communicate the IP
address information to server 2222 via communication channel 2224.
Server 2222 may receive the IP address information and after
processing the IP address information may communicate return
information to networking device 2220 via communication channel
2224. Networking device 2220 may communicate the return information
to global network 2206 via communication channel 2216. Global
network 2206 may communicate the return information to networking
device 2234 via communication channel 2212. Networking device 2234
may communicate the return information to processor 2236 via
communication channel 2242. Processor 2246 may communicate the
return information to GUI 2238 via communication channel 2244. User
may then view the return information on GUI 2238.
[0121] In the present embodiment, the software has a backend web
dashboard that third-party developers 210 log into in order to
manage the integration and parameters associated with their
integrated game(s) 106 and contests 405. The dashboard, without
limitation, may allow third-party developers 210 to perform
functions such as create new contests, set parameters of contests
405, and view analytics of contests 405 held. In a non-limiting
example, the third-party developer 210 may set contest metrics in
determining winner, prize allocation and details. In the present
embodiment, through the dashboard, the third-party developer 210
may, without limitation, set the fee per attempt amount 410 for
each contest 405, adjust the percent of each attempt fee 410 that
goes toward jackpot 515 and revenue split 510 by the third-party
developer 210 and the administrator 215, customize jackpot
notification displays in their app, send a message to all users,
send in-app notifications real-time, view player analytics and
other controls. The dashboard 220 may provide the administrator 215
with an executive account that oversees and manages, without
limitation, all the third-party developers 210 and player 102
accounts. The administrator 215 may be able to adjust accessibility
rights for all parties on the platform, including freezing or
terminating third-party developer 210 accounts. The dashboard 220
also communicates with the SDK 104 and the transactional server 110
in order to maintain and display real-time data. In an alternate
embodiment, dashboard 220 may communicate directly with gaming
server 112.
[0122] In the present embodiment, the web dashboard may have an
analytics section that allows third-party developers 210, without
limitation, to view contest and user participation data through,
without limitation, the number of attempts made, the amount
wagered, the estimated revenue generated based on percentage set,
and other metrics and graphs. In the present embodiment, the
analytics section may enable players 102 to view a complete
detailed profile that includes, without limitation, the player's
102 performance history, contests played, number of plays, amount
wagered, attempt results and high scores, and the suggested
contests and/or games based on historical data. If a player 102 has
synced one of their social media accounts, for example, but not
limited to, completing the sign-up process using a Facebook,
Twitter, Google+ account, or any other social media account or
linking a social media account in the player's 102 profile
settings, the player 102 may also view their friends profiles and
view how well they are performing. In some embodiments, the player
102 may also import his or her email contacts to see which of his
or her friends are members and automatically connect with them via
the web dashboard 220. In a non-limiting example, a social graph
that ranks a users' performance(s) against his/her friends'
performance(s) within different games and contests may be viewed.
In another non-limiting example, players 102 may be able to view a
news feed that lists integrated games & current contests with
the progressive jackpot sizes across the platform. In the present
embodiment, the Administrator 215 may have the highest level of
visibility in the analytics section. The Administrator 215 may be
enabled to find out how the system is performing on the basis of
different parameters, including, without limitation the following:
number of attempts 405 made by players 102, number of contests
created by third-party developer 210, the total money flow,
adoption rates, geographical distribution of players 102 and
third-party developers 210, any exceptions or errors in the SDK 104
or web dashboard, response times of APIs, active player 102 counts,
and screen wise dropouts.
[0123] In the present embodiment, the web application may
immediately update the milestones in the database and may
recalculate the standings of each user. In a non-limiting example,
once data from an attempt 108 is received by the transactional
server 110, the web dashboard 220 may then refresh to include and
display the most recent attempt 108 data and most updated version
of a leaderboard 1605 along with all other pertinent contest 405
information and details 1030. In the present embodiment, to
synchronize the platforms, the communications may utilize https to
ensure each transaction is secured through SSL certificates. When a
third-party developer 210 intends to display and promote a custom
version of the leaderboard of a contest, the API may be provided to
the third-party developer 210 in a JSON format to use for a custom
leaderboard. Otherwise, in the present embodiment, the third-party
developer 210 may be provided with a generic UI to use one function
of the SDK 104 to get the latest leaderboard from the server using
API. In a non-limiting example, the UI leaderboard may be
customizable to include colors and logo of the third-party
developer 210.
[0124] In the present embodiment, a contest winner is based on the
predefined rules established through the parameters. In a
non-limiting example, the parameters may be start and end time,
type of contest, metric used for ranking purposes such as, but not
limited to, fastest time, most points, most kills, etc., and an
attempt fee amount 410. The contest end is based upon the contest
end-time parameter 410 with the winner(s) calculated by the web
application. In alternative embodiments, the end of the contest may
be based on when a player reaches a certain milestone, such as, but
not limited to, a certain high score, instead of time. As a
non-limiting example, first one to get 40 kills in one attempt wins
the progressive jackpot amount at that point in time. The results
are pushed 900 using in-app notifications 1000, push notifications
and email addresses. Winner(s) account(s) may be credited with
winning amount of the progressive jackpot based on the payout
structure parameters 500 established in the web dashboard 220 and
the associated payout with their position on the leaderboard.
[0125] In the present embodiment, players 102 may be able to share
statuses such as, without limitation, a current contest with
jackpot amount, performance and/or attempt score, winnings, and
other messages via social media, email, and SMS.
[0126] In the present embodiment, the software automatically
populates, updates, and keeps track of each contest 405 leaderboard
1605. Each attempt 108 that is reported, either by the SDK 104 or
by the third party gaming server 112, is graded or ranked against
all previous attempts 108 made in the contest 405, respectively.
The third party gaming server 112 and/or SDK 104 know which data
from the attempt 108 results to report to server 110 because the
parameters of the contest 405 were defined by either the developer
210 or administrator 215 in the web dashboard 220.
[0127] In the present embodiment, the SDK 104 may be optimal for
use in online and mobile games of skill. In a non-limiting example,
games of skill are those in which a player 102 is ranked
predominantly by in-game abilities as opposed to games whose
outcomes are predominantly dependent on chance. In another
non-limiting example, games of skill may include, without
limitation, racing, sports, fighting, strategy, trivia, and word
games.
[0128] In the present embodiment, when the contest time 415 has
expired, the contest 405 closes and players 102 may not able to
enter the contest 405 by making another attempt 108; however,
players 102 who entered the contest 405 before the contest time
expired 415 are given a preset extension of time to allow the
player to finish the game attempt 108 and have the player's score
reported and factored into the final leaderboard 1605 and prize
ranking. The preset extension is set in web dashboard 220.
[0129] In the present embodiment, all players 102, developers 210,
and administrator 215 accounts are universal amongst all integrated
apps. In a non-limiting example, if a user accesses their account
playing Game A, the account, such as, but not limited to, an
account balance, if attempts were made, is updated and in sync when
they go to play and enter contests in Game B.
[0130] In some embodiments, third party developers 210 may have the
ability, via the web dashboard 220, to auto-repeat expired contests
if desired or may create a new contest to begin as soon as the
previous contest ends, or the option to not run a new contest at
all.
[0131] In some embodiments, third party developers 210 may create
custom notifications that may be designed for and delivered to a
developer's 210 user base via the web dashboard 220. The custom
notifications may, without limitation, notify users of updates,
such as deposit bonuses, jackpot statuses and/or an ad to
participate in a contest including a link that directs them to the
initial verification/authentication process. Developers 210 may
also set notifications to, without limitation, pop-up
automatically, interstitially throughout the game/app based on
defined parameters as assigned in the web dashboard 220, and/or as
a notification sent out to all of the participants and users
notifying them of the end of the contest 405.
[0132] In some embodiments, the software may deliver contests,
notifications and updates to users via its own app, website,
dashboard, or game. In a non-limiting example, users interested in
learning more about different contests and games that have
integrated the SDK 104 may download the app or visit the website
that displays all running contests or upcoming contests in a
contest lobby 700 and displays the status of each including,
without limitation, the current jackpot amount 515 and the current
high score and leader 720.
[0133] In some embodiments, users may be directed to the contest
lobby from a notification within a third party game which has
integrated the SDK 104.
[0134] In some embodiments the leaderboard 1605 is customizable by
the developers 210 to help fit in with their game design.
[0135] In some embodiments, the software may have listeners
embedded throughout to monitor and report user interaction data
including, without limitation, metrics and trip actions that notify
the SDK 104, dashboard 220, and server 110 to perform a certain
action.
[0136] In some embodiments, the SDK 104 may be linked, without
limitation, to online gaming sites for skill and/or chance, apps
and machines, sports or events wagering, arcade games, virtual
reality games, auction apps and/or website and funding platforms.
In a non-limiting example, funding platforms may include crowd
funding sites.
[0137] In an alternative embodiment, the SDK 104 may be linked with
fantasy sports games. In a non-limiting example, Yahoo Fantasy
football may be linked to create a jackpot payout for specified
leaders.
[0138] In an alternative embodiment, user may register as "guests"
to use the platform on a trial basis.
[0139] Those skilled in the art will readily recognize, in light of
and in accordance with the teachings of the present invention, that
any of the foregoing steps and/or system modules may be suitably
replaced, reordered, removed and additional steps and/or system
modules may be inserted depending upon the needs of the particular
application, and that the systems of the foregoing embodiments may
be implemented using any of a wide variety of suitable processes
and system modules, and is not limited to any particular computer
hardware, software, middleware, firmware, microcode and the like.
For any method steps described in the present application that can
be carried out on a computing machine, a typical computer system
can, when appropriately configured or designed, serve as a computer
system in which those aspects of the invention may be embodied.
[0140] It will be further apparent to those skilled in the art that
at least a portion of the novel method steps and/or system
components of the present invention may be practiced and/or located
in location(s) possibly outside the jurisdiction of the United
States of America (USA), whereby it will be accordingly readily
recognized that at least a subset of the novel method steps and/or
system components in the foregoing embodiments must be practiced
within the jurisdiction of the USA for the benefit of an entity
therein or to achieve an object of the present invention. Thus,
some alternate embodiments of the present invention may be
configured to comprise a smaller subset of the foregoing means for
and/or steps described that the applications designer will
selectively decide, depending upon the practical considerations of
the particular implementation, to carry out and/or locate within
the jurisdiction of the USA. For example, any of the foregoing
described method steps and/or system components which may be
performed remotely over a network (e.g., without limitation, a
remotely located server) may be performed and/or located outside of
the jurisdiction of the USA while the remaining method steps and/or
system components (e.g., without limitation, a locally located
client) of the forgoing embodiments are typically required to be
located/performed in the USA for practical considerations. In
client-server architectures, a remotely located server typically
generates and transmits required information to a US based client,
for use according to the teachings of the present invention.
Depending upon the needs of the particular application, it will be
readily apparent to those skilled in the art, in light of the
teachings of the present invention, which aspects of the present
invention can or should be located locally and which can or should
be located remotely. Thus, for any claims construction of the
following claim limitations that are construed under 35 USC
.sctn.112 (6) it is intended that the corresponding means for
and/or steps for carrying out the claimed function are the ones
that are locally implemented within the jurisdiction of the USA,
while the remaining aspect(s) performed or located remotely outside
the USA are not intended to be construed under 35 USC .sctn.112
(6). In some embodiments, the methods and/or system components
which may be located and/or performed remotely include, without
limitation: web site hosting and cloud storage for databases.
[0141] It is noted that according to USA law 35 USC .sctn.112 (1),
all claims must be supported by sufficient disclosure in the
present patent specification, and any material known to those
skilled in the art need not be explicitly disclosed. However, 35
USC .sctn.112 (6) requires that structures corresponding to
functional limitations interpreted under 35 USC .sctn.112 (6) must
be explicitly disclosed in the patent specification. Moreover, the
USPTO's Examination policy of initially treating and searching
prior art under the broadest interpretation of a "mean for" claim
limitation implies that the broadest initial search on 112(6)
functional limitation would have to be conducted to support a
legally valid Examination on that USPTO policy for broadest
interpretation of "mean for" claims. Accordingly, the USPTO will
have discovered a multiplicity of prior art documents including
disclosure of specific structures and elements which are suitable
to act as corresponding structures to satisfy all functional
limitations in the below claims that are interpreted under 35 USC
.sctn.112 (6) when such corresponding structures are not explicitly
disclosed in the foregoing patent specification. Therefore, for any
invention element(s)/structure(s) corresponding to functional claim
limitation(s), in the below claims interpreted under 35 USC
.sctn.112 (6), which is/are not explicitly disclosed in the
foregoing patent specification, yet do exist in the patent and/or
non-patent documents found during the course of USPTO searching,
Applicant(s) incorporate all such functionally corresponding
structures and related enabling material herein by reference for
the purpose of providing explicit structures that implement the
functional means claimed. Applicant(s) request(s) that fact finders
during any claims construction proceedings and/or examination of
patent allowability properly identify and incorporate only the
portions of each of these documents discovered during the broadest
interpretation search of 35 USC .sctn.112 (6) limitation, which
exist in at least one of the patent and/or non-patent documents
found during the course of normal USPTO searching and or supplied
to the USPTO during prosecution. Applicant(s) also incorporate by
reference the bibliographic citation information to identify all
such documents comprising functionally corresponding structures and
related enabling material as listed in any PTO Form-892 or likewise
any information disclosure statements (IDS) entered into the
present patent application by the USPTO or Applicant(s) or any
3.sup.rd parties. Applicant(s) also reserve its right to later
amend the present application to explicitly include citations to
such documents and/or explicitly include the functionally
corresponding structures which were incorporate by reference
above.
[0142] All the features disclosed in this specification, including
any accompanying abstract and drawings, may be replaced by
alternative features serving the same, equivalent or similar
purpose, unless expressly stated otherwise. Thus, unless expressly
stated otherwise, each feature disclosed is one example only of a
generic series of equivalent or similar features.
[0143] It is noted that according to USA law 35 USC .sctn.112 (1),
all claims must be supported by sufficient disclosure in the
present patent specification, and any material known to those
skilled in the art need not be explicitly disclosed. However, 35
USC .sctn.112 (6) requires that structures corresponding to
functional limitations interpreted under 35 USC .sctn.112 (6) must
be explicitly disclosed in the patent specification. Moreover, the
USPTO's Examination policy of initially treating and searching
prior art under the broadest interpretation of a "mean for" claim
limitation implies that the broadest initial search on 112(6)
functional limitation would have to be conducted to support a
legally valid Examination on that USPTO policy for broadest
interpretation of "mean for" claims. Accordingly, the USPTO will
have discovered a multiplicity of prior art documents including
disclosure of specific structures and elements which are suitable
to act as corresponding structures to satisfy all functional
limitations in the below claims that are interpreted under 35 USC
.sctn.112 (6) when such corresponding structures are not explicitly
disclosed in the foregoing patent specification. Therefore, for any
invention element(s)/structure(s) corresponding to functional claim
limitation(s), in the below claims interpreted under 35 USC
.sctn.112 (6), which is/are not explicitly disclosed in the
foregoing patent specification, yet do exist in the patent and/or
non-patent documents found during the course of USPTO searching,
Applicant(s) incorporate all such functionally corresponding
structures and related enabling material herein by reference for
the purpose of providing explicit structures that implement the
functional means claimed. Applicant(s) request(s) that fact finders
during any claims construction proceedings and/or examination of
patent allowability properly identify and incorporate only the
portions of each of these documents discovered during the broadest
interpretation search of 35 USC .sctn.112 (6) limitation, which
exist in at least one of the patent and/or non-patent documents
found during the course of normal USPTO searching and or supplied
to the USPTO during prosecution. Applicant(s) also incorporate by
reference the bibliographic citation information to identify all
such documents comprising functionally corresponding structures and
related enabling material as listed in any PTO Form-892 or likewise
any information disclosure statements (IDS) entered into the
present patent application by the USPTO or Applicant(s) or any
3.sup.rd parties. Applicant(s) also reserve its right to later
amend the present application to explicitly include citations to
such documents and/or explicitly include the functionally
corresponding structures which were incorporate by reference
above.
[0144] Thus, for any invention element(s)/structure(s)
corresponding to functional claim limitation(s), in the below
claims, that are interpreted under 35 USC .sctn.112 (6), which
is/are not explicitly disclosed in the foregoing patent
specification, Applicant(s) have explicitly prescribed which
documents and material to include the otherwise missing disclosure,
and have prescribed exactly which portions of such patent and/or
non-patent documents should be incorporated by such reference for
the purpose of satisfying the disclosure requirements of 35 USC
.sctn.112 (6). Applicant(s) note that all the identified documents
above which are incorporated by reference to satisfy 35 USC
.sctn.112 (6) necessarily have a filing and/or publication date
prior to that of the instant application, and thus are valid prior
documents to incorporated by reference in the instant
application.
[0145] Having fully described at least one embodiment of the
present invention, other equivalent or alternative methods of
implementing a mobile-gaming platform according to the present
invention will be apparent to those skilled in the art. Various
aspects of the invention have been described above by way of
illustration, and the specific embodiments disclosed are not
intended to limit the invention to the particular forms disclosed.
The particular implementation of the mobile-gaming platform may
vary depending upon the particular context or application. By way
of example, and not limitation, the a mobile-gaming platform
described in the foregoing were principally directed to third-party
developer integration implementations; however, similar techniques
may instead be applied to third-party developer integrations for
Microsoft X-Box.RTM. and Sony PlayStation.RTM. gaming, which
implementations of the present invention are contemplated as within
the scope of the present invention. Furthermore, the teachings of
the present invention are not limited to any particular SDK and may
include any suitable framework for integrating a contest with a
game. The invention is thus to cover all modifications,
equivalents, and alternatives falling within the spirit and scope
of the following claims. It is to be further understood that not
all of the disclosed embodiments in the foregoing specification
will necessarily satisfy or achieve each of the objects,
advantages, or improvements described in the foregoing
specification.
[0146] Claim elements and steps herein may have been numbered
and/or lettered solely as an aid in readability and understanding.
Any such numbering and lettering in itself is not intended to and
should not be taken to indicate the ordering of elements and/or
steps in the claims.
[0147] The corresponding structures, materials, acts, and
equivalents of all means or step plus function elements in the
claims below are intended to include any structure, material, or
act for performing the function in combination with other claimed
elements as specifically claimed.
[0148] The Abstract is provided to comply with 37 C.F.R. Section
1.72(b) requiring an abstract that will allow the reader to
ascertain the nature and gist of the technical disclosure. It is
submitted with the understanding that it will not be used to limit
or interpret the scope or meaning of the claims. The following
claims are hereby incorporated into the detailed description, with
each claim standing on its own as a separate embodiment.
* * * * *