ASSET PURCHASE AGREEMENT

EX-10.1 2 v124132_ex10-1.htm
TRADEMARK
Docket No. 556292401300
 
ASSET PURCHASE AGREEMENT
 
ASSET PURCHASE AGREEMENT (the “Agreement”) dated as of August __, 2008, by and between Phantom Entertainment, Inc., a Delaware corporation (the “Seller”), and Phantom Game Service, Inc., a Delaware corporation (the “Purchaser”).
 
W I T N E S S E T H:
 
WHEREAS, Seller is engaged in the business of manufacturing and marketing the Phantom Lapboard;
 
WHEREAS, subject to the terms and conditions hereof, Seller desires to sell, transfer and assign to Purchaser, and Purchaser desires to purchase from Seller, all of the properties, rights and assets, of Seller, as listed on Schedule A, attached hereto;
 
WHEREAS, the Board of Directors of the Seller have approved this Agreement and the transactions contemplated by this Agreement; and
 
WHEREAS, the Board of Directors of Purchaser have approved this Agreement and the transactions contemplated by this Agreement;
 
NOW, THEREFORE, in consideration of the premises and the mutual covenants and agreements hereinafter contained, the parties hereby agree as follows:
 
1  Sale and Transfer of Assets. On the terms and subject to the conditions set forth in this Agreement, at the Closing, and effective as of the Closing Date (as defined below), Seller agrees to sell, assign, transfer and deliver to Purchaser, and Purchaser agrees to purchase from Seller, all of Seller’s right, title and interest in and to the assets of the Seller, the assets listed on Schedule A, attached hereto, free from any and all liabilities. The assets, properties and business of Seller being sold to and purchased by Purchaser under this Section 1 are referred to herein collectively as the “Assets.”
 
2. Closing. The closing of this Agreement (the "Closing") shall take place at a place mutually determined by Seller and Buyer on or before 5:00 P.M. EST, on the date hereof or at such other date or time as Buyer and Seller may agree upon (the date of Closing being hereinafter referred to as the "Closing Date").
 
3.  Purchase Price.
 
3.1.  Purchase Price. In consideration of the sale by Seller to Buyer of the Assets and satisfaction of the conditions contained herein, Buyer shall pay to the Seller the sum of Sixty Five Thousand ($65,000) dollars (the “Principal Amount”).
 
3.2  Payment of Purchase Price. The Buyer shall pay to Seller an initial payment of Thirty Thousand Dollars ($30,000) 30 days from the Closing Date; Ten Thousand ($10,000) dollars 60 days from the Closing Date thereafter; and Twenty Five Thousand ($25,000) dollars shall be paid 120 days from the Closing Date. In the event that Buyer raises any equity and/or debt in the subsequent to the Closing Date, the funds raised by such subsequent financing shall be applied to the payment of the Purchase Price. The buyer shall also pay 49% of the authorized shares of Phantom Game Service, Inc to Phantom Entertainment, Inc. Phantom Game Service, Inc will issue a stock certificate and deliver it to Phantom Entertainment within 30 days from contract execution date. The stock certificate shall be titled in the name Phantom Entertainment, Inc.


 
3.3 Licensing of Trademarks. On the third anniversary date of this contract, the Buyer shall agree to pay One Hundred Thousand Dollars ($100,000) dollars to license certain trademarks (see schedule A and H). Both Phantom Game Service, Inc and Phantom Entertainment will agree to allow the other company the right to use any of the trademarks in Schedule H. The term of this licensing agreement will be 99 years.
 
3.4 Royalty Payments to Phantom Entertainment. Phantom Game Service, Inc. will agree to provide Phantom Entertainment a royalty payment of 7% of the annual gross revenue from the companies online game sales through the Phantom Game Service Software. Phantom Game Service, Inc. will agree to provide Phantom Entertainment with full audited financials at the end of each year starting on the end of the first year from the signing of this contract.
 
4. Documents to be Delivered.
 
4.1 Documents to be Delivered by the Seller. At the Closing, the Seller shall deliver, or cause to be delivered, to the Purchaser such documents as the Purchaser shall reasonably request.
 
4.2 Documents to be Delivered by the Purchasers. At the Closing, the Purchaser shall deliver to the Seller such documents as the Seller shall reasonably request.
 
5.  Representations and Warranties of the Seller.
 
As an inducement to Buyer to enter into this Agreement and to consummate the transactions contemplated herein, Seller represents and warrants as follows:
 
5.1.  The Seller is a corporation duly organized, validly existing and in good standing under the laws of Delaware.
 
5.2 The execution, delivery and performance of this Agreement and all other agreements to be entered into in connection therewith have been duly authorized by the Board of Directors of the Seller and by all necessary corporate action, and do not violate or conflict with any provisions of the corporate documents of the Seller or any agreement, instrument, law or regulation to which the Seller is a party or by which Purchaser is bound.
 
5.3  Seller has the power and the authority and all licenses and permits required by governmental authorities to own and operate its properties and carry on its business as now being conducted. The Seller does not have any subsidiaries.
 
5.4  Seller has authority to execute and perform this Agreement and all other agreements to be entered into in connection with the transactions contemplated hereby.
 
5.5 Purchaser shall accept the assets "as is" without warranty as to their condition and operation.
 
5.6 Seller is the owner of and has good and marketable title to all of the Assets enumerated in Schedule A, attached hereto, free from all encumbrances.

2


5.7 Seller recognizes that the intangible assets have nominal value as of the Closing Date.
 
All representations and warranties made by Seller shall survive the Closing.
 
6.  Representations and Warranties of Buyer.
 
As an inducement to Seller to enter into this Agreement and to consummate the transactions contemplated herein, Purchaser represents and warrants as follows:
 
6.1.  Purchaser is a corporation duly organized, validly existing and in good standing under the laws of the State of Delaware. Purchaser has the power and the authority and all licenses and permits required by governmental authorities to own and operate its properties and carry on its business as now being conducted.
 
