# Patent

## Title
Method of and system for managing client resources and assets for activities on computing devices

## Abstract

A method of and system for enabling a distributed entertainment system over a computing device is described herein. When implementing a distributed entertainment system wherein the entertainment system is directly correlated to live events or televised programs, there are a number of issues that must be addressed such as differing timing and channels of television programs and separate state laws. Furthermore, there are a plethora of varying computing device models possibly requiring model-specific software. An “Activity Client” is provided to handle such concerns. Furthermore, since time is of the essence for activities based on live or televised events, it is necessary to ensure a computing device is able to receive the necessary updates for the program before the event begins. By providing only the needed components instead of entire data packages, the present invention is able to much more efficiently prepare users' computing devices in time.

## Background
RELATED APPLICATION(S)
This patent application is a continuation of co-pending U.S. patent application Ser. No. 11/472,241, filed on Jun. 20, 2006, entitled METHOD OF AND SYSTEM FOR MANAGING CLIENT RESOURCES AND ASSETS FOR ACTIVITIES ON COMPUTING DEVICES which claims priority under 35 U.S.C. §119(e) of the co-owned U.S. Provisional Patent Application No. 60/692,356, filed Jun. 20, 2005, and entitled SYSTEMS AND METHODOLOGIES ENABLING A CELL PHONE BASED SUBSCRIPTION SERVICE OFFERING A VARIETY OF SCHEDULED GAMES IN CONNECTION WITH LIVE TELEVISION PROGRAMMING” which are also both hereby incorporated by reference in their entirety.
This application is related to U.S. patent application Ser. No. 11/298,901, filed on Dec. 9, 2005 and entitled “A GAME OF SKILL PLAYED BY REMOTE PARTICIPANTS UTILIZING WIRELESS DEVICES IN CONNECTION WITH A COMMON GAME EVENT” and U.S. patent application Ser. No. 11/166,596, filed on Jun. 24, 2005 and entitled “METHODS AND APPARATUS FOR DISTRIBUTED GAMING OVER A MOBILE DEVICE” which claims priority under 35 U.S.C. §119(e) of the U.S. Provisional Patent Application Ser. No. 60/588,273, filed Jul. 14, 2004 and entitled “A METHODOLOGY FOR PROVIDING ALL CONTESTANTS IN GAMES OF SKILL PLAYABLE ON CELL PHONES WITH THEIR CURRENT STANDING WHILE RECEIVING GAME CONTROL INFORMATION ONE-WAY VIA A ‘BROADCAST’ TRANSMISSION,” which are all incorporated by reference in their entirety.


