JP2005021590A - 複数ユーザを同期させるシステムおよび同期方法 - Google Patents
複数ユーザを同期させるシステムおよび同期方法 Download PDFInfo
- Publication number
- JP2005021590A JP2005021590A JP2003270553A JP2003270553A JP2005021590A JP 2005021590 A JP2005021590 A JP 2005021590A JP 2003270553 A JP2003270553 A JP 2003270553A JP 2003270553 A JP2003270553 A JP 2003270553A JP 2005021590 A JP2005021590 A JP 2005021590A
- Authority
- JP
- Japan
- Prior art keywords
- client
- request
- clients
- response
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 通信トラヒックを増大させることなく、かつ、サーバおよびクライアントマシンの負荷も増大させることなく、クライアントマシン間の同期をとる。
【解決手段】 ネットワークを介して接続された複数のクライアント14を同期させて、一定のシーケンスに沿った処理を実行するサーバ12は、シーケンスに沿って次に実行すべき処理を特定して、必要な処理を実行するゲーム処理部16と、クライアント14からの状態取得要求に対して、把握されたシーケンスに基づく特定のクライアントからの状態変化通知の受理があるまで、当該クライアントからの状態取得要求を保留し、状態変化通知の受理の後、必要に応じて実行される処理があってから、状態取得要求に対する応答をクライアントに返す同期制御部18とを備えている。
【選択図】 図1
【解決手段】 ネットワークを介して接続された複数のクライアント14を同期させて、一定のシーケンスに沿った処理を実行するサーバ12は、シーケンスに沿って次に実行すべき処理を特定して、必要な処理を実行するゲーム処理部16と、クライアント14からの状態取得要求に対して、把握されたシーケンスに基づく特定のクライアントからの状態変化通知の受理があるまで、当該クライアントからの状態取得要求を保留し、状態変化通知の受理の後、必要に応じて実行される処理があってから、状態取得要求に対する応答をクライアントに返す同期制御部18とを備えている。
【選択図】 図1
Description
本発明は、複数の端末装置を同期させるシステムおよび方法に関する。
インターネットの普及により、複数のクライアントマシンを同期させて、コンテンツやデータを共有する状況が数多く見られるようになった。たとえば、多ユーザ参加型のリアルタイム対戦ゲームにおいては、クライアントマシンの同期が必要となる。
従来、リアルタイム対戦ゲームにおいては、たとえば、各クライアントマシンから、所定の間隔(1秒間隔など)で定期的に、サーバに状況を問い合わせ、その応答内容によって、クライアントマシンの側で、状況変化を把握していた。このような方法を採用すると、状況変化があったという応答をサーバからもらうまで、クライアントマシンは無意味な問い合わせを繰り返すことになり、通信トラヒックを増大させるとともに、サーバおよびクライアントマシンの負荷も増大させるという問題がある。また、問い合わせの間隔に応じてのみ、状態変化を把握することとなり即応性にも欠ける。
たとえば、特許文献1には、ホストとなるゲーム機(クライアントマシン)から同期信号を出力して、他のゲーム機(クライアントマシン)との同期をとること(特許文献1の図10参照)や、それぞれのゲーム機(クライアントマシン)がテレビジョン信号を受信して、その信号に基づいて、同期をとることが提案されている。しかしながら、前者においては、通信トラヒックの増大および各マシンの負荷を解決することはできず、後者においては、新たにテレビジョン信号を受理できるような構成を追加する必要も生じる。
特に、携帯電話のような携帯端末においては、インターネットを通じて行なう通信について、通信プロトコルとしてHTTP(HyperText Transfer Protocol)を利用することが前提となり、かつ、携帯端末に与えられるIPはキャリアゲートウェイを通じて通信を行なうことを前提として、ローカルなIPが与えられる。また、ローカルIPを持つ端末に対しては、外部(たとえばサーバ)から、直接データをプッシュ(push)して通信することができないという制約も課されている。
本発明は、通信トラヒックを増大させることなく、かつ、サーバおよびクライアントマシンの負荷も増大させることなく、クライアントマシン間の同期をとることができるシステムおよび方法を提供することを目的とする。また、本発明は、携帯電話のような端末でも、適切に複数の端末を同期させることができるシステムおよび方法を提供することを目的とする。
本発明の目的は、ネットワークを介して接続された複数のクライアントを同期させて、一定のシーケンスに沿った処理を実行するシステムであって、シーケンスに沿って次に実行すべき処理を特定して、必要な処理を実行する処理手段と、クライアントからの状態取得要求に対して、処理手段において把握されるシーケンスに基づく特定のクライアントからの状態変化通知の受理があるまで、当該クライアントからの状態取得要求を保留し、前記状態変化通知の受理の後、必要に応じて実行される処理手段による処理があってから、前記状態取得要求に対する応答を前記クライアントに返す同期制御手段とを備えたことを特徴とするシステムにより達成される。
本発明によれば、クライアントからの状態取得要求を、特定クライアントからの状態変化通知があるまで保留することで、クライアントの同期をはかる。これにより、クライアントが所定の時間間隔で問い合わせをする必要がなくなる。これにより、トラヒックの増大、サーバおよびクライアントの負荷の増大を防止することが可能となる。
好ましい実施態様においては、前記同期制御手段が、全てのクライアントからの状態取得要求を受理した上で、当該要求に対する応答を、前記全てのクライアントに返す。
また、好ましい実施態様においては、前記同期制御手段が、全てのクライアントからの状態取得要求を受理した上で、前記シーケンスに基づき特定のクライアントに対して、特定の応答を返し、さらに、当該特定のクライアントからのさらなる要求を受理した後、前記特定のクライアントおよび他のクライアントに応答を返す。
別の好ましい実施態様においては、前記同期制御手段が、特定のクライアントからの要求を受理した上で、これを保留し、他のクライアントからの他の要求を受理した後、前記特定のクライアントおよび他のクライアントに応答を返す。
上述したような保留、および、受理した後の応答の送信を組み合わせることにより、種々のシーケンスにしたがって、クライアントを同期させつつ処理を進めることが可能となる。
上述したような保留、および、受理した後の応答の送信を組み合わせることにより、種々のシーケンスにしたがって、クライアントを同期させつつ処理を進めることが可能となる。
前記一定のシーケンスは、ゲームであっても良い。ゲームには、麻雀ゲーム、カードゲームなどが含まれる。
また、前記クライアントとサーバとの間の通信が、HTTPに従っていても、適切に同期を図りつつ処理を進めることが可能である。
また、前記クライアントとサーバとの間の通信が、HTTPに従っていても、適切に同期を図りつつ処理を進めることが可能である。
また、本発明の目的は、ネットワークを介して接続された複数のクライアントを同期させて、一定のシーケンスに沿った処理を実行する方法であって、シーケンスに沿って次に実行すべき処理を特定して、必要な処理を実行する処理ステップと、クライアントからの状態取得要求に対して、処理ステップにおいて把握されるシーケンスに基づく特定のクライアントからの状態変化通知の受理があるまで、当該クライアントからの状態取得要求を保留し、前記状態変化通知の受理の後、必要に応じて実行される処理があってから、前記状態取得要求に対する応答を前記クライアントに返す同期制御ステップとを備えたことを特徴とするシステムによっても達成される。
好ましい実施態様においては、前記同期制御ステップが、全てのクライアントからの状態取得要求を受理した上で、当該要求に対する応答を、前記全てのクライアントに返すステップを含む。
また、好ましい実施態様においては、前記同期制御ステップが、全てのクライアントからの状態取得要求を受理した上で、前記シーケンスに基づき特定のクライアントに対して、特定の応答を返し、さらに、当該特定のクライアントからのさらなる要求を受理した後、前記特定のクライアントおよび他のクライアントに応答を返すステップを含む。
別の好ましい実施態様においては、同期制御ステップが、特定のクライアントからの要求を受理した上で、これを保留し、他のクライアントからの他の要求を受理した後、前記特定のクライアントおよび他のクライアントに応答を返すステップを含む。
別の好ましい実施態様においては、同期制御ステップが、特定のクライアントからの要求を受理した上で、これを保留し、他のクライアントからの他の要求を受理した後、前記特定のクライアントおよび他のクライアントに応答を返すステップを含む。
本発明によれば、通信トラヒックを増大させることなく、かつ、サーバおよびクライアントマシンの負荷も増大させることなく、クライアントマシン間の同期をとることができるシステムおよび方法を提供することが可能となる。また、本発明によれば、携帯電話のような端末でも、適切に複数の端末を同期させることができるシステムおよび方法を提供することが可能となる。
以下、添付図面を参照して、本発明の実施の形態について説明する。図1に示すように、本発明の実施の形態においては、インターネット10に、サーバ12および複数のクライアント14−1、14−2、14−3、14−4が接続されている。本実施の形態においては、クライアント14−1〜14−4として、キャリアゲートウェイ(図示せず)を介してインターネットに接続可能な携帯電話が利用される。また、図1においては、4つのクライアントのみを図示したが、無論、それより多く、或いは少ない数のクライアントが接続され、サーバ12とのデータ授受をなす場合があることはいうまでもない。また、クライアントは、携帯電話に限定されず、通常のパーソナルコンピュータなどであっても良い。
クライアント14−1〜14−4と、サーバ12との間の通信プロトコルはHTTPであり、基本的に、クライアント14からリクエストがサーバ12に伝達され、サーバ12からレスポンスがクライアント14に返されることによりデータ通信が実現される。
本実施の形態においては、4つのクライアント14−1〜14−4を同期させることにより、所定のゲーム(麻雀)をすることができる。無論、カードゲームを含む他のゲームを実現可能であることも言うまでもない。
図1に示すように、サーバ12は、ゲームプログラムやゲーム結果等を記憶した記憶装置15と、記憶装置からゲームプログラムを読み出して、ゲームを進行させるゲーム処理部16と、ゲーム処理部16によるゲーム進行情報に基づいて、ゲームに参加しているプレーヤを同期させるために必要な処理を実行するプレーヤ同期部18と、インターネット10を介して、プレーヤのクライアントとの通信を制御する通信インタフェース(I/F)20とを備えている。ゲーム処理部16およびプレーヤ同期部18は、実際には、サーバにて動作するサーブレットにより実現される。
図1に示すように、サーバ12は、ゲームプログラムやゲーム結果等を記憶した記憶装置15と、記憶装置からゲームプログラムを読み出して、ゲームを進行させるゲーム処理部16と、ゲーム処理部16によるゲーム進行情報に基づいて、ゲームに参加しているプレーヤを同期させるために必要な処理を実行するプレーヤ同期部18と、インターネット10を介して、プレーヤのクライアントとの通信を制御する通信インタフェース(I/F)20とを備えている。ゲーム処理部16およびプレーヤ同期部18は、実際には、サーバにて動作するサーブレットにより実現される。
本実施の形態においては、基本的に、サーバ12とクライアント14−1〜14−4の間では、HTTPプロトコル上で、クライアントからの要求(リクエスト)に対する応答(レスポンス)を同期制御する。サーバに対するリクエストには、ゲーム進行において順番(たとえば、牌を場に捨てる順番)のプレーヤのクライアント(順番対象クライアント)からの状態変化通知や、他のクライアント(順番待ちクライアント)からの状態取得要求が含まれる。また、サーバからのレスポンスには、状態変化通知が含まれる。サーバ12は、たとえば、クライアントからの状態取得要求に対して、特定のクライアントからの状態変化通知があるまで、クライアントへの応答を保留し、状態変化通知を受理した時点で応答を返すようになっている。
また、クライアント14−1〜14−4には、麻雀ゲームを実行するための所定の機能を備えたプログラムがダウンロードされる。このプログラムは、サーバから送られた牌の情報に基づく牌の表示、プレーヤからの入力の受付、入力による捨て牌のサーバへの通知、ポン、チー、槓、ロン、ツモなどのサーバへの通知が可能である。また、このプログラムにより、他のプレーヤがポン、チー、槓などをした場合に、その旨や牌を表示することもできる。また、プログラムにより、クライアント14は、状態変化通知を受理すると、状態取得要求をサーバ12に送信できるようになっている。
このように構成されたサーバ12を利用して、4つのクライアント14−1〜14−4が麻雀ゲームをする場合について、以下に説明する。図2は、種々のタイミングにおけるサーブレットの構成を示す図である。それぞれのサーブレットについて、以下に説明する。
[EntryMajang]
対戦相手を募集するサーブレットである。ここでは、4つのクライアントからの要求が揃うまで、HTTP応答を行なわない。4つのクライアントからの要求があると、サーブレット「EntryMajang」は、アクセスしてきたクライアントのそれぞれに、セッションIDを返す。セッションIDは、サーブレットAPIの「getSession(true)」というメソッドを利用して得る。また、セッションには、現状のプレーヤの情報を記録する「MjPlayer」と、4人のプレーヤをメンバーに持つ「Party」クラスのインスタンスを割り当てる。
対戦相手を募集するサーブレットである。ここでは、4つのクライアントからの要求が揃うまで、HTTP応答を行なわない。4つのクライアントからの要求があると、サーブレット「EntryMajang」は、アクセスしてきたクライアントのそれぞれに、セッションIDを返す。セッションIDは、サーブレットAPIの「getSession(true)」というメソッドを利用して得る。また、セッションには、現状のプレーヤの情報を記録する「MjPlayer」と、4人のプレーヤをメンバーに持つ「Party」クラスのインスタンスを割り当てる。
[BaState]
現在の場の状態を得るとともに、配牌を行なって、クライアントに配牌状況を返す。
現在の場の状態を得るとともに、配牌を行なって、クライアントに配牌状況を返す。
[KyokuState]
現在の局の状態を取得する。ツモの番にあるプレーヤにはツモの番であることおよびツモ牌を通知する(符号211参照)。ツモ番以外のプレーヤは、ツモ番のプレーヤが牌を捨てるのを待って捨て牌を通知する(符号212〜214参照)。ただし、ツモ番のプレーヤが暗槓、追加槓、ツモ和了した場合も、ツモ番以外のプレーヤに通知される。
現在の局の状態を取得する。ツモの番にあるプレーヤにはツモの番であることおよびツモ牌を通知する(符号211参照)。ツモ番以外のプレーヤは、ツモ番のプレーヤが牌を捨てるのを待って捨て牌を通知する(符号212〜214参照)。ただし、ツモ番のプレーヤが暗槓、追加槓、ツモ和了した場合も、ツモ番以外のプレーヤに通知される。
[DropHai]
クライアントからの捨て牌を受理する。このときに、ツモ番以外のプレーヤが、サーブレット「KyokuState」にアクセスしたまま待ち(wait)状態となっているため、「notifyAll」を実行する。また、牌を捨てた結果を通知する。この通知は、ツモ番以外のプレーヤ全てが、後述するサーブレット「CallNaki」を呼び出すまで待機する。
クライアントからの捨て牌を受理する。このときに、ツモ番以外のプレーヤが、サーブレット「KyokuState」にアクセスしたまま待ち(wait)状態となっているため、「notifyAll」を実行する。また、牌を捨てた結果を通知する。この通知は、ツモ番以外のプレーヤ全てが、後述するサーブレット「CallNaki」を呼び出すまで待機する。
[CallNaki]
ツモ番以外のプレーヤがツモ番の捨て牌に対するアクション(ポン、チー、ロン、槓)を受理する。アクションを起こさないプレーヤも必ず、サーブレット「CallNaki」にアクセスして、アクションを起こさない旨を通知する必要がある。このサーブレットは、プレーヤ全員からの通知を受理するまで待機し、アクションの調停を行なった後、アクションの実行可能なプレーヤに実行可能である旨を通知する。アクションの実行が許可されなかったプレーヤには、アクション実行不可である旨を通知する。
ツモ番以外のプレーヤがツモ番の捨て牌に対するアクション(ポン、チー、ロン、槓)を受理する。アクションを起こさないプレーヤも必ず、サーブレット「CallNaki」にアクセスして、アクションを起こさない旨を通知する必要がある。このサーブレットは、プレーヤ全員からの通知を受理するまで待機し、アクションの調停を行なった後、アクションの実行可能なプレーヤに実行可能である旨を通知する。アクションの実行が許可されなかったプレーヤには、アクション実行不可である旨を通知する。
[CallAnkan]
暗槓を行なうときに呼び出されるサーブレットである。暗槓が行なわれたことを登録して、サーブレット「KyokuState」で待機しているスレッドを全て起動する。起動されたスレッドは、通常と異なり、暗槓をクライアントに通知する。
暗槓を行なうときに呼び出されるサーブレットである。暗槓が行なわれたことを登録して、サーブレット「KyokuState」で待機しているスレッドを全て起動する。起動されたスレッドは、通常と異なり、暗槓をクライアントに通知する。
[EndKyoku]
和了および流局が起きた際に、全てのクライアントから呼ばれる。全てのクライアントにおいて、描画のタイミング合わせのため、全てのクライアントがアクセスするまで待機する。局の初期化およびスコアのやり取りもこのサーブレットが実行する。
和了および流局が起きた際に、全てのクライアントから呼ばれる。全てのクライアントにおいて、描画のタイミング合わせのため、全てのクライアントがアクセスするまで待機する。局の初期化およびスコアのやり取りもこのサーブレットが実行する。
図2では、クライアント14−1のプレーヤが捨て牌をして、その捨て牌に対して、あるプレーヤがロンをした状態を示している。この例では、対戦相手の募集からある局の終了までに、5回の同期ポイントが存在する。
以下、ゲーム進行の際の種々の場面での同期を、フローチャートを参照してより詳細に説明する。まず、ゲームが開始される前に、麻雀ゲームへの参加者を募集する場合について、図3を参照して説明する。ここでは、サーバ12は、参加者を確定させるために、各クライアントからのゲーム参加要求(ステップ301〜304参照)がサーバ12に伝達されるまで、各クライアント14にレスポンスを返さない。クライアント14−1〜14−4からのゲーム参加要求を受理し、ゲームプログラムを参照して、ゲームを開始できると判断した場合、サーバ12は、それぞれのクライアント14に、ほぼ同時に参加許可応答をレスポンスとして返す(ステップ305〜308参照)。これにより、各クライアント14を同期させることができる。これはサーブレット「EntryMajang」により実現される。
次いで、各クライアント14は、場の状態取得要求をサーバ12に伝達する(ステップ311〜314)。サーバ12においては、各クライアント14からの場の状態取得要求が伝達されるまで待機し、全ての要求を受理すると、場の状態応答を、各クライアント14に返す(ステップ315〜318)。場の状態応答においては、各プレーヤの場所、風、配牌および持ち点なども通知される。
図4は、クライアント14−1のプレーヤがツモ牌を取得してから、次のプレーヤがツモ牌を取得する直前までの一連の処理を示すタイミングチャートである。各クライアント14からサーバ12に状態取得要求が伝達されると(ステップ401〜404)、ツモ牌を取得すべきプレーヤが操作するクライアント14−1に対しては、ツモ順およびツモ牌の情報を応答として返す(ステップ405)。この段階では、他のクライアント14−2〜14−4に対しては、なんら応答を返さずに待機させる。
クライアント14−1から、捨て牌の情報を含む捨て要求がサーバ12に伝達されると(ステップ411)、サーバ12は、他のクライアント14−2〜14−4に、捨て牌を通知する(ステップ412〜414)。この通知が、先の状態取得要求に対する応答となる。すなわち、このタイミングで各クライアントの同期をとることができる。なお、クライアント14−1からの捨て要求に対する応答は、後述するように、引き続き実行される捨て牌に対するアクション要求に対する応答と同期される。
他のクライアント14−2〜14−4からは、捨て牌に対するアクション要求がサーバ12に伝達される(ステップ421〜ステップ423)。捨て牌に対してなんらアクションを起こさない場合には、何もしないことを意味する要求が伝達される。他のクライアント全てから、捨て牌に対するアクション要求を受理すると、サーバ12は、捨て牌をしたプレーヤのクライアント14−1に、応答として、捨て牌結果を通知するとともに(ステップ424)、他のクライアント14−2〜14−4に、アクション要求の応答を通知する(ステップ425〜427)。つまり、全ての他のクライアントから捨て牌に対するアクション要求を受理することにより、他のクライアントの同期をとり、捨て牌結果およびアクション要求の応答を通知することで、全てのクライアントの同期を取ることができる。
このように、あるプレーヤのツモ番において、状態取得要求に即座に応答するのは、ツモ番にあたっているプレーヤのクライアントに対してのみであり、それ以外のクライアントに対しては、ツモ番のプレーヤの捨て牌を待って応答が返されることになる。
図5は、次のツモ番に相当するクライアント14−2のプレーヤがツモ牌を取得してから、次のプレーヤがツモ牌を取得する直前までの一連の処理を示すタイミングチャートである。ツモ番に対応するクライアントが、クライアント14−1から14−2に変更された以外は、同様の処理が実行され、各クライアントの同期が取られていることが理解できるであろう。
次に、ある捨て牌に対して、他のプレーヤがポンをする場合の処理および各クライアントマシンの同期について、図6および図7を参照して説明する。この例では、クライアント14−1のプレーヤによる捨て牌に対して、クライアント14−3のプレーヤがポンをする。図6におけるステップ601〜ステップ614は、それぞれ、図4のステップ401〜ステップ414に相当する。
捨て牌通知を受理した他のクライアント14−2〜14−3は、サーバ12に、捨て牌に対するアクション要求を送信する(ステップ621〜623)。クライアント14−3からのアクション要求には、捨て牌に対するポンの要求が含まれる。
他のクライアント14−2〜14−4からのアクション要求を受理した状態で、サーバ12は、他のクライアント14−2〜14−4からのアクション要求を参照して、各アクションの調停を図る。より具体的には、ポン、チー、槓、ロンなどがアクション要求に含まれている場合には、サーバ12は、アクションの優先順にしたがってどのアクションが成立するかを判断する。
次いで、捨て牌をしたプレーヤのクライアント14−1に対して、捨て牌結果が通知されるとともに(ステップ624)、他のクライアント14−2〜14−3に対して、アクション要求に対する応答が通知される(ステップ625〜ステップ627)。ここでは、捨て牌結果として、クライアント14−3のプレーヤがポンをした旨が通知され、また、クライアント14−2、14−4に対しては、クライアント14−3のプレーヤがポンをしたこと、クライアント14−3には、アクション要求が成立したこと、つまりポンができたことが通知される。このタイミングで、クライアントの同期をはかることができる。
次いで、クライアント14−1、14−2および14−4からは、状態取得要求がサーバ12に伝達される(ステップ701〜703)。ポン、チーなどいわゆる鳴いた場合には、そのクライアントからは、状態取得要求は出力されない。クライアント14−1、14−2および14−4からの状態取得要求に対する応答は、クライアント14−3からの牌の捨て要求があるまで待機させられる。クライアント14−3から、牌の捨て要求がサーバ12に伝達されると(ステップ704)、サーバ12から、クライアント14−1、14−2および14−4に、応答として、捨て牌通知が伝達される(ステップ705〜707)。このタイミングで、クライアント14−1、14−2および14−4を同期させることができる。また、クライアント14−3からの捨て要求は、他のクライアント14−1、14−2および14−4からサーバに対して要求があるまで待機させられる。
サーバ12からの捨て牌通知を受理したクライアントにおける処理は、図4および図6を参照して説明したものとほぼ同様である。他のクライアント14−1、14−2および14−4は、捨て牌に対するアクション要求をサーバ12に伝達する(ステップ711〜713)。捨て牌に対して、さらに、ポン、チーなどのアクションも可能である。この例では、何もしないことを意味する要求が伝達されると考える。
クライアント14−1、14−2および14−4からのアクション要求を受理すると、サーバ12は、捨て牌にかかるクライアント14−3に、捨て要求に対する応答として、捨て牌結果を通知する(ステップ714)とともに、クライアント14−1、14−2および14−3に、アクション要求に対する応答を通知する(ステップ715〜717)。図示しないが、その後、クライアント14−1〜14−4が、サーバ12に場の状態取得要求を伝達することで、さらにゲームが進行する。
次に、あるプレーヤがツモ牌を暗槓および追加槓する場合について、図8および図9を参照して説明する。この例では、クライアント14−1のプレーヤがツモ牌で槓をする。図8におけるステップ801〜805は、図4のステップ401〜405に相当する。
ツモ牌を取得したクライアント14−1は、槓要求を、サーバ12に伝達する(ステップ806)。サーバ12は、これに応答して、槓があったことを示す槓通知を、他のクライアント14−2〜14−4に伝達する(ステップ807〜809)。ここでも、他のクライアント14−2〜14−4に対して、クライアント14−1からの何らかの要求(この場合には槓要求)があるまで応答を返さない。槓通知には、槓により新たに増えたドラの情報も含まれる。これにより、ステップ801〜803の状態取得要求に対する応答を同期させることできる。
次いで、サーバ14は、クライアント14−1の槓要求に対する応答(槓応答)を返す(ステップ810)。この槓応答においても、新たに増えたドラの情報が含まれる。続いて、他のクライアント14−2〜14−4は、サーバ12に、状態取得要求を伝達するが(ステップ901〜ステップ903参照)、サーバ12は、クライアント14−1からの捨て牌を示す捨て要求があるまで(ステップ904)、上記状態取得要求には応答しない。
クライアント14−1からの捨て要求を受理すると、サーバ12は、他のクライアント14−2〜14−4に対して、捨て牌情報を含む捨て牌通知を返す(ステップ905〜ステップ908)。これは、状態取得要求に対する応答であり、このタイミングで、他のクライアント14−2〜14−4の同期がはかられる。なお、クライアント14−1からの捨て要求に対する応答は、他のクライアント14−1〜14−4からの、捨て牌に対するアクション要求が揃うまで返されない。
次いで、他のクライアント14−2〜14−4からの捨て牌に対するアクション要求が、サーバ12に伝達されると(ステップ911〜913)、サーバ12は、捨て牌要求に対して、必要な場合には、各アクションの調停を図り、どのアクションが成立するかを判断する。この例では、他のクライアント14−2〜14−4からは、何もしないことを意味する要求が伝達されると考える。
クライアント14−2〜14−4からのアクション要求を受理すると、サーバ12は、捨て牌にかかるクライアント14−1に、捨て要求に対する応答として、捨て牌結果を通知する(ステップ914)とともに、クライアント14−2〜14−4に、アクション要求に対する応答を通知する(ステップ915〜ステップ917)。図示しないが、その後、クライアント14−1〜14−4が、サーバ12に場の状態取得要求を伝達することで、さらにゲームが進行する。
次に、あるプレーヤが他人の捨て牌でロンする場合について、図10および図11を参照して説明する。この例では、クライアント14−1のプレーヤの捨て牌で、クライアント14−3のプレーヤがロンをすることにより、この局のゲームが終了する。図10におけるステップ1001〜ステップ1014は、図4のステップ401〜414にそれぞれ対応する。クライアント14−1からの捨て要求に対する応答は、他のクライアント14−2〜14−4からの捨て牌に対するアクション要求があるまで待機させられる。
捨て牌通知を受理した他のクライアント14−2〜14−3は、サーバ12に、捨て牌に対するアクション要求を送信する(ステップ1021〜1023)。なお、クライアント14−3からのアクション要求には、捨て牌に対するロンの要求が含まれる。
他のクライアント14−2〜14−4からのアクション要求を受理した状態で、サーバ12は、他のクライアント14−2〜14−4からのアクション要求を参照して、各アクションの調停を図る。より具体的には、ポン、チー、槓などがアクション要求に含まれている場合には、サーバ12は、アクションの優先順にしたがってどのアクションが成立するかを判断する。この例では、クライアント14−1のプレーヤの捨て牌により、クライアント14−3のプレーヤがロンするというアクションが成立する。
次いで、捨て牌をしたプレーヤのクライアント14−1に対して、捨て牌結果が通知されるとともに(ステップ1024)、他のクライアント14−2〜14−3に対して、アクション要求に対する応答が通知される(ステップ1025〜ステップ1027)。ここでは、捨て牌結果として、クライアント14−3のプレーヤがロンをした旨が通知される。また、クライアント14−2、14−4に対しては、クライアント14−3のプレーヤがロンをしたこと、クライアント14−3には、アクション要求が成立したこと、つまりロンをしてあがったことが通知される。このタイミングで、クライアントの同期をはかることができる。
クライアント14−1〜14−4は、ゲームの局が終了したことから、終了状態要求を、サーバ12に伝達する(ステップ1101〜1104)。サーバ12は、全てのクライアントからの終了状態要求を受理することに応答して、終了状態通知を、クライアント14−1〜14−4に送信する(ステップ1105〜1106)。これにより、ゲームの局が終了する。
次に、あるプレーヤが自己のツモ牌でロンする場合について、図12および図13を参照して説明する。この例では、クライアント14−1のプレーヤが自己のツモ牌でロンする。図12におけるステップ1201〜ステップ1205は、図4のステップ401〜ステップ405にそれぞれ対応する。他のクライアント14−2〜14−4の状態取得要求に対する応答は、クライアント14−1からの要求がサーバに12に受理されるまで待機させられる。
クライアント14−1が、ツモ牌に対してツモによるあがりを要求すると(ステップ1206)、サーバ12は、他のクライアント14−2〜14−4に対して、状態取得要求の応答として、クライアント14−1のユーザがツモあがりをしたことを示すツモ通知を伝達する(ステップ1207〜1209)。また、サーバ12は、ツモ要求に対する応答(ツモ応答)を、クライアント14−1に送信する(ステップ1210)。
クライアント14−1〜14−4は、ゲームの局が終了したことから、終了状態要求を、サーバ12に伝達する(ステップ1301〜1304)。サーバ12は、全てのクライアントからの終了状態要求を受理することに応答して、終了状態通知を、クライアント14−1〜14−4に送信する(ステップ1305〜1306)。これにより、ゲームの局が終了する。
このように、本実施の形態においては、ゲーム進行に際して、特定のクライアントからの状態変化通知があるまで、クライアントからの状態取得要求を保留し、当が特定のクライアントからの通知を受理した段階で、応答を返すようになっている。ここでは、全てのクライアントからの要求が揃った場合に、全てのクライアントに応答を返す場合、あるクライアントの要求に対する応答を、特定のクライアントの要求や通知があってから返す場合などがある。これを組み合わせることにより、ゲーム中の必要な種々の時点で各クライアントを同期させることが可能となる。
本実施の形態によれば、サーバが、ユーザのクライアントからの要求に対して、特定のクライアントの要求や通知を受理したことを前提に応答を返すことで、クライアントの同期を実現している。したがって、クライアントが定期的にサーバに状況を問い合わせる必要がなく、トラヒックの増大や、問い合わせの際のサーバおよびクライアントの負荷の増大を防止することができる。また、クライアントが同期信号を別途取得する必要もなく、比較的簡単な構成でクライアントの同期を実現することが可能となる。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
たとえば、前記実施の形態においては、麻雀ゲームを複数のクライアントで進行させるために本発明を適用したがこれに限定されるものではなく、カードゲーム、ボードゲームなど複数のユーザが参加してリアルタイムに進行させる他のゲームにも本発明を適用可能であることは言うまでもない。特に、一定の順番が決められていれば、プレーヤの割り込み、スキップ、逆周りも実現することができる。したがって、汎用的な使用が可能である。
たとえば、前記実施の形態においては、麻雀ゲームを複数のクライアントで進行させるために本発明を適用したがこれに限定されるものではなく、カードゲーム、ボードゲームなど複数のユーザが参加してリアルタイムに進行させる他のゲームにも本発明を適用可能であることは言うまでもない。特に、一定の順番が決められていれば、プレーヤの割り込み、スキップ、逆周りも実現することができる。したがって、汎用的な使用が可能である。
また、前記実施の形態においては、クライアントとしてインターネットに接続可能な携帯電話が利用されている。携帯電話の通信がHTTPに限定され、かつ、携帯電話には、キャリアゲートウェイを通じて通信を行なうことを前提としてローカルIPが与えられているため、サーバから直接データをプッシュすることができないため、本発明は特に有用である。しかしながら、携帯電話に限定されず、クライアントとして通常のパーソナルコンピュータを使う場合にも本発明を適用することができる。たとえば、ブロードバンドルータ等によりIPアドレス変換がされた環境においても特別な設定が不要という利点がある。
12 サーバ
14 クライアント
15 記憶装置
16 ゲーム処理部
18 同期制御部
20 通信インタフェース
14 クライアント
15 記憶装置
16 ゲーム処理部
18 同期制御部
20 通信インタフェース
Claims (11)
- ネットワークを介して接続された複数のクライアントを同期させて、一定のシーケンスに沿った処理を実行するシステムであって、
シーケンスに沿って次に実行すべき処理を特定して、必要な処理を実行する処理手段と、
クライアントからの状態取得要求に対して、処理手段において把握されるシーケンスに基づく特定のクライアントからの状態変化通知の受理があるまで、当該クライアントからの状態取得要求を保留し、前記状態変化通知の受理の後、必要に応じて実行される処理手段による処理があってから、前記状態取得要求に対する応答を前記クライアントに返す同期制御手段とを備えたことを特徴とするシステム。 - 前記同期制御手段が、全てのクライアントからの状態取得要求を受理した上で、当該要求に対する応答を、前記全てのクライアントに返すことを特徴とする請求項1に記載のシステム。
- 前記同期制御手段が、全てのクライアントからの状態取得要求を受理した上で、前記シーケンスに基づき特定のクライアントに対して、特定の応答を返し、さらに、当該特定のクライアントからのさらなる要求を受理した後、前記特定のクライアントおよび他のクライアントに応答を返すことを特徴とする請求項1または2に記載のシステム。
- 前記同期制御手段が、特定のクライアントからの要求を受理した上で、これを保留し、他のクライアントからの他の要求を受理した後、前記特定のクライアントおよび他のクライアントに応答を返すことを特徴とする請求項1ないし3の何れか一項に記載のシステム。
- 前記一定のシーケンスが、ゲームに対応することを特徴とする請求項1ないし4の何れか一項に記載のシステム。
- 前記ゲームが麻雀ゲームであることを特徴とする請求項5に記載のシステム。
- 前記クライアントとサーバとの間の通信が、HTTPに従うことを特徴とする請求項1ないし6の何れか一項に記載のシステム。
- ネットワークを介して接続された複数のクライアントを同期させて、一定のシーケンスに沿った処理を実行する方法であって、
シーケンスに沿って次に実行すべき処理を特定して、必要な処理を実行する処理ステップと、
クライアントからの状態取得要求に対して、処理ステップにおいて把握されるシーケンスに基づく特定のクライアントからの状態変化通知の受理があるまで、当該クライアントからの状態取得要求を保留し、前記状態変化通知の受理の後、必要に応じて実行される処理があってから、前記状態取得要求に対する応答を前記クライアントに返す同期制御ステップとを備えたことを特徴とするシステム。 - 前記同期制御ステップが、全てのクライアントからの状態取得要求を受理した上で、当該要求に対する応答を、前記全てのクライアントに返すステップを含むことを特徴とする請求項8に記載の方法。
- 前記同期制御ステップが、全てのクライアントからの状態取得要求を受理した上で、前記シーケンスに基づき特定のクライアントに対して、特定の応答を返し、さらに、当該特定のクライアントからのさらなる要求を受理した後、前記特定のクライアントおよび他のクライアントに応答を返すステップを含むことを特徴とする請求項8または9に記載の方法。
- 前記同期制御ステップが、特定のクライアントからの要求を受理した上で、これを保留し、他のクライアントからの他の要求を受理した後、前記特定のクライアントおよび他のクライアントに応答を返すステップを含むことを特徴とする請求項8ないし10の何れか一項に記載の方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003270553A JP2005021590A (ja) | 2003-07-03 | 2003-07-03 | 複数ユーザを同期させるシステムおよび同期方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003270553A JP2005021590A (ja) | 2003-07-03 | 2003-07-03 | 複数ユーザを同期させるシステムおよび同期方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005021590A true JP2005021590A (ja) | 2005-01-27 |
Family
ID=34190475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003270553A Pending JP2005021590A (ja) | 2003-07-03 | 2003-07-03 | 複数ユーザを同期させるシステムおよび同期方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005021590A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006108355A1 (fr) * | 2005-04-12 | 2006-10-19 | Huawei Technologies Co., Ltd. | Procede fournissant des informations de salle de jeu a des joueurs mobiles |
JP2008287510A (ja) * | 2007-05-17 | 2008-11-27 | Nhn Corp | オンラインシステムの制御方法及びオンラインシステム |
WO2010140570A1 (ja) * | 2009-05-31 | 2010-12-09 | コミットメントテクノロジー株式会社 | 電子会議サーバおよびコンピュータプログラム |
-
2003
- 2003-07-03 JP JP2003270553A patent/JP2005021590A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006108355A1 (fr) * | 2005-04-12 | 2006-10-19 | Huawei Technologies Co., Ltd. | Procede fournissant des informations de salle de jeu a des joueurs mobiles |
JP2008287510A (ja) * | 2007-05-17 | 2008-11-27 | Nhn Corp | オンラインシステムの制御方法及びオンラインシステム |
WO2010140570A1 (ja) * | 2009-05-31 | 2010-12-09 | コミットメントテクノロジー株式会社 | 電子会議サーバおよびコンピュータプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5586257A (en) | Network architecture to support multiple site real-time video games | |
KR102392415B1 (ko) | 가상 토너먼트를 위한 동기화 모델 | |
US6026079A (en) | Modem to support multiple site call conferenced data communications | |
US6134590A (en) | Method and apparatus for automatically connecting devices to a local network | |
US5558339A (en) | Network architecture to support recording and playback of real-time video games | |
US5956485A (en) | Network architecture to support real-time video games | |
CN106161219B (zh) | 消息处理方法及装置 | |
US7936734B2 (en) | Portable cellular enhancer | |
CN101521874B (zh) | 一种实现单机手机游戏对战交互的方法、系统及客户端 | |
EP2879345A1 (en) | Method for multiple terminals to play multimedia file cooperatively and related apparatus and system | |
EP2352096B1 (en) | Information processing device and information processing method | |
EP1206954A1 (en) | Game machine, server system, information service method and recording medium | |
CN110120931B (zh) | 一种信息交互方法、装置及存储介质 | |
CN101222956A (zh) | 无缝游戏方法和设备 | |
EP2114540B1 (en) | System and method for initiating a gaming session using event-based exchange of information between communication devices | |
US8301708B2 (en) | Communication system, communication apparatus, communication server, communication method, information storage medium, and program | |
US11224804B2 (en) | Personalized remote game update capture and recording system for multi-player online games | |
KR20010081906A (ko) | 비디오게임 론칭 서버와 이를 이용한 네트워크를 통한비디오게임 시스템 및 방법 | |
CN108200480A (zh) | 一种游戏直播互动方法、相关设备及系统 | |
KR20020010913A (ko) | 통신 네트워크에서의 방법 및 장치 | |
JP2001170360A (ja) | 対戦ゲーム観戦システム | |
US9378614B2 (en) | Gaming machines players' communications | |
JP2014028016A (ja) | ゲーム制御装置及びゲームシステムの制御方法 | |
CN101420347B (zh) | 一种将Flash单机双人游戏在双主机上同步运行的方法 | |
JP2005021590A (ja) | 複数ユーザを同期させるシステムおよび同期方法 |