6.2.  Purchaser has the corporate power and authority to execute and perform this Agreement and all other agreements to be entered into in connection with the transactions contemplated hereby.
 
6.3.  The execution, delivery and performance of this Agreement and all other agreements to be entered into in connection therewith have been duly authorized by the Board of Directors of the Purchaser and by all necessary corporate action, and do not violate or conflict with any provisions of the corporate documents of the Purchaser or any agreement, instrument, law or regulation to which the Purchaser is a party or by which Purchaser is bound.
 
6.4.  No approval or authorization of this Agreement or any other agreement to be entered into in connection with the transactions contemplated by this Agreement is required by law or otherwise in order to make this Agreement or any other agreements entered into in connection herewith binding upon the Purchaser. Upon the execution and delivery of this Agreement and any other agreement in connection therewith, this Agreement and any other such agreements will constitute legal, valid and binding obligations of Buyer, enforceable in accordance with their respective terms.
 
7.  Covenants Prior to Closing. During the period from the date hereof through the Closing, the Seller covenants and agrees with Buyer that Seller hereby assumes all risk of loss, damage or destruction resulting from fire or other casualty to the time of transfer of assets and Closing.
 
8.  Benefit of Parties; Assignment. This Agreement shall be binding upon the personal representatives, successors and assignees of the parties. This Agreement and any accompanying instruments and documents include the entire transaction between the parties and there are no representations, warranties, covenants or conditions, except those specified herein or in accompanying instruments and documents.
 
9.  Termination of Agreement. This Agreement may be terminated at any time prior to the Closing:
 
(a)  by mutual consent of the Seller and the Buyer; and
 
(b)  by either the Seller or the Buyer if this Agreement shall not have been consummated on or before September 1, 2008; provided, however, that a material breach of this Agreement by a terminating party shall not be the reason for the failure of the Closing to occur.

3

 
10.  Indemnification by Seller. Seller hereby agrees to indemnify Purchaser against and hold it harmless from any and all losses, liabilities, costs, damages, claims and expenses (including, without limitation, attorneys fees and expenses incurred by Purchaser in any action or proceeding between Purchaser and Seller or between Buyer and any third party or otherwise) ("Damages") which Purchaser may sustain at any time by reason of (i) noncompliance with any applicable bulk sales or transfer law, (ii) any liability or contract of, or claim against, Seller, whether contingent or absolute, direct or indirect, known or unknown, matured or unmatured (including but not limited to liabilities for taxes), (iii) any liability or claim arising in any way from any service rendered, or action taken by, or relating to the operations of, Seller prior to the Closing Date, (iv) any liability or claim under an environmental laws relating to any event, action or failure to act which occurred prior to the Closing Date, or (v) the breach or inaccuracy of or failure to comply with, or the existence of any facts resulting in the inaccuracy of, any of the warranties, representations, conditions, covenants or agreements of Seller contained in this Agreement or in any agreement or document delivered pursuant hereto or in connection herewith, or arising out of the consummation of the transactions contemplated hereby. Purchaser shall have the right to set-off and deduct any Damages incurred by it under this Agreement from any payments required to be made by Purchaser or under any other obligation of Purchaser to Seller.
 
11.  Survival of Representations and Warranties. All representations and warranties contained herein, and all other representations and warranties of the Seller and Purchaser contained in the instruments executed in connection with the consummation of the transactions provided for herein, shall survive the execution of this Agreement, the consummation of the sale contemplated hereby and any investigation made by any party hereto.
 
12.  Notices. All notices, requests, demands, documents and other communications given or due hereunder shall hereafter be made in writing and shall be deemed to have been duly given when hand delivered, when received if sent by telecopier or by same day or overnight recognized commercial courier service or three days after being mailed by certified or registered mail, postage prepaid:

if to Seller to:               Phantom Entertainment, Inc.
222 Grace Church St., Ste. 302
Port Chester, NY 10573
Tel: (201) 560-2500
Fax: ( ) -
Attn: John Landino

and if to Purchaser to:        Phantom Game Service, Inc.
Timothy M Roberts
20009 Lomond Lane
Tampa, Fl 33647
Tel: (314) 825-4964
Fax: (877) 482-9585
Attn: Timothy Roberts

13.  Governing Law. This Agreement shall be governed in all respects by the laws of the State of Florida.
 
[SIGNATURE PAGE TO FOLLOW]

4

 
IN WITNESS WHEREOF, the parties hereto have set their hands and seals, the date and place first above written.
 
Phantom Entertainment, Inc.
   
   
 
Name:
John Landino
Title:
Chief Executive Officer
 
   
 
Name:
John Landino
Title:
Board of Directors
   
 
Name:
Dick Angelotti
Title:
Board of Directors
   
Phantom Game Service, Inc.
   
 
Name:
Timothy Roberts
Title:
Chief Executive Officer

5

 
SCHEDULE A
 
ASSETS TO BE PURCHASED WITH DESCRIPTIONS
 
 
1.
Phantom Game Service encoding engine software
 
 
2.
Phantom Game Service client software
 
 
3.
Phantom Game Service server software
 
 
4.
All Game Service database software
 
 
5.
All Game Service scripting and middleware software
 
 
6.
Phantom Game Service trademark – see Schedule B
 
 
7.
Any Game Any Tim trademark – see Schedule C
 
 
8.
Phantom Game Service patents – see Schedule D
 
 
9.
Chart of Trademarks to be acquired – see Schedule E
 
 
10.
Chart of Trademarks to be licensed with joint right to use – see Schedule H
 
 
11.
Any publisher agreements which are assignable including but not limited to the below (see Schedule G):
 
 
1.
Vivendi
 
 
2.
Riverdeep
 
 
3.
Enlight
 
 
4.
Edios
 
 
5.
Codemasters
 
 
6.
Atari
 
 
12.
Any marketing, collateral or legal contracts for the phantom game service, publisher agreements, royalty agreements, propaganda, logos, designs, diagrams
 
 
1.
PowerPoint Corporate, Technical and any other presentations used for marketing
 
 
2.
Collateral Materials, product sheets, investor documents, Phantom Game Service Logos, Phantom Game Service Letterhead, Phantom Game Service graphics, Phantom Game Service diagrams
 
 
3.
Legal Contracts, Royalty Agreements, Publisher Agreements, Confidentiality Agreements, Loan Agreements, Equity Agreements, Employment Agreements, Human Resource Documents and Agreements, S8 Agreements, board agreements, advisory board agreements, separation agreements, consulting agreements, service agreements, investor agreements or any other document which was developed and can be reused for Phantom Game Service.
 
 
4.
Patents – Any patents which were designed and not yet filed with the UPTSO, and all patents which were filed with the UPTSO. All designs developed for the Phantom Game Service for the patents or to show the engineering process.
 
