(57)【要約】【課題】  モバイル装置用トランスポート独立型ゲームＡＰＩのためのシステムおよび方法を提供する。【解決手段】  本発明のゲームＡＰＩは、モバイル装置の間のマルチプレーヤによるゲームセッションを可能にし、このセッションにおいて、モバイル装置の間のトランスポートプロトコルは、ユーザおよびゲームアプリケーション両方に対して透過的に切り換えることができる。ゲームＡＰＩは、どのトランスポートプロトコルが、指定されたパラメータに従ってゲームデータ伝送用の最適プロトコルとして決定されるかによって、切り換えられる。【選択図】  図４
2005052643.tif 000002
【特許請求の範囲】
【請求項１】
モバイル装置の間で、ゲームアプリケーションに関連するデータを伝送するためのコンピュータによって実施される方法であって、
第１のモバイル装置と第２のモバイル装置との間のゲームセッションを開始するステップと、
第１のトランスポートプロトコルが、データ伝送用の最適トランスポートプロトコルであるか判定するステップと、
第２のトランスポートプロトコルが前記最適トランスポートプロトコルであると判定されると、前記第１のトランスポートプロトコルを前記第２のトランスポートプロトコルに切り換えるステップと、
前記第１のトランスポートプロトコルが前記最適トランスポートプロトコルに対応する場合、前記第１のトランスポートプロトコルに従ってデータを伝送するステップと、
前記第２のトランスポートプロトコルが前記最適トランスポートプロトコルに対応する場合、前記第２のトランスポートプロトコルに従ってデータを伝送するステップとを備えることを特徴とする方法。
【請求項２】
前記ゲームセッションを開始するステップは、
第１のモバイル装置上で使用可能なトランスポートプロトコルから、初期トランスポートプロトコルを選択するステップと、
前記第１のモバイル装置に対応するアドレス情報を、第２のモバイル装置に送信するステップと、
前記第１のモバイル装置上でアクティブにされた第１のゲームアプリケーションに対応するゲーム情報を、前記第２のモバイル装置に送信するステップと、
前記送信されたアドレス情報およびゲーム情報の確認応答を、前記第２のモバイル装置から前記第１のモバイル装置で受信するステップであって、前記確認応答は、前記第２のモバイル装置に対応するアドレス情報を含むステップとをさらに含むことを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項３】
前記アドレス情報は、前記第１のモバイル装置および前記第２のモバイル装置の一方に対応する、ＩＰアドレス識別子、ｅメールアドレス、ＳＭＳ識別子、電話番号、ブルートゥースのアクセス許可、およびプロファイル情報を有するグループの少なくとも１つを含むことを特徴とする請求項２に記載のコンピュータによって実施される方法。
【請求項４】
前記最適トランスポートプロトコルは、即時使用可能性、伝送レート、および費用効率を有するグループの少なくとも１つを含む選択されたパラメータに従って決定されることを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項５】
前記データの伝送に先立って、前記第１のモバイル装置と前記第２のモバイル装置との間に、ソケットベースの接続が確立されることを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項６】
前記データの伝送に先立って、前記第１のモバイル装置と前記第２のモバイル装置との間に、パケットベースの接続が確立されることを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項７】
前記第１のモバイル装置と前記第２のモバイル装置との間で前記ゲームアプリケーションに関連する追加データが伝送されることになるとき、前記ゲームセッションが不完全であると判定するステップをさらに備えることを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項８】
前記第２のモバイル装置によって決定された別の最適プロトコルに従って、前記第２のモバイル装置から追加データを受信するステップをさらに備えることを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項９】
追加データを受信するステップは、
トランスポートプロトコルを介して伝送される前記追加データに対する監視を行うステップと、
前記追加データが受信されると、ゲームサブシステムに通知を行うステップと、
前記ゲームサブシステムが通知を受けると、前記ゲームアプリケーションに前記新しいデータを通知するステップと、
さらなるゲームプレイのために、前記データを取り出して前記ゲームアプリケーションに渡すステップとをさらに含むことを特徴とする請求項８に記載のコンピュータによって実施される方法。
【請求項１０】
プロセッサと、
ディスプレイと、
複数のコンピュータ実行可能命令が置かれているメモリとを備えるモバイル装置であって、前記コンピュータ実行可能命令は、
第１のモバイル装置と第２のモバイル装置との間のゲームセッションを開始するステップと、
第１のトランスポートプロトコルが、ゲームアプリケーションに関連づけられたデータを伝送するのに最適なトランスポートプロトコルであるか判定するステップと、
第２のトランスポートプロトコルが前記最適トランスポートプロトコルであると判定されると、前記第１のトランスポートプロトコルを前記第２のトランスポートプロトコルに切り換えるステップと、
前記第１のトランスポートプロトコルが前記最適トランスポートプロトコルに対応する場合、前記第１のトランスポートプロトコルに従ってデータを伝送するステップと、
前記第２のトランスポートプロトコルが前記最適トランスポートプロトコルに対応する場合、前記第２のトランスポートプロトコルに従ってデータを伝送し、前記第１のプロトコルと前記第２のプロトコルとの間の切換えは、ユーザおよび前記ゲームアプリケーションに対して透過的になるステップとを備える方法を実施することを特徴とするモバイル装置。
【請求項１１】
前記ゲームセッションを開始するための前記コンピュータ実行可能命令は、
第１のモバイル装置上で使用可能な前記トランスポートプロトコルから、初期トランスポートプロトコルを選択するステップと、
前記第１のモバイル装置に対応するアドレス情報を、第２のモバイル装置に送信するステップと、
前記第１のモバイル装置上でアクティブにされた第１のゲームアプリケーションに対応するゲーム情報を、前記第２のモバイル装置に送信するステップと、
前記送信されたアドレス情報およびゲーム情報の確認応答を、前記第２のモバイル装置から前記第１のモバイル装置で受信するステップであって、前記確認応答は、前記第２のモバイル装置に対応するアドレス情報を含むステップとをさらに備えることを特徴とする請求項１０に記載のモバイル装置。
【請求項１２】
前記コンピュータ実行可能命令は、即時使用可能性、伝送レート、および費用効率を有するグループの少なくとも１つを含む選択されたパラメータに従って、前記最適トランスポートプロトコルを決定するステップをさらに備えることを特徴とする請求項１０に記載のモバイル装置。
【請求項１３】
前記コンピュータ実行可能命令は、前記データの伝送に先立って、前記第１のモバイル装置と前記第２のモバイル装置との間に、ソケットベースの接続を確立するステップをさらに備えることを特徴とする請求項１０に記載のモバイル装置。
【請求項１４】
前記コンピュータ実行可能命令は、前記データの伝送に先立って、前記第１のモバイル装置と前記第２のモバイル装置との間に、パケットベースの接続を確立するステップをさらに備えることを特徴とする請求項１０に記載のモバイル装置。
【請求項１５】
前記第１のモバイル装置と前記第２のモバイル装置との間で、前記ゲームアプリケーションに関連する追加データが伝送されることになるとき、前記コンピュータ実行可能命令は、前記ゲームセッションが不完全であると判定するステップをさらに備えることを特徴とする請求項１０に記載のモバイル装置。
【請求項１６】
前記コンピュータ実行可能命令は、前記第２のモバイル装置によって決定された別の最適プロトコルに従って、前記第２のモバイル装置から追加データを受信するステップをさらに備えることを特徴とする請求項１０に記載のモバイル装置。
【請求項１７】
コンピュータ実行可能命令で符号化されたコンピュータ読取可能媒体であって、前記コンピュータ実行可能命令は、
第１のトランスポートプロトコルに従って、ホストモバイル装置と少なくとも１つの受信側モバイル装置との間でゲームセッションを開始するステップであって、アドレス情報およびゲーム情報が、前記ホストモバイル装置から少なくとも１つの受信側モバイル装置に送信されるステップと、
前記第１のトランスポートプロトコルが、前記ホストモバイル装置から、少なくとも１つの受信側モバイル装置に、ゲームアプリケーションに関連するデータを伝送するのに最適なトランスポートプロトコルであるか判定するステップと、
第２のトランスポートプロトコルが前記最適トランスポートプロトコルであると判定されると、前記第１のトランスポートプロトコルを前記第２のトランスポートプロトコルに切り換えるステップと、
前記第１のトランスポートプロトコルが前記最適トランスポートプロトコルに対応する場合、前記第１のトランスポートプロトコルに従って、前記ゲームアプリケーションに関連するデータを伝送するステップと、
前記第２のトランスポートプロトコルが前記最適トランスポートプロトコルに対応する場合、前記第２のトランスポートプロトコルに従ってデータを伝送するステップと、
前記受信側モバイル装置によって決定された別の最適プロトコルに従って、少なくとも１つの受信側モバイル装置から、前記ゲームアプリケーションに関連する追加データを受信するステップとを備える方法を実施することを特徴とするコンピュータ読取可能媒体。
【請求項１８】
前記ゲームセッションを開始するステップは、前記送信されたアドレス情報およびゲーム情報の確認応答を、少なくとも１つの受信側モバイル装置から、前記ホストモバイル装置で受信するステップであって、前記確認応答は、少なくとも１つの受信側モバイル装置に対応するアドレス情報を含むステップとをさらに含むことを特徴とする請求項１７に記載のコンピュータ読取可能媒体。
【請求項１９】
前記アドレス情報は、ＩＰアドレス識別子、ｅメールアドレス、ＳＭＳ識別子、電話番号、ブルートゥースのアクセス許可、およびプロファイル情報を有するグループの少なくとも１つを含むことを特徴とする請求項１７に記載のコンピュータ読取可能媒体。
【請求項２０】
前記最適トランスポートプロトコルは、即時使用可能性、伝送レート、および費用効率を有するグループの少なくとも１つを含む選択されたパラメータに従って決定されることを特徴とする請求項１７に記載のコンピュータ読取可能媒体。
【請求項２１】
前記データの伝送に先立って、前記ホストモバイル装置と少なくとも１つの受信側モバイル装置との間に、ソケットベースの接続が確立されることを特徴とする請求項１７に記載のコンピュータ読取可能媒体。
【請求項２２】
前記データの伝送に先立って、前記ホストモバイル装置と少なくとも１つの受信側モバイル装置との間に、パケットベースの接続が確立されることを特徴とする請求項１７に記載のコンピュータ読取可能媒体。
【請求項２３】
前記ホストモバイル装置と少なくとも１つの受信側モバイル装置との間で、前記ゲームアプリケーションに関連する追加データが伝送されることになるとき、前記ゲームセッションが不完全であると判定するステップをさらに備えることを特徴とする請求項１７に記載のコンピュータ読取可能媒体。
【請求項２４】
追加データを受信するステップは、
トランスポートプロトコルを介して伝送される前記追加データに対する監視を行うステップと、
前記追加データが受信されると、ゲームサブシステムに通知を行うステップと、
前記ゲームサブシステムが通知を受けると、前記ゲームアプリケーションに前記新しいデータを通知するステップと、
さらなるゲームプレイのために、前記データを取り出して前記ゲームアプリケーションに渡すステップとをさらに含むことを特徴とする請求項１７に記載のコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モバイル装置用のトランスポート独立型ゲームＡＰＩ（アプリケーションプログラムインターフェイス）のためのシステムおよび方法を対象とする。
【背景技術】
【０００２】
ポケットＰＣ、携帯電話、携帯情報端末などのモバイル装置は、各装置が、他の装置によって提供されるサービス空間に同化して、機能性を増し続けている。ユーザは、こうしたモバイル装置のどの１つにおいても実行することができる機能および作業を選択することができる。音声データの処理、ポータブルコンピューティング、およびデータ管理の他、こうしたモバイル装置は、様々なアプリケーション、たとえばｅメール、ウェブブラウザ、ノートおよび文書処理アプリケーション、ゲームなどをサポートすることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
こうしたモバイル装置用のトランスポートプロトコルの多様性が増しているので、こうしたアプリケーションはそれぞれ、さらなる機能性を取り入れることができる。一例では、モバイル装置のユーザが、別のモバイル装置を使っている対戦相手とゲームを行うことを可能にする、モバイル装置上のある種のゲームが登場した。あるゲームは、ｅメールを使って、またはショートメッセージサービス（ＳＭＳ）を使って、モバイル装置のユーザの間でプレイすることができ、さらに別のゲームは、赤外線接続、またはおそらく有線接続を介してプレイすることができる。モバイル装置用のトランスポートプロトコルの多様性が増すのに伴い、モバイル装置上で行われるゲームの多様性も増す。
【課題を解決するための手段】
【０００４】
本発明は、モバイル装置用のトランスポート独立型ゲームＡＰＩ（アプリケーションプログラムインターフェイス）のためのシステムおよび方法を対象とする。このゲームＡＰＩは、モバイル装置の間のマルチプレーヤによるゲームセッションを可能にし、このセッションにおいて、モバイル装置の間のトランスポートプロトコルは、ユーザおよびゲームアプリケーション両方に対して透過的に切り換えることができる。
【０００５】
本発明の一態様では、ゲーム開発者は、モバイル装置上で使うためのトランスポート独立型ゲームを書くことができ、こうしたゲームによって、開発者は、存在し得る各トランスポートプロトコルについてネットワーク層を書かなくてよく、ゲーム論理、データ、およびユーザインターフェイスに集中できるようになる。このゲームＡＰＩにより、ゲームアプリケーションは、ゲームに影響を与えることなく、モバイル装置間でゲームデータを伝送するために複数の伝送プロトコルを切り換えることができるようになる。
【０００６】
本発明の別の態様では、ゲームセッションは、モバイル装置間にアドレス指定情報を提供することによって開始される。一実施形態では、初期プロトコルが選択され、アドレス情報、ならびにゲームのクラスおよびインスタンスを、ゲームセッションに参加している他のモバイル装置に移送（ｔｒａｎｓｐｏｒｔ）する。
【０００７】
本発明のさらに別の態様では、どのトランスポートプロトコルが最適プロトコルであるか、判定が行われる。たとえば、ゲームセッションは、ｅメールを使って開始されている場合があるが、ゲームＡＰＩは、別のトランスポートプロトコルを使うとデータ伝送がより最適なものになると判定する。最適プロトコルは、選択可能なパラメータの組に従って決定される。このパラメータの組は、どのトランスポートプロトコルがすぐに使用可能であるか、どのトランスポートプロトコルが最速のデータ転送速度を可能にするか、どのトランスポートプロトコルが最も費用効率が高いか、などを含むことができる。こうしたパラメータは、客観的評価処理による重要性に従って評価することも、ユーザによって重要性に合わせて評価することもできる。
【０００８】
本発明のさらに別の態様では、各トランスポートプロトコルが監視され、トランスポートプロトコルを介して新しいゲームデータが受信されると、ゲームサブシステムが通知を受ける。ゲームサブシステムは次いで、新しいデータ、およびどこに新しいデータがあるかを、ゲームに通知する。ゲームは次いで、さらなるゲームプレイのために新しいデータを取り出す。
【発明を実施するための最良の形態】
【０００９】
簡潔に述べると、本発明は、ゲームアプリケーションが、モバイル装置間でゲームデータを伝送するために複数の伝送プロトコルを切り換えることを可能にする、トランスポート独立型ゲームＡＰＩ（アプリケーションプログラムインターフェイス）を対象とする。ゲーム開発者は、モバイル装置上で使うためのトランスポート独立型ゲームを書くことができ、こうしたゲームによって、開発者は、存在し得る各トランスポートプロトコルについてネットワーク層を書かなくてよく、ゲーム論理、データ、およびユーザインターフェイスに集中できるようになる。本発明のこうしたおよび他の態様は、以下の詳細な説明を読むことにより、当業者に明らかになるであろう。
【００１０】
例示的な動作環境
図１を参照すると、本発明を実施する例示的な一システムは、モバイル装置として動作するように構成することができるコンピューティングデバイス、たとえばコンピューティングデバイス１００を含む。ごく基本的な構成において、コンピューティングデバイス１００は通常、少なくとも１つの処理装置１０２およびシステムメモリ１０４を含む。コンピューティングデバイスの正確な構成およびタイプによると、システムメモリ１０４は、揮発性（たとえばＲＡＭ）でも、不揮発性（たとえばＲＯＭ、フラッシュメモリなど）でも、この２つの何らかの組合せでもよい。システムメモリ１０４は通常、オペレーティングシステム１０５、１つまたは複数のプログラムモジュール１０６を含み、プログラムデータ１０７を含むことができる。この基本構成を、破線１０８内の構成要素によって図１に示す。
【００１１】
コンピューティングデバイス１００は、追加の特徴または機能性を有することができる。たとえば、コンピューティングデバイス１００は、追加のデータ記憶装置（取外し可能および／または固定型）、たとえば磁気ディスク、光ディスク、またはテープなどを含むこともできる。このような追加の記憶装置を、図１に取外し可能記憶装置１０９および固定型記憶装置１１０で示す。コンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実施される揮発性媒体および不揮発性媒体、取外し可能媒体および固定型媒体を含むことができる。システムメモリ１０４、取外し可能記憶装置１０９および固定型記憶装置１１０はすべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは、所望の情報を記憶するのに使うことができるとともにコンピューティングデバイス１００によってアクセスすることができる他のどの媒体も含むが、それに限定されない。このようなどのコンピュータ記憶媒体も、装置１００の一部でよい。コンピューティングデバイス１００は、入力装置（群）１１２、たとえばキーボード、マウス、ペン、音声入力装置、タッチ式入力装置なども有することができる。出力装置（群）１１４、たとえばディスプレイ、スピーカ、プリンタなどを含めることもできる。これらの装置は、当該分野において公知であり、ここで詳細に説明する必要はない。
【００１２】
コンピューティングデバイス１００は、たとえばネットワークを介して装置が他のコンピューティングデバイス１１８と通信することを可能にする通信接続１１６を含むこともできる。通信接続１１６は、通信媒体の一例である。通信媒体は一般に、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータによって、被変調データ信号、たとえば搬送波や他の移送機構として具体化することができ、どの情報配信媒体も含む。「被変調データ信号」という用語は、信号に情報を符号化するようにその特性の１つまたは複数が設定されまたは変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体を含む。本明細書で使用するコンピュータ読取可能媒体という用語は、記憶媒体および通信媒体両方を含む。
【００１３】
図２を参照すると、本発明を実施する例示的な一システムは、モバイル装置として構成されるコンピューティングデバイス、たとえばモバイル装置２００を含む。モバイル装置２００は、プロセッサ２６０、メモリ２６２、ディスプレイ２２８、およびキーパッド２３２を有する。メモリ２６２は一般に、揮発性メモリ（たとえばＲＡＭ）および不揮発性メモリ（たとえばＲＯＭ、フラッシュメモリなど）両方を含む。モバイル装置２００は、オペレーティングシステム２６４、たとえばマイクロソフトコーポレーションのウィンドウズ（登録商標）ＣＥオペレーティングシステムや他のオペレーティングシステムを含み、オペレーティングシステム２６４は、メモリ２６２に常駐し、プロセッサ２６０上で実行される。キーパッド２３２は、（たとえば一般的な電話の）押しボタン式の数字ダイアルパッド、複数キーによるキーボード（たとえば従来のキーボード）でよい。ディスプレイ２２８は、液晶ディスプレイでも、一般にモバイル装置において使われる他のどのタイプのディスプレイでもよい。ディスプレイ２２８は、タッチセンサ型でもよく、そうである場合は入力装置としても働く。周辺装置ポート２３０は、追加メモリカード、ゲームカード、モデムカード、または他の周辺装置を受け入れるタイプのものでよい。
【００１４】
１つまたは複数のアプリケーションプログラム２６６が、メモリ２６２にロードされ、オペレーティングシステム２６４上で実行される。アプリケーションプログラムの例には、ゲームプログラム、電話ダイアラプログラム、インストールウィザードプログラム、ｅメールプログラム、スケジューリングプログラム、ＰＩＭ（個人情報管理）プログラム、文書処理プログラム、表計算プログラム、インターネットブラウザプログラム、データスケーリングプログラムなどがある。モバイル装置２００は、メモリ２６２内に不揮発性記憶装置２６８も含む。不揮発性記憶装置２６８は、モバイル装置２００の電源が切られても失われるべきでない永続情報を格納するのに使うことができる。アプリケーション２６６は、たとえばｅメールアプリケーションによって使われるｅメールや他のメッセージ、ＰＩＭによって使われる連絡先情報、スケジューリングプログラムによって使われる予定情報、文書処理プログラムによって使われる文書、デバイスドライバプログラムなどの情報を使うことができ、そうした情報を記憶装置２６８に格納することができる。
【００１５】
モバイル装置２００は、１つまたは複数のバッテリとして実装することができる電源２７０を有する。電源２７０は、バッテリに電力を補給し、すなわちバッテリを充電する、ＡＣアダプタや電力供給用ドッキングクレードル（ｐｏｗｅｒｅｄ  ｄｏｃｋｉｎｇ  ｃｒａｄｌｅ）などの外部電力源をさらに含む可能性がある。
【００１６】
モバイル装置２００は、２つのタイプの外部通知機構、すなわちＬＥＤ２４０およびオーディオインターフェイス２７４も有して示してある。これらの装置は、アクティブにされると、プロセッサ２６０および他の構成要素がバッテリの電力を節約するためにシャットダウンされた場合でも、通知機構によって指示された期間はオン状態であるように、電源２７０に直接結合することができる。ＬＥＤ２４０は、ユーザが装置の電源オンの状況を指示する動作をとるまでは、オン状態を無期限に続けるようにプログラミングすることができる。オーディオインターフェイス２７４は、ユーザに可聴信号を提供し、ユーザから可聴信号を受信するのに使われる。たとえば、オーディオインターフェイス２７４は、可聴出力を提供するスピーカ、および可聴入力を受信するマイクロホンに結合することができ、電話での会話などを容易にする。
【００１７】
モバイル装置２００は、無線周波数通信の送受信機能を実施する無線インターフェイス層２７２も含む。無線インターフェイス層２７２は、モバイル装置２００と外部との間の、通信キャリアまたはサービスプロバイダを介した無線接続を容易にする。無線インターフェイス層２７２との間の伝送は、オペレーティングシステム２６４の制御下で行われる。言い換えると、無線インターフェイス層２７２によって受信される通信内容は、オペレーティングシステム２６４を介してアプリケーションプログラム２６６に、かつそれとは逆方向に配布することができる。
【００１８】
ゲームＡＰＩおよび移送処理
図３は、本発明による、ゲームＡＰＩ（アプリケーションプログラムインターフェイス）用のインターフェイスを全体的に示す機能ブロック図である。図に示すように、ゲームＡＰＩ３０４は、ゲームアプリケーション３０２と、たとえばｅメール３１０、ＳＭＳ３１１、赤外線３１２、ＴＣＰ／ＩＰ３１３、ブルートゥース３１４など、様々なトランスポートプロトコルとの間のネットワーク層または接続ポイントを提供する。一実施形態では、ゲームＡＰＩ３０４は、Ｗｉｎｓｏｃｋ（ウィンドウズ（登録商標）ソケット）ＡＰＩによって提供される機能を含む。Ｗｉｎｓｏｃｋとは、他のウィンドウズ（登録商標）アプリケーションソフトウェアとＴＣＰ／ＩＰプロトコルソフトウェアとの間のネットワーク層を提供する標準ＡＰＩである。
【００１９】
さらに、ゲームＡＰＩ３０４は、トランスポートプロトコル自体よりもむしろ、トランスポートプロトコルのシェル（たとえば３１０）に接続を提供することができる。各トランスポートプロトコルは、実際の移送機能を提供する接続シェルの外で提供される、異なるスレッドまたはプロトコルを有することができる。たとえば、ｅメールトランスポートプロトコル３１０は、それに既に含まれているｅメールメッセージの送受信機能を使って、ゲームデータの移送を実現する。このｅメール送受信機能は、ゲームデータを移送する以上のために提供され、したがって、ゲームに直接関わるプロトコルの外側にある。ｅメールプロトコルは、ｅメールプロトコルによって受信されるメッセージ中のゲームデータをみつけるフックを提供する。ゲームデータがみつかると、そのゲームデータは、ゲームＡＰＩへの接続を可能にするｅメールプロトコルシェルまたはプロキシ（たとえば３１０）に転送される。一実施形態では、プロトコルシェル（たとえば３１０）は、ゲームデータがゲームアプリケーション３０２によって取り出される前にゲームデータを一時的に格納するメモリファイルである。
【００２０】
一実施形態では、ゲームサブシステム３０６は、ゲームアプリケーション３０２用の通知システムとして動作する。ゲームデータがトランスポートプロトコルまたはトランスポートプロトコルシェルの１つ（たとえば３１０）によって受信されると、トランスポートシェルは、ゲームサブシステム３０６に通知を行う。トランスポートプロトコルまたはトランスポートシェルはそれぞれ、ゲームデータが受信されると、ゲームサブシステム３０６に通知を行う。ゲームサブシステム３０６は次いで、ゲームアプリケーション３０２に、ゲームデータが受信されたこと、およびゲームデータの位置を通知する。したがって、ゲームサブシステム３０６は、ゲームデータを移送するのにトランスポートプロトコルのどれが使われたかにかかわらず、一貫したプロトコルに従って、ゲームにゲームデータを通知する通知システムとして動作する。
【００２１】
図４は、本発明による、例示的なゲームデータ移送処理を示す論理フロー図である。処理４００は、開始ブロック４０２で始まり、ブロック４０２で、モバイル装置の電源が入れられ、マルチプレーヤ（すなわち、複数のプレーヤ）用ゲームアプリケーションが、ユーザによってアクティブにされている。処理４００は、ブロック４０４へ続く。
【００２２】
ブロック４０４で、モバイル装置と、少なくとも１つの他のモバイル装置またはコンピューティングデバイスとの間で、ゲームセッションが開始される。一実施形態では、セッション用のデータは、あるモバイル装置と別のモバイル装置との間の伝送用パケットに編成される。別の実施形態では、あるモバイル装置と別のモバイル装置の間でデータを伝送するためにソケットが確立される。セッションを開始するために、使用可能なプロトコルの１つが選択されて、モバイル装置の間のセッションを確立する。ゲームセッションを開始する例示的な処理は、以下の図５の説明で述べる。ゲームセッションが開始されている場合、処理は判断ブロック４０６に進む。
【００２３】
判断ブロック４０６で、どのトランスポートプロトコルが最適プロトコルであるか、判定が行われる。たとえば、ゲームセッションは、ｅメールを使って開始されている場合があるが、ゲームセッションが確立されている複数のモバイル装置が、互いのすぐ近くにある。ブルートゥースも、各モバイル装置のアドレス情報に従って選択可能なプロトコルとして、ゲームセッションにおけるすべてのモバイル装置上で使用可能である。ゲームＡＰＩは、選択可能なパラメータの組に従って、ブルートゥースプロトコルを使うとデータ伝送がより最適なものになると判定する。このパラメータの組は、どのトランスポートプロトコルがすぐに使用可能であるか、どのトランスポートプロトコルが最速のデータ転送速度を可能にするか、どのトランスポートプロトコルが最も費用効率が高いか、などを含むことができる。これらのパラメータは、客観的評価処理による重要性に従って評価することも、ユーザによって重要性に合わせて評価することもできる。たとえば、あるユーザは、データ転送速度が最も速い、使用可能プロトコルを使うことを好むが、別のユーザは、最も費用効率が高い、使用可能プロトコルをデフォルトで選択することを望む場合がある。ユーザインターフェイスは、トランスポートプロトコルを評価する方法を選択するために、各モバイル装置上に提供することができる。費用、速度、他のパラメータ、またはパラメータの組合せによる評価が最も高いトランスポートプロトコルが、最適プロトコルである。現在のプロトコルが最適プロトコルである場合、処理はブロック４１０に進む。現在のプロトコルが最適プロトコルでない場合、処理はブロック４０８に移る。
【００２４】
ブロック４０８で、ゲームデータを伝送するトランスポートプロトコルは、現在のプロトコルから、決定された最適プロトコルに切り換えられる。本明細書の説明から、プロトコルは、ゲームセッション中に複数回切り換えることができることを理解されたい。トランスポートプロトコルの切換えはゲームＡＰＩによって実現され、ユーザおよびゲームアプリケーション両方に対して透過的である。ユーザの視点からは、ゲームＡＰＩが切り換えるトランスポートプロトコルに応じて、ゲームデータの移送速度が増加しまたは低下する可能性を伴って、シームレスなゲームプレイが続く。ゲームアプリケーションの視点からは、どのトランスポートプロトコルが使われるかにかかわらず、データが、一貫したやり方でゲームアプリケーションによって受信され送信される。したがって、ゲームＡＰＩは、ユーザおよびゲームアプリケーション両方が、選択されたトランスポートプロトコルから独立して動作することを可能にするので、トランスポート独立型ゲームＡＰＩであるということができる。トランスポートプロトコルが切り換えられると、処理はブロック４１０に進む。
【００２５】
ブロック４１０で、ゲームデータは、最適プロトコルを用いて送信される。一実施形態では、直接ソケットベースの接続が、ホストモバイル装置と受信側モバイル装置（群）との間で確立される。直接ソケットベース接続の場合、ホストモバイル装置からのデータは、受信側モバイル装置（群）に直接送信される。たとえば、ホストモバイル装置上のゲームアプリケーションによって書込み動作が実施されると、データは、多くの中間ステップなしで受信側モバイル装置（群）に送信される。別の実施形態では、ゲームはパケットベースであり、または、パケットベースの接続がホストモバイル装置と受信側モバイル装置（群）との間で確立される。したがって、バッファ（図示せず）が、指定された量のゲームデータを格納するために各モバイル装置上に含まれる。ゲームデータの「パケット」が格納されると、そのパケットが提出されて、パケットベースの接続を介して送信される。ゲームデータが送信されると、処理は判断ブロック４１２に進む。
【００２６】
ブロック４１２で、データがモバイル装置によって受信されるか判定するために、各トランスポートプロトコルが監視される。データを受信する例示的な処理は、図６の説明において述べる。かなり長い時間が経過した後で、ゲームデータを待機する期間が「タイムアウト」する場合もあり、あるいは受信したデータが不完全である場合もある。両方の場合においてエラーメッセージを表示することができるが、モバイル装置によってデータが受信されると、処理は判断ブロック４１４へ続く。
【００２７】
判断ブロック４１４で、ゲームセッションが完了したか判定が行われる。ゲームセッションが完了していない場合、モバイル装置の間でさらにゲームデータが伝送されることになる。さらにゲームデータを伝送する場合、処理は判断ブロック４０６に戻り、ここで、使われているトランスポートプロトコルが、現在も最適トランスポートプロトコルであるか判定が行われる。ゲームセッションが完了している場合、処理はブロック４１６に移り、処理４００は終了する。
【００２８】
図５は、本発明による、例示的な移送開始処理を示す論理フロー図である。図４に示す処理４００がブロック４０４に入ると、処理５００は、ブロック５０２に入る。処理５００は、ブロック５０４へ続く。
【００２９】
ブロック５０４で、ゲームセッション用のゲームデータを伝送するための初期プロトコルが選択される。一実施形態では、初期プロトコルは、ゲームアプリケーションによって選択される。ゲームＡＰＩは、ゲームアプリケーションのための、選択用の選択肢を含む。ゲームアプリケーションが書かれるときに、初期プロトコルの選択を行うことができる。別の実施形態では、ゲームＡＰＩは、ユーザが、ゲームセッションの開始に先立って初期プロトコルを選択することを可能にするユーザインターフェイスを含む。たとえば、ユーザは、あるモバイル装置と別のモバイル装置の間でｅメールが使用可能であることを知ることができる。したがって、ユーザは、ゲームセッションがｅメールを介して開始されるよう選択することができる。さらに別の実施形態では、ゲームＡＰＩは、ゲームセッションを開始するための初期トランスポートプロトコルを決定する機能を含む。初期トランスポートプロトコルが選択されると、処理はブロック５０６へ続く。
【００３０】
ブロック５０６で、資格情報（ｃｒｅｄｅｎｔｉａｌ）、すなわちゲームセッション用のゲーム情報およびホストモバイル装置のアドレス情報が、受信側モバイル装置（群）に送信される。一実施形態では、ホストモバイル装置は、受信側モバイル装置（群）向けの、少なくとも１つの接続ポイントを識別済みである。たとえば、ユーザは、少なくとも１つの伝送方法を提供するために、受信側モバイル装置（群）のｅメールアドレスをホストモバイル装置に提供することができる。資格情報のゲーム情報は、開始されるゲームセッション用の、ゲームインスタンスの識別子とゲームのクラスとを含む。クラスは、どのゲームが行われているかを記述し、インスタンスは、同じクラスの複数のゲームの間で異なる。アドレス情報は、初期データをホストモバイル装置に返送するための情報を含む。ホストモバイル装置のアドレス情報は、単にホストモバイル装置に関連づけられたｅメールアドレスでもよく、ホストモバイル装置において利用可能なすべてのトランスポートプロトコルのアドレス情報を含むこともできる。アドレス情報は、ＩＰアドレス識別子、ｅメールアドレス、ＳＭＳ識別子、電話番号、ブルートゥースのアクセス許可、プロファイル情報、およびホストモバイル装置用の他のアドレス情報を含むことができる。さらに、ホストモバイル装置は、ホストモバイル装置上でどのプロトコルが使用可能であるかを、受信側モバイル装置（群）に通知する。処理は、ブロック５０８へ続く。
【００３１】
ブロック５０８で、送信の確認応答（ＡＣＫ）が、受信側モバイル装置（群）から、ホストモバイル装置によって受信される。ＡＣＫは、受信側モバイル装置（群）のゲーム情報およびアドレス情報を含む。受信側モバイル装置（群）は、ホストモバイル装置によって提供されたアドレス情報を使って、ホストモバイル装置にＡＣＫを送ることができる。一例では、ＡＣＫのアドレス情報は、ＩＰアドレス識別子、ｅメールアドレス、ＳＭＳ識別子、電話番号、ブルートゥースのアクセス許可、プロファイル情報、および受信側モバイル装置（群）用の他のアドレス情報を含む。ＡＣＫは、受信側モバイル装置（群）用の使用可能なプロトコルも含む。ＡＣＫがホストモバイル装置によって受信されると、ゲームセッションが開始される。次いで、ホストモバイル装置と受信側モバイル装置（群）との間のデータのパイプラインを提供するために、ソケット接続を確立することもでき、またはパケットベースのデータ伝送を用いてセッションを開始することもできる。処理５００は、ブロック５１０へ続き、処理は、図４に示す処理４００の判断ブロック４０４に戻る。
【００３２】
図６は、本発明による、例示的なデータ受信処理を示す論理フロー図である。処理６００は、図４に示す処理４００がブロック４１２に入ると、ブロック６０２に入る。処理６００は、ブロック６０４へ続く。
【００３３】
ブロック６０４で、モバイル装置のトランスポートプロトコルはそれぞれ、ゲームアプリケーションに関連して受信されたデータに対して監視される。たとえば、モバイル装置上のｅメールプロトコルのＩｎｂｏｘが、モバイル装置上にあるゲームアプリケーションに関連するどのｅメールメッセージも求めて監視される。受信されたデータは、どのトランスポートプロトコルが受信側モバイル装置（群）によって最適プロトコルであると選択されたかに従って、送信される。各トランスポートプロトコルが監視されると、処理は判断ブロック６０６に移る。
【００３４】
判断ブロック６０６で、新しいゲームデータが、ある特定のトランスポートプロトコルにおいて受信されているか、判断が行われる。各トランスポートプロトコルは、別個に監視され、そうすることによって、トランスポートプロトコルはそれぞれ、同時に監視されるようになる。新しいゲームデータが受信されない場合、処理はブロック６０４に戻り、トランスポートプロトコルの監視が続けられる。反対に、新しいゲームデータがトランスポートプロトコルの１つを介して受信されると、処理はブロック６０８に進む。
【００３５】
ブロック６０８で、新しいゲームデータを受信したトランスポートプロトコルまたはトランスポートプロトコルシェル（図３の説明を参照されたい）が、ゲームサブシステムに新しいデータを通知し、ゲームデータを、ゲームアプリケーションが使用する形式で格納する。ゲームサブシステムが通知を受けると、処理はブロック６１０に進む。
【００３６】
ブロック６１０で、ゲームサブシステムは、ゲームアプリケーションに、新しく受信したデータ、およびどこにデータが置かれているかを通知する。一実施形態では、通知とともに記憶場所へのポインタが、ゲームアプリケーションに提供される。ゲームアプリケーションが、新しいゲームデータが受信されたことを通知されると、処理はブロック６１２に進む。
【００３７】
ブロック６１２で、ゲームアプリケーションは、ゲームサブシステムによって指定された位置から、ゲームデータを取り出す。したがって、ゲームアプリケーションは、ゲームのプレイを進めるために、必要に応じて新しいゲームデータを処理することができる。処理６００は次いで、ブロック６１４へ続き、処理は図４に示す処理４００の判断ブロック４１４に戻る。
【００３８】
本発明の様々な実施形態の論理的な動作は、（１）計算機システム上で実行される一連のコンピュータ実装ステップもしくはプログラムモジュール、および／または（２）計算機システム内の相互接続されたマシン論理回路もしくは回路モジュールとして実装される。この実装形態は、本発明を実現する計算機システムの性能要件による、選択の問題である。したがって、本明細書で説明した本発明の実施形態を構成する論理的な動作は、動作（ｏｐｅｒａｔｉｏｎ）、構成装置、作用（ａｃｔｓ）、モジュールなど、様々な呼び方をされる。これらの動作、構成装置、作用、モジュールなどは、本明細書に添付する特許請求の範囲に記載する、本発明の精神および範囲から逸脱することなく、ソフトウェア、ファームウェア、特殊目的論理、アナログ回路、またはこれらのどの組合せでも実装できることが、当業者には理解されよう。
【００３９】
上記の詳細な説明、例およびデータは、本発明の方法および使用を完全に説明するものである。本発明の多くの実施形態は、本発明の精神および範囲から逸脱することなく行うことができるので、本発明は、本明細書に添付する特許請求の範囲に存在する。
【図面の簡単な説明】
【００４０】
【図１】本発明の例示的な一実施形態において使うことができる、例示的なコンピューティングデバイスを示す図である。
【図２】本発明の例示的な一実施形態において使うことができる、例示的なモバイル装置を示す図である。
【図３】本発明によるゲームＡＰＩ用のインターフェイスを全体的に示す機能ブロック図である。
【図４】本発明による例示的なゲームデータ移送処理を示す論理フロー図である。
【図５】本発明による例示的な移送開始処理を示す論理フロー図である。
【図６】本発明による例示的なゲームデータ受信処理を示す論理フロー図である。
【符号の説明】
【００４１】
１００  コンピューティングデバイス
１０２  処理装置
１０４  システムメモリ
１０５  オペレーティングシステム
１０６  プログラムモジュール
１０７  プログラムデータ
１０９  取外し可能記憶装置
１１０  固定型記憶装置
１１２  入力装置（群）
１１４  出力装置（群）
１１６  通信接続（群）
１１８  他のコンピューティングデバイス
２２８  ディスプレイ
２３０  周辺装置ポート
２３２  キーパッド
２６０  プロセッサ
２６２  メモリ
２６６  アプリケーション（群）
２６８  記憶装置
２７０  電源
２７２  無線インターフェイス層
２７４  オーディオインターフェイス
３００  インターフェイスアーキテクチャ
３０２  ゲームアプリケーション
３０４  ゲームアプリケーションプログラムインターフェイス（ＡＰＩ）
３０６  ゲームサブシステム
３１０  ｅメール
３１２  赤外線
３１４  ブルートゥース
【図１】
2005052643.tif 000003
【図２】
2005052643.tif 000004
【図３】
2005052643.tif 000005
【図４】
2005052643.tif 000006
【図５】
2005052643.tif 000007
【図６】
2005052643.tif 000008