FIELD OF THE INVENTION
The present invention relates to the field of distributed entertainment. More specifically, the present invention relates to the field of distributed entertainment utilizing a computing device where the entertainment corresponds to an event.
BACKGROUND OF THE INVENTION
In the United States alone there are over 170 million registered cell phones. With the expiration of the U.S. Pat. No. 4,592,546 to Fascenda et al., companies are able to now use the cell phone and other mobile communication devices utilizing a multicast network to control television viewers in games of skill based upon predicting, for example, what the quarterback may call on the next play. In addition, games of skill with a common start time can be conducted simultaneously among cell phone owners, based on classic card, dice, trivia, and other games. In order to avoid the anti-gaming laws in the various states, elements of chance must be virtually non-existent in such games and the winners therefore determined by the relative skill, experience and practice of the player in each discrete game. In certain jurisdictions and under certain circumstances, simultaneous games of chance can be conducted using the same technology as games of skill.
Although the ability to play games and enjoy other activities corresponding to current events on cell phones exists, there are a number of issues regarding coordinating the games across a nationwide network. Cellular networks and other networks are only able to handle a limited amount of traffic, so when millions of participants utilize the network at the same time for a regularly scheduled event, there are concerns of the network being overloaded and bogged down to a point where users do not receive necessary data in a timely manner.
Furthermore, cell phones and other computing devices have their own limitations as well. Although cell phone memory is increasing as is typical with technology, cell phones still have a limited amount of memory. Moreover, many users still have somewhat older cell phones that have less memory than current models. In addition to the memory limitations, there are multiple cell phone service providers and a plethora of cell phone models using slightly different protocols. Cell phone users are also sensitive to the time it takes to download the necessary data to play games or enjoy activities.
Servers of the entertainment provider also have limited resources yet must be able to ensure the potentially millions of simultaneous users have the necessary and proper software resident on their cell phones in order to participate in scheduled interactive programs. Again, servers are continuously growing more powerful, quicker and more stable; however there is still potential to overload a server with excessive traffic.
Additionally, other aspects of a nationwide service generate potential issues such as multiple time zones, differing timing and channels of television programs and separate state laws.
SUMMARY OF THE INVENTION
A method of and system for enabling a distributed entertainment system over a computing device is described herein. When implementing a distributed entertainment system wherein the entertainment system is directly correlated to live events or televised programs, there are a number of issues that must be addressed such as differing timing and channels of television programs and separate state laws. Furthermore, there are a plethora of varying computing device models possibly requiring model-specific software. An “Activity Client” is provided to handle such concerns. Furthermore, since time is of the essence for activities based on live or televised events, it is necessary to ensure a computing device is able to receive the necessary updates for the program before the event begins. By providing only the needed components instead of entire data packages, the present invention is able to much more efficiently prepare users' computing devices in time.
In one aspect, a method of implementing an entertainment service on computing devices comprises downloading an activity client to a computing device, loading a set of event information to the activity client, selecting an event to participate in from a list of possible events, downloading a set of activity-specific information from a server to the computing device and executing an application corresponding to the event on the computing device. The activity client is a program for managing activity information and data. The method further comprises selecting and registering with a television-related service. The method further comprises identifying a user status. Identifying the user status includes identifying a geographic location of the computing device. The activity client is specifically designed for the computing device. Executing the application is in real-time, synchronized with the event. The set of event information includes a schedule of available events. The schedule of available events includes a name of a television event, identification of an activity to be played with the television event, a television network and local channel offering the television event, a duration of the television event and information relating to nature of a prize related to the television event. The method further comprises displaying the set of event information. The set of event information is continually broadcast from the server and received at the computing device. The set of activity-specific information includes activity-specific instructions and information related to nature of the activity and event. An activity interpreter resident in the activity client is used to execute the application. The activity interpreter combines the activity, event and device instructions to execute the activity in real-time. The application is selected from the group consisting of a game, a survey and a poll. The computing device is a wireless device. The computing device is selected from the group consisting of a set-top box, a personal computer, a gaming console, a laptop computer, a cell phone, a PDA and a combination device. The method further comprises receiving a list of assets from the server, comparing the list of assets with a first set of assets on the computing device and receiving only a second set of assets within the list of assets that are not already resident on the computing device. The method further comprises improving efficiency by prioritizing the second set of assets. The second set of assets are grouped into a set of necessary assets and a set of preferred assets.
In another aspect, a method of receiving data on a client device to participate in a specific interactive event comprises receiving a list of assets from a server, comparing the list of assets with the assets on the client device and receiving only the assets within the list of assets that are not already resident on the client device. The method further comprises selecting an activity corresponding to an event from a menu of events. The activity is a game. The method further comprises requesting the list of assets from the server that are required to participate in the specific interactive event. The list of assets are sent from the server. The method further comprises requesting the assets not already on the client device. The method further comprises improving efficiency by prioritizing the assets. The assets are grouped into a set of necessary assets and a set of preferred assets. The client device is a wireless device. The client device is selected from the group consisting of a set-top box, a personal computer, a gaming console, a laptop computer, a cell phone, a PDA and a combination device.
In another aspect, a method of receiving data on a client device to participate in a specific interactive event comprises sending a request to a server from a client device to retrieve assets needed for an activity and concurrently sending a list of the assets currently resident on the client, comparing the list of resident assets sent by the client with a previously generated list of assets on the server and downloading a packet customized for the client containing only the assets missing on the client. The method further comprises improving efficiency by prioritizing the assets. The assets are grouped into a set of necessary assets and a set of preferred assets. The client device is a wireless device. The client device is selected from the group consisting of a set-top box, a personal computer, a gaming console, a laptop computer, a cell phone, a PDA and a combination device.
In yet another aspect, a system for receiving data to participate in a specific interactive event comprises a server and a client device coupled to the server for receiving a set of activity-specific data from the server wherein the client device comprises a memory for storing an activity client. The activity client is a program for managing activity information and data. The activity client further comprises an activity interpreter. A list of assets are utilized to determine which assets are downloaded to the activity client. A set of necessary assets are downloaded to the client device. The client device is a wireless device. The client device is selected from the group consisting of a set-top box, a personal computer, a gaming console, a laptop computer, a cell phone, a PDA and a combination device.
In another aspect, a client device comprises a communication interface, an activity client for receiving activity information through the communication interface and a display for displaying the activity information received by the activity client. The activity client is a program for managing activity information and data. The activity client further comprises an activity interpreter. The activity client receives a set of assets related to an application. The application is selected from the group consisting of a game, a survey and a poll. A list of assets are utilized to determine which assets are downloaded to the activity client. Only a set of necessary assets are downloaded to the activity client. The client device is selected from the group consisting of a set-top box, a personal computer, a gaming console, a laptop computer, a cell phone, a PDA and a combination device. The activity information comprises a schedule of upcoming events, is device-specific, is geographic-specific and is activity-specific. A user navigates and selects an event from the schedule of upcoming events.
In another aspect, a server device is configured to communicate with client devices in a plurality of locations wherein the server device provides location-specific activity information to the client devices, wherein the client devices each store an activity client. The server device comprises a communications interface for communicating with the client devices, an asset module for determining which assets each client device needs and a distributing module for sending the assets needed to each client device. The activity client is a program for managing activity information and data. The activity information comprises a schedule of upcoming events. The schedule of upcoming events is activity-specific. The schedule of upcoming events is device-specific. A user navigates and selects an event from the schedule of upcoming events. The server device stores a list of assets required for the client devices to run an application. The server device sends the list of assets to the client devices. The server device sends only requested assets for each client device of the client devices. The server device compares the list of assets with a list of client assets after each client device of the client devices sends the list of client assets to the server device. The server device sends only assets in the list of assets that are not in the list of client assets for each client device of the client devices.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a flowchart of an embodiment of utilizing an “Activity Client” to ensure a cell phone or other computing device is properly configured.
FIG. 2 illustrates a flowchart of an embodiment of implementing a manifest to determine needed assets for a client computing device.
FIG. 3 illustrates a flowchart of an alternative embodiment of implementing a manifest to determine needed assets for a client computing device.
FIG. 4 illustrates an exemplary manifest of the present invention.
FIG. 5 illustrates a block diagram of an embodiment of the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
A system for and method of implementing a nationwide entertainment service on computing devices and handling the issues described above are described herein. In some embodiments, the entertainment service is subscription-based. The computing devices include, but are not limited to, set-top boxes, personal computers, gaming consoles, laptop computers, cell phones, PDAs and combination devices such as cell phone/mp3 players.
There are over 200 separate television programming areas across the country. The programming offerings available depend on each individual's physical location. There are hundreds of different printed versions of the “TV Guide,” and the same television programs will be viewed at different times and on different television channels depending on what Designated Market Area (DMA) a consumer is located in. Thus, the schedule of events for one person might be entirely different from another person located just a few miles away. Monthly and trial subscribers must be informed in advance which television programs will have games or other activities offered by the service concurrent with their telecast. For example, Jeopardy might start at 4 PM ET on Channel 7 in San Francisco, but in Chicago it starts at 6 PM ET on Channel 5, and 7 PM ET on Channel 13 in New York.
Furthermore, the schedules are continuously changing. The activity schedule changes often and must be updated by adding new activities as well as dropping activities which are based on TV programs that have finished airing or are too far into the program to allow entry.
Immediate entry into activities is also required, since time is of the essence in getting all of the required information processed and downloaded to the client. Moreover, since many contests or competitions are of short duration, a competitor might be put at a disadvantage if opportunities to earn points which determine the winners of prizes are missed at the start of the contest, therefore users must be permitted entry possibly seconds before the beginning of a contest, specifically a TV program-based contest. For other activities, such as surveys, time is not necessarily of the essence, but it is still beneficial to users, if they do not have long wait times before participating in an activity. As is described further below, an improved method is described to ensure users have the necessary components of the activity application residing in the memory of the cell phones or computing devices in time to play an activity from its beginning.
The legality of awarding prizes is based on 50 separate state laws. For example, Nevada and Utah have very different gaming laws. When games of skill are offered, each state's laws will define what constitutes a legal game of skill. The same game playable for prizes by a user at one location is not necessarily legal for a user across a state line which might be across the street. It is incumbent upon the entertainment service operator to abide by the laws in each of the jurisdictions where it has users.
Different software is occasionally needed for different makes and models of computing devices such as cell phones. A nationwide entertainment service has a universe of potential users who will utilize a wide variety of makes and models of cell phones. Many of these devices will have different capabilities and requirements regarding display, memory, user interface, and other technical requirements to operate the software necessary to provide such an entertainment service. Therefore, slightly different software is likely required for each separate make and model of a user's device.
A typical subscriber is able to play dozens of different TV-related activities in a week, including football, baseball, Wheel of FortuneTM, The ApprenticeTM and others. Most makes and models of cell phones have significant limitations on the amount of useable memory for storing downloadable application software. Therefore, a subscriber's cell phone should not be expected to hold in the temporary or permanent memory all of the software capable of running dozens of separate and discreet activity applications which might be offered by such an entertainment service. Minimizing and managing the amount of memory required to fully enjoy the entertainment service is essential.
The present invention utilizes a software application, referred to as an “Activity Client.” The “Activity Client” is retained in a user's computing device's memory. A variety of methodologies are implemented for downloading the “Activity Client” into memory of the cell phone or other computing device utilized. In an embodiment, the “Activity Client” is preloaded prior to purchase by a manufacturer or carrier. In an alternative embodiment, in order to initiate the service, a subscriber once registered, selects the company's “Activity Client” from a menu on the cell phone or other computing device from a list of activities, games and other entertainment services offered by a wireless service provider such as VerizonTM Wireless or SprintTM. In some embodiments, if the activity is to be participated other than on a trial basis, registration and billing arrangements with the service will be accomplished either on the company's internet site, or by inputting registration information utilizing the cell phone or other computing device.
Upon selecting the company's service from this menu, a data connection is made to either the cellular service provider or the company's server, and the “Activity Client” is downloaded to the user's cell phone or other computing device. An example protocol implemented is TCP. In the cell phone embodiment, the process of downloading the “Activity Client” is similar to the current methods whereby discrete cell phone activities are selected, downloaded, and previewed or purchased.
In some embodiments, the downloaded “Activity Client” resides in the cell phone's compact flash memory. When the user subsequently launches the “Activity Client” on his/her cell phone or other computing device, a data connection is made to a server. After the user is authenticated and their entitlement level has been determined, the authorized and geographic-specific schedule of events is sent down to his/her phone. Using this approach, the schedule is continuously updated while the “Activity Client” is active.
The “Activity Client” in its default mode, utilizes the LCD on the cell phone to display the entertainment beginning with the next scheduled activities yet to start, generally on the half hour. Since the registration process provides the service provider with the make and model of each user's phone, all “Activity Client” downloads are specific for that phone and service. Thus, for example, if a user downloads the “Activity Client” to his Samsung phone on a Verizon Wireless network, subsequent downloads to that phone will function properly as they are specifically designed for that phone.
To address the issue of numerous programming areas across the country, in one embodiment, the legally mandated ability of the cellular networks to accurately identify the physical location of every cell phone is utilized. Alternatively, and when using computing devices other than a cell phone, other information is utilized to locate the user, such as area code, zip code, or the billing address provided by the user. Based on the information acquired or provided, the server selects the specific schedule of activities, along with start times and TV channel designation for the location for this particular user. The scheduling information is downloaded into a template residing in the “Activity Client.” For example, a user located in the Indianapolis, Ind. television DMA might receive a schedule which includes 9:00 pm Monday Night Football, ABC, Channel 13.
In an alternative embodiment, another methodology is utilized wherein specific scheduling information is continually broadcast to all of the users' phones, either utilizing SMS messages to “wake” the phone or, by utilizing a 3G “always on” multicast to update the schedule continually without user intervention, as long as the user's telephone is powered on.
The server, when determining the location of the cell phone, also accesses information concerning each specific activity offered as to whether or not it has been determined that the activity meets the applicable state law requirements of the game of skill for each particular participant. The user is then informed as to whether or not a prize will be offered to the competitors in this activity from their location.
In addition to containing software for enabling the continual receipt and updating of schedules and activity playing information specific to each user's geographic location, the “Activity Client” has the ability to receive and hold downloaded activity-specific data instructions from the server. Thus, when a specific activity is selected for play by the user, for example, Monday Night FootballTM, Wheel of FortuneTM, or Major League BaseballTM, the server downloads the activity-specific instructions into a memory space provided for this purpose in the “Activity Client.” These activity-specific data instructions are based on the specific genre such as football, specific event such as San Francisco 49ers vs Dallas Cowboys and the specific computing device such as a wireless mobile device such as SanyoTM 4300. Thereafter, the specific activity instructions temporarily reside inside the “Activity Client” until the next activity playing session, where it is replaced by different activity-specific data instructions selected by the user.
In an alternative embodiment, the system described herein is used to schedule and control duplicate activities of skill or chance with a common scheduled start time, played simultaneously, which are self contained, for example, not related to a television program. Examples of such include a trivia game, or classic card, dice, word games or games based on television clips.
FIG. 1 illustrates a flowchart of an embodiment of utilizing an “Activity Client” to ensure a cell phone or other computing device is properly configured. In the step 100, a user selects from a menu provided by his web service provider or cellular service operator, for example, Verizon WirelessTM, CingularTM, or SprintTM, the TV related subscription service or other service. In the step 102, the user registers with the subscription service when necessary. For some activities, registration is required, but for others, registration is optional or not even available. After registration, if necessary, the user receives a downloaded “Activity Client” into his cell phone or other computing device, specific to the device's make and model in the step 104. In the step 106, to access the entertainment service, the “Activity Client” is selected by the user from the menu, and the device connects via the cellular network and/or internet to the service provider's server. Alternatively, after the “Activity Client” is downloaded, the device automatically connects to the server. In the step 108, the server identifies the user's status as a “trial” subscriber, “ad hoc” competitor, or “full monthly” subscriber, and identifies the specific geographic location of the user. In the step 110, a current schedule of all available events, by name of event, TV network and channel offered, duration of event, and the nature of the prize, and where appropriate, information that indicates that the activity is able to be played for a prize in the user's locale or not, is loaded into the “Activity Client” and displayed on the device's LCD. In an alternative embodiment, once the “Activity Client” is resident on the user's device, scheduling information is continually “pushed” or “broadcast” and passively received and updated on the “Activity Client” so that it is instantly accessed, current and up to the minute. In the step 112, the user selects the event he/she desires to play along with from a variety of possibilities presented on the device. In the step 114, the “Activity Client” software connects to the company's server, and the activity-specific instructions for a specific device, the nature of the activity, and the specific event are downloaded into the “Activity Client.” In the step 116, the “Activity Client” then utilizes the activity interpreter resident in the “Activity Client” and starts the activity application. In the step 118, the activity interpreter that resides in the “Activity Client” combines the activity, event, and device instructions and uses these data instructions to execute the activity application as it unfolds in real-time, synchronized with the television programming or live event being viewed by the user.
Additionally, managing different types of software assets or components required by different models of computing devices such as cell phones offered by a variety of cellular carriers or web service providers is described herein. To successfully participate in an activity of skill, based on a television show or live event, a user's cell phone needs specific software to manage, for example, the images displayed on the LCD display, the sound effects utilized by the activity, the activity scripts, the advertising copy and images which are displayed interstitially during the activity, and event-specific data generated in real-time and synchronized with the unfolding of a television show or live event. Complexity is further compounded by the fact that the assets change in minor or major part from activity to activity. For example, from football to baseball to JeopardyTM, there are changes to these assets. Some cellular phones are able to retain some or all of the assets in the phone's memory if the activity to be played was the last activity partaken by a user. Other phones retain some or part of the assets which are common to different genres of activities. Yet other phones retain none of the assets. For example, a first time user or frequent user whose assets were replaced by an upload for a different genre of activity would likely have none of the assets.
Regardless of what type of device is used and on whichever service, the present invention ensures that the application in each user's device receives all of the specific assets necessary for that particular genre of activity for a specific scheduled event while minimizing capacity and latency issues by assuring that only the necessary assets which are not resident on the device for the event are delivered on a timely basis to each cell phone. By using an implementation that only sends necessary missing data, less information needs to be transferred therefore there is less traffic congestion, and users are able to receive the necessary components on time.
Although a cell phone is used in the example above, the present invention is not limited to cell phones. As described above and below, the present invention is applicable to a variety of computing devices in addition to cellular telephones.
FIG. 2 illustrates a flowchart of an embodiment of implementing a manifest, which is a list of assets, to determine needed assets for a client computing device. In the step 200, a user selects an activity from a menu which triggers a program in the user's client computing device which contacts a server and requests a manifest of assets, from the server, that are required to participate in a specific interactive event. The server then sends the manifest to the client, in the step 202. In the step 204, the client then compares the received manifest to the assets currently resident in the computing device. The client then requests from the server the assets it needs to have resident in the client to obtain a full compliment of required software necessary to participate in the activity, in the step 206. The server then sends a package containing only the assets necessary to complete the manifest resident on the client computing device in the step 208.
FIG. 3 illustrates a flowchart of an alternative embodiment of implementing a manifest to determine needed assets for a client computing device. Upon receiving input that a specific activity is about to be undertaken, the client sends a request to the server to retrieve all of the assets it needs for a particular activity while also sending a listing of the assets currently resident on the client, in the step 300. The server having previously generated the manifest for the event, then compares the list of resident assets sent with the request in the step 302, and then downloads a single packet customized for the client containing only the assets missing on the client, in the step 304.
FIG. 4 illustrates an exemplary manifest of the present invention. Assets listed in a manifest 400, range in necessity from those that are absolutely required to those that are preferable. To further improve efficiency when delivering components to a user's computing device, the manifest 400 is able to prioritize the assets for the client device to resolve. In some embodiments, the manifest groups the assets into two sets of assets: a first set 402 of required assets and a second set 404 of preferable assets. Furthermore, the assets within each group are able to be ordered utilizing priorities ensuring that the most important assets in the group are first. For example, the server sends the following list of assets required for an event—A, D, and (E, F and H). The assets (E, F and H) are grouped in the response so that the client knows that at least one of them is necessary for the client to join the event. Additionally, the order in which the assets are listed is able to provide additional information to the client device about their priority. For instance, in the example above, the asset E is the most preferred asset 406, then F and finally H within the first set 402 of required assets. If the client has none of the assets, it is able to only request E, depending on the current constraints such as time remaining before the start of the event, the size of the memory on the client device and other similar considerations. Although the manifest used in the example above only has two levels and five total assets, the size of the manifest is able to be modified as desired. If three levels of groupings are preferred, then that hierarchy is able to be implemented. Furthermore, more or less than five assets are able to be included within the manifest, as appropriate.
By minimizing the amount of temporary memory utilized for each application in the client, the time necessary to load the software to play an event is decreased, and the memory of each client is used more efficiently. Thus, the server is able to minimize this overhead by only sending the assets which the client specifically needs for a specific application at a specific time. In one embodiment, the client is provided flexibility in terms of managing the assets it needs for the activities. In another embodiment, the processing that needs to be performed by the client is minimized.
FIG. 5 illustrates a block diagram of an embodiment of the present invention. A computing device 500 such as a set-top box, personal computer, gaming console, laptop computer, cell phone, PDA or combination cell phone/mp3 device includes a memory 502 for storing data. As described above, the memory 502 varies in size depending on the type and brand of computing device, where more recently produced computing devices have larger memories and are thus able to store more data. However, older computing devices only store a minimal amount of data. Within the memory an “Activity Client” 504 is stored for receiving activity-specific data 508. The activity-specific data 508 includes instructions for a specific computing device, the nature of the activity and the specific event. By utilizing a manifest 514 received from a server 512, wherein the manifest 514 includes assets for running the activity, the computing device 500 is able to efficiently retrieve the activity-specific data 508. A list of needed assets 516 by the computing device 500 is sent from the computing device 500 back to the server 512. Then, the necessary assets 518 are downloaded to the memory 502 of the computing device 500. An activity interpreter 506 within the “Activity Client” utilizes the activity-specific data 508 to start the activity application by combining the activity, event and device instructions and executing the activity in real-time. The computing device 500 also includes a display 520, a communication interface 522 and other standard components necessary for proper functionality. The server 512 also includes a communications interface 524 for communicating with the client device 500, an asset module 526 for determining which assets the client device 500 needs and a distributing module 528 for sending the assets needed to the client device 500.
The present invention is applicable to any communicating computing devices such as set-top boxes, personal computers, gaming consoles, laptop computers, cell phones, PDAs and combination devices such as cell phone/mp3 players. The computing devices must have access to a network, but are able to be wired or wireless. The computing devices also are able to be mobile or stationary. Furthermore, the network is able to include a cellular network, a web-based network or any other information sharing network.
The activities that are able to be participated in utilizing the present invention include, but are not limited to, games, polls, surveys, and other interactive activities.
In one specific embodiment, a user utilizes a wireless device, such as a cell phone to subscribe to an interactive gaming service. The user then registers with the service and downloads an “Activity Client” into the cell phone where the “Activity Client” is specifically configured for that type of cell phone. Then, the cell phone connects through the cellular network and Internet to a game server. The game server identifies the user's status including the specific geographical location. A current schedule of all available events, by name of TV event, identification of the game to be played with the TV event, TV network and channel offered, duration of event, and the nature of the prize is then downloaded to the “Activity Client.” After a user views the schedule and other information, the user is able to select the event they want to play along with. Then, the “Activity Client” connects to the game server and game-specific data is downloaded. In instances where some of the game-specific data is already downloaded in the cell phone's memory, only those assets that are not already there are downloaded. Preferably, necessary assets are downloaded first and then preferred assets are downloaded. This ensures that a user will be able to play along with the game on time. Then, the “Activity Client” utilizes the game interpreter resident to start the game. The game interpreter also combines the game, event and device instructions to execute the game in real-time while synchronized with the television programming.
The present invention is also intended to apply to any kind of application software which utilizes a variety of assets, where some of the assets are maintained on a remote server such as playing video games, listening to music and web browsing.
To utilize the present invention, a user has a computing device, such as a cell phone, or other appropriate computing device with which he is able to subscribe to an interactive entertainment service. The user then registers with the service and downloads an “Activity Client” into the computing device where the “Activity Client” is specifically configured for that type of device. Then the computing device connects through to a server. The server identifies the user's status including the specific geographical location. A current schedule of all available events, by name of TV event, identification of the activity to be played with the TV event, TV network and channel offered, duration of event, and the nature of the prize is then downloaded to the “Activity Client.” After a user views the schedule and other information, the user is able to select the event they want to play along with. Then, the “Activity Client” connects to the server and activity-specific data is downloaded. In instances where some of the activity-specific data is already downloaded in the computing device's memory, only those assets that are not already there are downloaded. Preferably, necessary assets are downloaded first and then preferred assets are downloaded. This ensures that a user will be able to play along with the activity on time. Then, the “Activity Client” utilizes the activity interpreter resident to start the activity. The activity interpreter also combines the activity, event and device instructions to execute the activity in real-time while synchronized with the television programming.
In operation, a user is able to use his cell phone or other computing device to enjoy interactive entertainment. For example, the user scrolls through the menus and selects the interactive entertainment desired to be played. Thereafter, downloads occur, and instructions and options are displayed on the display so that a user is able to read about and determine which interactive entertainment he wants to play. After selecting the activity, again further downloads occur to ensure the proper components are installed on the user's computing device. For example, if it is a Sunday afternoon at 12:50 PM PT, and a user in San Francisco, Calif. sees that the San Francisco 49ers are playing the Oakland Raiders at 1:00 PM PT, he is able to select that activity to play. The user also watches the activity on television. In other embodiments, the activity is watched on other devices such as a computer, the cell phone or computing device itself, or live. At 1:00 PM PT, when the activity starts, the user is able to interactively play along with what he is viewing by predicting aspects of the activity.
Although a cell phone has been used throughout the present specification as the main exemplary computing device, it should be understood that any computing device is able to be used within the described method and system.
The present invention has been described in terms of specific embodiments incorporating details to facilitate the understanding of principles of construction and operation of the invention. Such reference herein to specific embodiments and details thereof is not intended to limit the scope of the claims appended hereto. It will be readily apparent to one skilled in the art that other various modifications may be made in the embodiment chosen for illustration without departing from the spirit and scope of the invention as defined by the claims.