6


 
5.
Marketing – Any banner ads, graphic designs, and logo designs for the Phantom Game Service, advertising, ads and videos. Custom marketing video developed by 2advanced studios
 
 
6.
Websites – Whoswestudios website design
 
 
13.
Operating Plans – any operating plans, pro-formas or cash flow statements for the phantom game service.
 
 
14.
Market Research – see schedule F
 
 
1.
Any market research which was developed to show the consumer demand, statistics, market size, consumer information, feasibility studies, demographics or any other information which can be used to substantiate and validate the game services.
 
 
15.
Phantom SharePoint server database
 
 
16.
Phantom game receiver with patents, engineering documents, diagrams
 
 
17.
Gold Master CD’s per the publisher agreements
 
 
18.
www.phantomgameservice.com, www.phantom-gs.com, www.phantom-gs.net, www.phantomgamingservice.net, domain names
 
7

 
SCHEDULE B
 
Phantom Game Service Trademark - Certification of Registration No. 2,961,733, issued on June 14, 2005, by the U.S. Patent and Trademark Office.
 

8

 
SCHEDULE C
 
Any Game Any Time trademark
 
 

CERTIFICATE OF HAND DELIVERY
 
I hereby certify that this correspondence is being hand filed with the United States Patent and Trademark Office in Arlington, VA on March __, 2004.
 
________________________________________
 Archie Fisher

 
IN THE UNITED STATES PATENT AND TRADEMARK OFFICE
 
Mark:  ANY GAME, ANY TIME
 
Classes: 9 and 41
 

 
TRADEMARK/SERVICE MARK APPLICATION,
PRINCIPAL REGISTER, WITH DECLARATION
 
BOX NEW APP FEE
Commissioner for Trademarks
2900 Crystal Drive
Arlington, VA ###-###-####

APPLICANT NAME:
Infinium Labs, Inc.
   
APPLICANT BUSINESS ADDRESS:
2033 Main Street, Suite 309
Sarasota, Florida 34237
 
APPLICANT ENTITY:
 
 
¨
Individual - Citizenship (Country):
 
 
¨
Partnership - State where organized (Country, if appropriate):
 
   
Names and Citizenship (Country of General Partners):
 
 
ý
Corporation - State (Country, if appropriate) of Incorporation:
Delaware
 
 
¨
Other (Specify Nature of Entity and Domicile):

9

 
GOODS AND/OR SERVICES:
 
Applicant requests registration of the trademark/service mark shown in the accompanying drawing in the United States Patent and Trademark Office on the Principal Register established by the Act of July 5, 1946 (15 U.S.C. § 1051 et seq., as amended) for the following goods/services:
 
Interactive computer game consoles, in International Class 9; and,

Entertainment services, namely, providing interactive computer gaming network that allows end-users to demo, rent, purchase and play computer games, in International Class 41.
 
BASIS FOR APPLICATION:
 
ý Applicant has a bona fide intention to use the mark in commerce on or in connection with the above-identified goods/services. (15 U.S.C. § 1051(b), as amended.)

POWER OF ATTORNEY
 
Applicant hereby appoints Matthew D. Berger, Philip T. Besirof, Barry E. Bretschneider, Thomas E. Ciotti, Kelly C. Crabb, John F. Delaney, Stephen C. Durant, Kimberly A. Eckhart, Douglas Hendricks, Lynn M. Humphreys, Gladys H. Monroy, Kate H. Murashige, Carole E. Reagan, Debra A. Shetka, Andrew N. Spivak, Allen Z. Sussman, Rosemary S. Tarlton, Jennifer Lee Taylor, and Dean J. Zipser, all members of a bar of a state in the United States, as its attorneys with full power of substitution and revocation, to prosecute the application to register, and to transact all business in the Patent and Trademark Office in connection therewith and to receive the Certificate of Registration.
 
Please direct all communications to:
 
Andrew N. Spivak
Morrison & Foerster llp
1650 Tysons Boulevard, Suite 300
McLean, Virginia 22102
 
Please direct all telephone calls to Andrew N. Spivak at ###-###-####.

10

 
DECLARATION
 
The undersigned being hereby warned that willful false statements and the like so made are punishable by fine or imprisonment, or both, under 18 U.S.C. § 1001, and that such willful false statements may jeopardize the validity of the application or any resulting registration, declares that he/she is properly authorized to execute this application on behalf of the applicant; he/she believes the applicant to be the owner of the trademark/service mark sought to be registered, or, if the application is being filed under 15 U.S.C. § 1051(b), he/she believes applicant to be entitled to use such mark in commerce; to the best of his/her knowledge and belief no other person, firm, corporation, or association has the right to use the above-identified mark in commerce, either in the identical form thereof or in such near resemblance thereto as to be likely, when used on or in connection with the goods/services of such other person, to cause confusion, or to cause mistake, or to deceive; and that all statements made of his/her own knowledge are true and all statements made on information and belief are believed to be true.
 
   
Infinium Labs, Inc.
     
 
   
Date
 
Signature
     
     
   
Print Name and Title

11

 
TRADEMARK
Docket No. 556292401300
 
APPLICANT:
 
Infinium Labs, Inc.
ADDRESS:
 
2033 Main Street, Suite 309
Sarasota, Florida 34236
DATE OF FIRST USE:
 
Intent-to-Use.
FIRST USE IN COMMERCE:
 
Intent-to-Use.
GOODS:
 
Interactive computer game consoles, in International Class 9; and,
SERVICES:
 
Entertainment services, namely, providing interactive computer gaming network that allows end-users to demo, rent, purchase and play computer games, in International Class 41.

ANY GAME, ANY TIME

12

 
SCHEDULE D
 
PHANTOM GAME SERVICE PATENTS
 
United States Patent Application
20060069796
Kind Code 
A1
Lucas; Todd C. ;   et al. 
March 30, 2006
 

 
Method for automatic patching of a sparsely streamed application
 
Abstract
 
A method and apparatus are provided for automatic patching of a sparsely streamed application, such as a game application. The invention enables an initial file set to be streamed to a client's network device. The file set is used to generate file segments. A patcher is then authorized to write to sections of the file segment, regardless of whether they have received portions of the streamed application. Once a section of the file segment has been written to by the patcher, that section becomes an authoritative region, which indicates that the streaming process may not write to it again. This authoritative region represents a last-known good image for that section of the file. This approach may be applied over an arbitrary number of patches, with authoritative sections growing, coalescing, or truncating as appropriate.
 

 
Inventors:
Lucas; Todd C.; (Woodinville, WA) ; Roberts; Jesse P.; (Seattle, WA) 
Correspondence Name and Address:
    DARBY & DARBY P.C.
    P. O. BOX 5257
    NEW YORK
    NY
    10150-5257
    US
Assignee Name and Adress:
Infinium Labs, Inc.
Sarasota
FL34237
 
Serial No.:
953313
Series Code:
10
Filed:
September 29, 2004

U.S. Current Class:
709/231 
U.S. Class at Publication:
709/231 
Intern'l Class:
G06F 15/16 20060101 G06F015/16


 Claims


13


1. A method of streaming an application, comprising: generating a file segment; writing a patch into at least one address location associated with the file segment; marking the at least one address location that includes the patch as an authoritative section; receiving a section of the streamed application; and if at least a portion of the section of the streamed application is to be written into the authoritative section, prohibiting the writing of that portion of the streamed application.

2. The method of claim 1, further comprising, if another portion of the section of the streamed application is not to be written into the authoritative section, writing of the other portion of the streamed application into the file segment.

3. The method of claim 1, wherein marking the at least one address location includes employing a device driver to mark the authoritative section.

4. The method of claim 1, wherein writing the patch includes employing a patcher program.

5. The method of claim 1, further comprising, if writing the patch includes writing another address location that exceeds a length of the file segment, redefining the length of the file segment to include the other address location.

6. The method of claim 1, wherein the streamed application further comprises at least one of an application associated with RealAudio, streaming MP3, Flash, Shockwave, Windows Media, QuickTime, RealMedia G2 with SMIL, Rich Music Format (RMF), Liquid Audio, MP3, MIDI, WAV, and AU.

7. The method of claim 1, wherein the streamed application further comprises at least one of a game, music, video, graphical file, interactive file, educational program, audio file, news file, and an advertisement.

8. The method of claim 1, further comprising, determining a hash value associated with a content of the file segment, and comparing the determined hash value to a predefined hash-value.

9. The method of claim 8, determining the hash value further comprises including another hash value associated with another section of the application that has not been received.

10. A system for streaming an application, comprising: a streaming server that is configured to stream the application; and a client device, coupled to the streaming server, and configured to perform actions, including: receiving, from the streaming server, a file manifest associated with the application, wherein the file manifest includes information associated with a file, and a file length value for the file; employing the information to generate a file segment having the file length of the file; receiving a patch associated with the application; writing the patch into at least one address location associated with the file segment; marking the at least one address location that includes the patch as an authoritative section; receiving a section of the streamed application from the streaming server; and if at least a portion of the section of the streamed application is to be written into the authoritative section, prohibiting the writing of that portion of the streamed application.

11. The system of claim 10, wherein receiving the patch includes receiving the patch from another server.

12. The system of claim 10, further comprising, if another portion of the section of the streamed application is not to be written into the authoritative section, writing of the other portion of the streamed application into the file segment.

14

13. The system of claim 10, wherein marking the at least one address location includes employing a device driver to mark the authoritative section.

14. The system of claim 10, wherein writing the patch includes employing a patcher program obtainable from at least one of a portion of the streamed application, and another server.

15. The system of claim 10, further comprising, if writing the patch includes writing another address location that exceeds a length of the file segment, redefining the length of the file segment to include the other address location.

16. A client device for receiving a streaming application, comprising: a patcher that is configured to perform actions, including: receiving a patch from a server; enabling the patch to be written into at least one address location of a file segment; and enabling a marking of the at least one address location that includes the patch as an authoritative section; and an installer that is configured to perform actions, including: generating the file segment; receiving a section of the streamed application; and if at least a portion of the section of the streamed application is to be written into the authoritative section, enabling a prohibition of the writing of that portion of the streamed application.

17. The client device of claim 16, wherein generating the predetermined file segment further comprises: receiving a file manifest that comprises a list of files to be streamed and file length information for each of the files in the list of files; and employing the list of files and file length information to generate the file segment, wherein the file segment is initially empty.

18. The client device of claim 16, wherein enabling a prohibition of the writing further comprises employing a device driver to prohibit the writing of that portion.

19. A modulated data signal for streaming an application from a server to a client, the modulated data signal comprising: receiving at the client a patch associated with the application; enabling the writing of the patch into at least one address location associated with the file segment; enabling the marking of the at least one address location that includes the patch as an authoritative section; receiving a section of the streamed application from the server; and if at least a portion of the section of the streamed application is to be written into the authoritative section, prohibiting the writing of that portion of the streamed application.