## Claims

1. A method of implementing an entertainment service on computing devices comprising:
downloading an activity client to a computing device;
selecting and registering with an entertainment service;
loading a set of event information related to a location of the computing device to the activity client, wherein the location determines the set of event information to be loaded, further wherein the location determines a geographic-specific schedule of events, wherein the set of event information includes a schedule of available events, further wherein the schedule of available events includes a name of a television event, identification of an activity to be played with the television event, a television network and local channel offering the television event, a duration of the television event and information relating to nature of a prize related to the television event;
selecting an event from the activity client to participate in by a user from a list of possible events;
downloading a set of activity-specific information related to an activity from a server to the computing device; and
executing an interactive application corresponding to the event on the computing device.

2. The method as claimed in claim 1 wherein the activity client is a program for managing activity information and data.

3. The method as claimed in claim 1 further comprising identifying a user status.

4. The method as claimed in claim 3 wherein identifying the user status includes identifying a geographic location of the computing device.

5. The method as claimed in claim 1 wherein the activity client is specifically designed for the computing device.

6. The method as claimed in claim 1 wherein executing the application is in real-time, synchronized with the event.

7. The method as claimed in claim 1 further comprising displaying the set of event information.

8. The method as claimed in claim 1 wherein the set of event information is continually broadcast from the server and received at the computing device.