20. An apparatus for managing a streaming of an application, comprising: a means for receiving a patch associated with the application; a means for writing the patch into at least one address location associated with the file segment; a means for marking the at least one address location that includes the patch as an authoritative section; a means for receiving a section of the streamed application; and if at least a portion of the section of the streamed application is to be written into the authoritative section, a means for prohibiting the writing of that portion of the streamed application.
 

Description

 
FIELD OF THE INVENTION

[0001] The invention relates generally to streaming content over a network, and more particularly but not exclusively to an apparatus and method for providing automatic patching of a sparsely streamed application, such as a game application.

15

 
BACKGROUND OF THE INVENTION

[0002] Internet streaming of content has changed the Web as we knew it from a static text and graphics medium into a multimedia experience surrounded with sound and moving pictures. Streaming content may be poised to become a de facto distribution standard, incorporating virtually all other media, including television, radio, and movies. The low cost and technical simplicity of streaming content makes web broadcasting irresistible to publishers, broadcasters, corporations, and individuals.

[0003] This technology enables a website user to merely click on a selection and moments later to listen to music, watch a movie, attend an educational program, and even to play an interactive computer game. Streaming typically works by first compressing a digital file and then decomposing it into smaller packets, which may then be transported over a network, such as the Internet. When the packets reach a destination, they are decompressed and reassembled into a form that can be played by the user's system. Often the packets are buffered on the user's system so a number of them are downloaded to the user's system before playback. As the buffered or preloaded packets play, more packets are being downloaded and queued up for playback.

[0004] Streaming of computer game applications has been particularly successful. A user may simply install a client player component, which lets the user stream and play the game application over a network connection, often with only a small portion of the game content having been downloaded first. As the user progresses through parts of the game, additional levels, and other data may be seamlessly downloaded in the background so they're there when the game application may need them.

[0005] However, many game applications, and other applications, are routinely patched or updated when the application is launched on the user's system, and prior to play. Such patches may be directed towards correcting programming errors, providing enhanced features, customizing the application to the user's system, patching security flaws, incorporating anti-cheat features, and the like. Because traditional patching approaches may assume the presence of the application, patching presents a challenge to the design of streaming applications. Thus, it is with respect to these considerations and others that the present invention has been made.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006] Non-limiting and non-exhaustive embodiments of the invention are described with reference to the following drawings. In the drawings, like reference numerals refer to like parts throughout the various figures unless otherwise specified.

[0007] For a better understanding of the invention, reference will be made to the following Detailed Description of the Invention, which is to be read in association with the accompanying drawings, wherein:

[0008] FIG. 1 shows a functional block diagram illustrating one embodiment of an environment for practicing the invention;

16


[0009] FIG. 2 shows one embodiment of a client device that may be employed in a system implementing the invention;

[0010] FIG. 3 illustrates a logical flow diagram generally showing one embodiment of a process for streaming an automatic patching application; and

[0011] FIG. 4A-D show one embodiment of a file segment of an application during an automatic patching process, in accordance with the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0012] The present invention now will be described more fully hereinafter with reference to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific exemplary embodiments by which the invention may be practiced. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Among other things, the present invention may be embodied as methods or devices. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.

[0013] Briefly stated, the present invention is directed towards a method and apparatus for providing automatic patching of a sparsely streamed application. In one embodiment, the streamed application is an interactive computer game. However, the invention is not so limited, and the invention may be applied to virtually any application that may be streamed.

[0014] The invention considers each file segment as a layer of file segments. A file segment may include either an original file that is being streamed over a network, or file section information that is associated with a given patch.

[0015] The invention then enables an initial file segment to be streamed to a client's network device. As part of an initialization activity, an empty file segment may be allocated to receive at least a portion of the streamed application. A patcher is then authorized to write to sections of the file segment, regardless of whether a portion of the streamed application has been written into the file segment. Once a section has been written to by the patcher, that section becomes an authoritative section for a region of a file segment. When the patcher writes to the file segment, the original file-set layer for that section becomes marked as invalid, which indicates that the streaming application process may not write to it again. This authoritative section then represents a last-known good image for that section of the file segment. The above approach may be applied over an arbitrary number of patches, with authoritative sections growing, coalescing, or truncating as appropriate.

[0016] Additionally, once the file segment that has been patched has been completely streamed, it may be hashed. The resulting hash value may then be compared against another hash-value associated with that file in a patch file-set meta-data. Some hash operations may assume that the entire streamed application is streamed onto the client in order to scan the streamed application to generate a hash value. However, the invention may accommodate such restrictions, through a variety of mechanisms. For example, in one embodiment, hash values may be generated to include file segments that are still on the server (e.g., not yet streamed to the client).

17


Illustrative Operating Environment

[0017] FIG. 1 illustrates one embodiment of an environment in which the present invention may operate. However, not all of these components may be required to practice the invention, and variations in the arrangement and type of the components may be made without departing from the spirit or scope of the invention.

[0018] As shown in the figure, a system 100 includes client device 102, network 105, streaming server device (SSD) 104, and patching server device (PSD) 106. Network 105 is in communication with and enables communication between each of client device 102, SSD 104, and PSD 106.

[0019] One embodiment of client device 102 is described in more detail below in conjunction with FIG. 2. Briefly, however, client device 102 may include virtually any computing device capable of receiving a streamed application over a network, such as network 105, from another computing device, such as SSD 104, and the like. The set of such devices may include devices that typically connect using a wired communications medium such as personal computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, and the like. The set of such devices may also include devices that typically connect using a wireless communications medium such as cell phones, smart phones, pagers, walkie-talkies, radio frequency (RF) devices, infrared (IR) devices, CBs, integrated devices combining one or more of the preceding devices, or virtually any mobile device, and the like. Similarly, client device 102 may be any device that is capable of connecting using a wired or wireless communication medium such as a PDA, POCKET PC, wearable computer, and any other device that is equipped to communicate over a wired and/or wireless communication medium.

[0020] Client device 102 may be configured to receive the streamed application employing any of a variety of mechanisms, including, User Datagram Protocol (UDP)/Internet Protocol (IP), RealTime Streaming Protocol (RTSP), HyperText Transfer Protocol (HTTP), and the like. Moreover, client device 102 may include a client application that is enabled to use a variety of formats for managing the streaming application, including, RealAudio, streaming MP3, Flash, Shockwave, Windows Media, QuickTime, RealMedia G2 with SMIL, Rich Music Format (RMF), Liquid Audio, MP3, MIDI, WAV, AU, and the like. In one embodiment, client device 102 employs the client application to communicate with a streaming server device, such as SSD 104, to negotiate and receive the streaming application.

[0021] Client device 102 may be further configured to receive additional content, such as a patch to the streamed application, from another computing device employing a similar or different mechanism than above. In one embodiment, client device 102 employs the client application to communicate with a patching server device, such as PSD 106, to negotiate and receive the patch to the streamed application.

[0022] The streamed application may include virtually any computer content that may be streamed over a network, such as network 105, including a game application, music, videos, graphical files, interactive files, educational programs, audio files, news, advertisements, and the like.

18


[0023] Network 105 is configured to couple one computing device to another computing device to enable them to communicate. Network 105 is enabled to employ any form of computer readable media for communicating information from one electronic device to another. Also, network 105 may include a wireless interface, and/or a wired interface, such as the Internet, in addition to local area networks (LANs), wide area networks (WANs), direct connections, such as through a universal serial bus (USB) port, other forms of computer-readable media, or any combination thereof. On an interconnected set of LANs, including those based on differing architectures and protocols, a router acts as a link between LANs, enabling messages to be sent from one to another. In addition, communication links within LANs typically include twisted wire pair or coaxial cable, while communication links between networks may utilize analog telephone lines, full or fractional dedicated digital lines including T1, T2, T3, and T4, Integrated Services Digital Networks (ISDNs), Digital Subscriber Lines (DSLs), wireless links including satellite links, or other communications links. Furthermore, remote computers and other related electronic devices could be remotely connected to either LANs or WANs via a modem and temporary telephone link. In essence, network 105 includes any communication method by which information may travel between client device 102, SSD 104, and PSD 106.

[0024] The media used to transmit information in communication links as described above illustrates one type of computer-readable media, namely wired and/or wireless communication media. Generally, computer-readable media includes any media that can be accessed by a computing device. Computer-readable media may include computer storage media, communication media, or any combination thereof. Additionally, communication media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The terms "modulated data signal," and "carrier-wave signal" includes a signal that has one or more of its characteristics set or changed in such a manner as to encode information, instructions, data, and the like, in the signal. By way of example, communication media includes wired media such as twisted pair, coaxial cable, fiber optics, wave guides, and other wired media and wireless media such as acoustic, RF, infrared, and other wireless media.

[0025] SSD 104 may include any computing device capable of connecting to network 105 to communicate information to client device 102, such as a streamed application. Devices that may operate as SSD 104 include personal computers desktop computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, servers, and the like. SSD 104 and client device 102 can be arranged in a client-server relationship relative to each other. Client device 102 can also be combined with SSD 104 in virtually any other computing architecture, including, but not limited to a peer-to-peer architecture, and the like, without departing from the scope of the present invention.

[0026] Similarly, PSD 106 may also include virtually any computing device capable of connecting to network 105 to communicate information to client device 102, such as a patch to an application streamed from SSD 104. Devices that may operate as SSD 104 include personal computers desktop computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, servers, and the like. Although FIG. 1 illustrates SSD 104 and PSD 106 as distinct devices, the invention is not so limited. For example, PSD 106 and SSD 104 may co-exist as a single computing device configured to provide both the streamed application and the patch to the application.

Illustrative Client Environment

[0027] FIG. 2 shows a functional block diagram of client device 200, according to one embodiment of the invention. For example, client device 200 can comprise client device 102 of FIG. 1. Client device 200 may include many more or less components than those shown. For example, client device 200 may be configured similar to a `semi-thin client,` with limited storage and application execution capability. The components shown, however, are sufficient to disclose an illustrative embodiment for practicing the invention.

19


[0028] Client device 200 includes a processing unit 212, a video display adapter 214, and a mass memory, all in communication with each other via a bus 222. The mass memory generally includes RAM 216, ROM 232, and one or more permanent mass storage devices, such as an optical drive 226, a hard disk drive 228, a tape drive, and/or a floppy disk drive. However, client device 200 need not include such mass storage devices and may operate substantially similar to a semi-thin client device, receiving applications across a network. The mass memory may store an operating system 220 for controlling the operation of client device 200. Any general-purpose operating system may be employed. Similarly, a proprietary operating system may also be employed. A basic input/output system ("BIOS") 218 is provided for controlling low-level operation of client device 200. As illustrated in FIG. 2, client device 200 can communicate with the Internet, or some other communications network, such as network 105 of FIG. 1, via a network interface unit 210, which may be constructed for use with any of variety of communication protocols including, but not limited to, transmission control protocol/Internet protocol (TCP/IP), UDP/IP, HTTP, RTSP, and the like. Network interface unit 210 is sometimes known as a transceiver, transceiving device, network interface card (NIC), and the like. Client device 200 also includes input/output interface 224 for communicating with external devices, such as a mouse, keyboard, scanner, or other input devices not shown in FIG. 2.

[0029] Client device 200 may include a simple mail transfer protocol (SMTP) handler application for transmitting and receiving email. Client device 200 may also include a hypertext transfer protocol (HTTP) handler application for receiving and handing HTTP requests, and an HTTP secure sockets (HTTPS) handler application for handling secure connections. The HTTPS handler application may initiate communication with an external application in a secure fashion. Similarly, client device 200 may include a client application configured to manage a request for and a receipt of a streamed application.

[0030] The mass memory as described above illustrates another type of computer-readable media, namely computer storage media. Computer storage media may include volatile, nonvolatile, removable, and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of computer storage media include RAM, ROM, EEPROM, flash memory, or other memory technology, CD-ROM, digital versatile disks (DVD), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage, or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computing device.