9. The method as claimed in claim 1 wherein the set of activity-specific information includes activity-specific instructions and information related to nature of the activity and event.

10. The method as claimed in claim 1 wherein an activity interpreter resident in the activity client is used to execute the application.

11. The method as claimed in claim 10 wherein the activity interpreter combines the activity, event and device instructions to execute the activity in real-time.

12. The method as claimed in claim 1 wherein the application is selected from the group consisting of a game, a survey and a poll.

13. The method as claimed in claim 1 wherein the computing device is a wireless device.

14. The method as claimed in claim 1 wherein the computing device is selected from the group consisting of a set-top box, a personal computer, a gaming console, a laptop computer, a cell phone, a PDA and a combination device.

15. The method as claimed in claim 1 further comprising:
a. receiving a list of assets from the server;
b. comparing the list of assets with a first set of assets on the computing device;
c. receiving only a second set of assets within the list of assets that are not already resident on the computing device.

16. The method as claimed in claim 15 further comprising improving efficiency by prioritizing the second set of assets.

17. The method as claimed in claim 16 wherein the second set of assets are grouped into a set of necessary assets and a set of preferred assets.

18. The method of claim 1 wherein the application comprises an interactive activity.

19. The method of claim 1 wherein the entertainment service comprises a game service.

20. The method of claim 1 wherein the entertainment service comprises a television-related service.