[0031] The mass memory also stores program code and data. One or more applications 250 are loaded into mass memory and run on operating system 220. Examples of application programs include email programs, schedulers, calendars, web services, security applications, transcoders, database programs, word processing programs, spreadsheet programs, and so forth. Mass storage may further include applications such as installer 252, patcher 254, and streamed content 256.

[0032] Streamed content 256 may include data for a streamed application received over a network using a streaming mechanism. Streamed content 256 may also include at least one patch of the streamed application. In one embodiment streamed content 256 is configured into streamed file segments that are of predefined lengths. Allocation of a file segment may be made prior to streaming of the actual packets for that particular file segment. As such, an allocated file segment with streamed content 256 may initially include an empty region.

20


[0033] Briefly, installer 252 includes any application configured to enable a delivery and playback of a streamed application, whether the streamed application includes video, audio, animation, 3-D, a panoramic image, game, or the like. Installer 252 may be configured to receive in a packet stream an initial package, which may include information about the streamed application. Such information may include, for example, a list of files that comprise the streamed application, a path name or link to each file, file identifiers associated with each file in the list, a size of each file, and so forth.

[0034] Installer 252 may be configured to employ the received information to generate at least one file segment into which at least a portion of the streamed application is to be received. As more streamed packets are received, installer 252 may enable writing of additional portions of the streamed application into the at least one file segment. Although not shown, installer 252 may include a download component that is configured to enable the additional writes of the streamed application. Additionally, installer 252 may also include a predictor component that enables a determination as to which portion of the streamed application may be employed next during execution of the streamed application, and make an appropriate request for that portion.

[0035] Patcher 254 may be invoked by installer 252, by the streamed application, or even another application (not shown), to enable a delivery of a patch of the streamed application. In one embodiment, patcher 254 is a third party application that may be obtained through a network connection, be loaded as a file segment within a portion of the streamed application, and the like.

[0036] Patcher 254 may be configured to negotiate a communication with a network device for receipt of the patch. Patcher 254 may operate to write the patch into streamed content 256 at a predefined location regardless of whether streaming manager 252 has yet streamed content to that location. Patcher 254 may enable the patched section to be marked as an authoritative region. In one embodiment, patcher 254 may employ a device driver to so mark the patched section. Once the section is so marked, installer 252 is inhibited from writing into that section. In one embodiment, installer 254 and patcher 254 may employ a process substantially similar to process 300 described below in conjunction with FIG. 3 to automatically patch the streamed application.

Generalized Operation

[0037] The operation of certain aspects of the present invention will now be described with respect to FIGS. 3, and 4A-C. Briefly, FIG. 3 illustrates a logical flow diagram generally showing one embodiment of a process for streaming an automatic patching application. FIGS. 4A-C are used to show an illustrative example of one embodiment of a file segment of a streamed application during the automatic patching process of FIG. 3.

[0038] Process 300 shown in FIG. 3 may be implemented, for example, within client device 102 of FIG. 1. Process 300 is typically entered when it is determined that an automatic patching of a sparsely streamed application is to be performed. An initial package may be streamed that may include a file manifest, or the like. The file manifest typically includes, as described above, a list of files associated with the streamed application, along with length information for each of the files.

[0039] Process 300 then begins, after a start block, at block 302, where the length information is employed to allocate a file segment for a first file of the application to be streamed. In one embodiment, multiple file segments may be allocated at block 302. Each allocated file segment comprises an empty region specified by a range of addresses. FIG. 4A provides an illustrative example 400A of one embodiment of empty file segment 402.

21


[0040] Processing then proceeds to decision block 304, where a determination is made whether a there are any streamed application sections to be written. Where this is a first entry into process 300, it is anticipated that there is at least one application section to be written into the empty file segment. If there are no more application sections, processing returns to a calling process to perform other actions. However, if there are more application sections, processing continues to block 306, where the next streamed application section is received.

[0041] Processing continues next to decision block 308 where a determination is made whether the received application section includes a range of addresses that conflicts with an authoritative section of the file segment. A conflict with the authoritative section of the file segment may be established whenever a patch section has been written into at least some of the address locations into which the received application section is also to be written. That is, there is a potential overlap in addresses. If there is not a conflict in the addresses, processing branches to block 310, where the next application section is written to the appropriate address locations of the file segment. This is illustrated in FIG. 4B by loaded section 404 within file segment 402. If however, there are conflicts with at least some of the addresses of the next application section and an authoritative section, processing branches to decision block 312.

[0042] At decision block 312, a determination is made whether there is at least a portion of the next application section that does not conflict with an authoritative section. If there is at least some addresses of the next application section that does not conflict, processing continues to block 314, where the non-conflicting address locations of the next application section are written into the file segment. In one embodiment, a device driver is employed to manage the writing and prohibition of writing into the file segment.

[0043] If, however, all of the addresses associated with the next application section conflict with an authoritative section, then, none of the next application section is written into the file segment, and processing proceeds to decision block 316. Again, the device driver may be employed to prohibit the writing of the next application section into the file segment.

[0044] At decision block 316, a determination is made whether there is a patch to be received. Typically, upon loading of a sufficient section of a predefined file segment, the streamed application may execute. Upon execution the streamed application may initiate a patcher, link to a patch site, and the like. At this juncture, the determination may be made that there isn't a patch to be received for this file segment. If there isn't a patch to be received, processing loops back to decision block 304. Otherwise, if there is a patch to be received, processing proceeds to block 318, where the patch is received, and written at an appropriate address location(s) within the file segment. During a writing of the patch, a section of the empty region of the file segment may be read by the patcher. This section may be loaded on-demand, for example, employing a normal redirector type of functionality. It is noted that a patch may actually exceed the addresses allocated for the file segment. In this instance, the patch then extends the end of file marker address location for the file segment by an appropriate length. In any event, the patch is authorized to be written to virtually any section of a file segment, whether or not that segment has already been loaded with an application section. Processing then proceeds to block 320, where the patch section is marked an authoritative section within the file segment. In one embodiment, a device driver, and the like, may be employed to so mark the patch section as authoritative. When the patcher writes to a section of the file segment, regardless of whether it has been previously written to with an application section, the original file-set `layer` becomes marked as authoritative. This may be seen in FIG. 4C, where authoritative section 406 has been so marked within file segment 402. This means that a next application section may not be written into that section any longer. This is illustrated in FIG. 4D. As shown in the figure, streamed application section 408 extends into at least a portion of authoritative section 406. As described above, decision block 308, 312, and block 314, enable at least a portion of streamed application section 408 to be written into file segment 402. This portion is illustrated by loaded section 410.

22


[0045] Upon completing block 320, processing loops back to decision block 302 to receive more application sections and/or patch sections, until there are no more to be written. Process 300 may be applied for an arbitrary number of patch sections, within authoritative sections growing, coalescing, and/or truncating as necessary.

[0046] Upon completion of process 300, the process returns to a calling process to perform other actions. For example, in one embodiment, once a file segment that has been patched has been completely streamed, it may be hashed. Its hash-value may be compared against a predefined hash-value associated with that file segment in a patch file-set meta-data, in a file manifest, and the like.

[0047] Process 300, above, may be viewed as composed of two sub-processes, a streaming application sub-process and an authoritative or patching sub-process. The authoritative or patching sub-process of process 300 may be viewed as including blocks 316, 317, and 320. The streaming application sub-process may be viewed as including the remaining blocks of process 300. Although illustrated as an integrated process, the invention is not so limited. For example, the sub-processes may be configured to operate substantially independent of each other.

[0048] It will also be understood that each block of the flowchart illustrations discussed above, and combinations of blocks in the flowchart illustrations above, can be implemented by computer program instructions. These program instructions may be provided to a processor to produce a machine, such that the instructions, which execute on the processor, create means for implementing the operations indicated in the flowchart block or blocks. The computer program instructions may be executed by a processor to cause a series of operational steps to be performed by the processor to produce a computer-implemented process such that the instructions, which execute on the processor, provide steps for implementing the actions specified in the flowchart block or blocks.

[0049] Accordingly, blocks of the flowchart illustrations support combinations of means for performing the indicated actions, combinations of steps for performing the indicated actions and program instruction means for performing the indicated actions. It will also be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by special purpose hardware-based systems, which perform the specified actions or steps, or combinations of special purpose hardware and computer instructions.

[0050] The above specification, examples, and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.

23


SCHEDULE E

PHANTOM GAME SERVICE LOGOS, TRADEMARKS BEING SOLD OUTRIGHT TO PHANTOM GAME SERVICE, INC.
 
 

Mark:
Date:
 
Goods/Services:
 
Filing
         
BLACK KNIGHT
 
Entertainment delivery services, namely, providing interactive computer gaming network that allows end-users to demo, rent, purchase and play computer games, in International Class 41.
 
July 7,
2003
         
BLACKNIGHT
 
Entertainment delivery services, namely, providing interactive computer gaming network that allows end-users to demo, rent, purchase and play computer games, in International Class 41.
 
August 13,
2003
         
PAY PER PLAY
 
Entertainment delivery services, namely, providing interactive computer gaming network that allows end-users to demo, rent, purchase and play computer games, in International Class 41.
 
August 13,
2003
         
VIRTUAL PRIVATE
GAME NETWORK
 
Entertainment delivery services, namely, providing interactive computer gaming network that allows end-users to demo, rent, purchase and play computer games, in International Class 41.
 
August 13,
2003
 
24

 
VPGN
 
Entertainment delivery services, namely, providing interactive computer gaming network that allows end-users to demo, rent, purchase and play computer games, in International Class 41.
 
August 13,
2003
         
BUILT BY GAMERS
FOR GAMERS
 
Entertainment delivery services, namely, providing interactive computer gaming network that allows end-users to demo, rent, purchase and play computer games, in International Class 41.
 
August 13,
2003
         
ANY GAME, ANY TIME
 
Interactive computer game consoles, in International Class 9; Entertainment services, namely, providing interactive computer gaming network that allows end-users to demo, rent, purchase and play computer games, in International Class 41.
 
March 5,
2004
 
25


SCHEDULE F

PHANTOM GAME SERVICE POWERPOINT AND MARKET RESEARCH

Gartner Research

SG Gaming

Smith Geiger

PSB – Penn, Schoen and Berland Associates, Inc

Digital Mill

DFC Intelligence

SG Capital

Baker

26


SCHEDULE G

PHANTOM GAME SERVICE PUBLISHER AGREEMENTS

SCHEDULE OF PUBLISHER ELECTRONIC FILE NAMES

Atari_agreement_with_sigs_9-14-04

Codemasters_contract_with_all_signs

Eidos

Eidos_SIGNATURES

Enlight_contract

Riverdeep_agreement_-_signed

Vivendi_LOI_with_all_sigs_-_Vivendi_titles

27


SCHEDULE H

Two-way Joint Right to use Trademarks Licensed from Phantom Entertainment, Inc. to PHANTOM GAME SERVICE, Inc.


 
Mark:
Date:
 
Goods/Services:
 
Filing
         
PHANTOM
 
Interactive computer game consoles, in International Class 9; Entertainment services, namely, providing interactive computer gaming network that allows end-users to demo, rent, purchase and play computer games, in International Class 41.
 
July 7,
2003
         
 
Interactive computer game consoles, in International Class 9; Entertainment services, namely, providing interactive computer gaming network that allows end-users to demo, rent, purchase and play computer games, in International Class 41.
 
July 8,
2003
 
28



   
Interactive computer game consoles, in International Class 9.
 
August 13,
2003
         
    
Entertainment services, namely, providing interactive computer gaming network that allows end-users to demo, rent, purchase and play computer games, in International Class 41.
 
August 13, 
2003

29