21. A method of implementing an entertainment service at a server comprising:
receiving information registering with the entertainment service from one or more computing devices;
downloading an activity client from the server to the one or more computing devices;
determining a location of each of the one or more computing devices;
for each of the one or more computing devices, loading a set of event information related to the location of the computing device to the activity client, wherein the location determines the set of event information to be loaded, further wherein the location determines a geographic-specific schedule of events, wherein the set of event information includes a schedule of available events, further wherein the schedule of available events includes a name of a television event, identification of an activity to be played with the television event, a television network and local channel offering the television event, a duration of the television event and information relating to nature of a prize related to the television event;
downloading a set of activity-specific information related to an activity from the server to one or more of the computing devices.

22. The method of claim 21 wherein the entertainment service comprises a game service.

23. The method of claim 21 wherein the entertainment service comprises a television-related service.

24. The method of claim 21 further comprising executing an application corresponding to a selected event on the computing device.

25. The method of claim 24 wherein the application is an interactive activity.

26. The method of claim 24 wherein the application is selected from the group consisting of a game, a survey and a poll.

27. The method of claim 24 wherein the application is synchronized with television programming.

28. The of claim 21 wherein downloading the set of activity-specific information comprises:
receiving a list of assets from the server;
comparing the list of assets with a first set of assets on the computing device; and
receiving only a second set of assets within the list of assets that are not already resident on the computing device.

29. A method of implementing an entertainment service on computing devices comprising:
downloading an activity client to a computing device;
selecting and registering with an entertainment service;
loading a set of event information related to a location of the computing device to the activity client, wherein the location determines the set of event information to be loaded, wherein the set of event information includes a schedule of available events, further wherein the schedule of available events includes a name of a television event, identification of an activity to be played with the television event, a television network and local channel offering the television event, a duration of the television event and information relating to nature of a prize related to the television event;
selecting an event from the activity client to participate in by a user from a list of possible events;
downloading a set of event-specific information related to an activity from a server to the computing device including:
receiving a list of assets from the server;
comparing the list of assets with a first set of assets on the computing device;
receiving only a second set of assets within the list of assets that are not already resident on the computing device; and

executing an interactive application corresponding to the event on the computing device.

30. The method of claim 29 wherein the entertainment service comprises a game service.

31. The method of claim 29 wherein the entertainment service comprises a television-related service.

32. The method of claim 29 wherein the application is selected from the group consisting of a game, a survey and a poll.

33. The method of claim 29 wherein the application is synchronized with television programming.

34. A method of implementing an entertainment service on computing devices comprising:
selecting and registering with an entertainment service;
downloading an activity client to a computing device;
loading a set of game information related to a location of the computing device to the activity client, wherein the location determines the set of game information to be loaded, wherein the set of event information includes a schedule of available events, further wherein the schedule of available events includes a name of a television event, identification of an activity to be played with the television event, a television network and local channel offering the television event, a duration of the television event and information relating to nature of a prize related to the television event;
selecting a game from the activity client to participate in by a user from a presented list of possible games constructed from the set of game information;
downloading a set of activity-specific information related to an activity from a server to the computing device; and
executing an interactive application corresponding to the game on the computing device.

35. The method of claim 34 wherein the entertainment service comprises a game service.

36. The method of claim 34 wherein the entertainment service comprises a television-related service.

37. The method of claim 34 wherein the application is selected from the group consisting of a game, a survey and a poll.

38. The method of claim 34 wherein the application is synchronized with television programming.