(57)【要約】【課題】マルチユーザネットワークゲームの製作システムを提供する。【解決手段】提供されるマルチユーザネットワークゲームの製作システムは、ネットワークを介してゲームサーバと複数のゲームクライアント間でなされるマルチユーザネットワークゲームの製作システムである。その製作システムは、マルチユーザネットワークゲームとマルチユーザネットワーク実行環境それぞれの製作およびデバッグのためのゲーム製作モジュールと、ゲーム製作モジュールによって製作され、または、デバッグされたマルチユーザネットワークゲームが実行される少なくとも１つのクライアントバーチャルマシンと少なくとも１つのサーババーチャルマシンを含む仮想ネットワーク実行環境を形成し、マルチユーザネットワークゲームの実行をエミュレーションするためのエミュレーションモジュールとを備えている。【選択図】図１
2010123118.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してゲームサーバと複数のゲームクライアント間でなされるマルチユーザネットワークゲームの製作システムであって、
前記マルチユーザネットワークゲームと前記マルチユーザネットワーク実行環境の製作およびデバッグのためのゲーム製作モジュールと、
前記ゲーム製作モジュールによって製作され、または、デバッグされた前記マルチユーザネットワークゲームが実行される、少なくとも１つのクライアントバーチャルマシンと少なくとも１つのサーババーチャルマシンを含む仮想ネットワーク実行環境を形成して前記マルチユーザネットワークゲームの実行をエミュレーションするためのエミュレーションモジュールと、
を備えていることを特徴とするマルチユーザネットワークゲームの製作システム。
【請求項２】
前記エミュレーションモジュールは、
前記少なくとも１つのクライアントバーチャルマシンと前記少なくとも１つのサーババーチャルマシンそれぞれを生成および制御し、前記マルチユーザネットワークゲームの実行をエミュレーションするためのバーチャルマシンコンテナと、
前記仮想ネットワーク実行環境を形成し、前記少なくとも１つのクライアントバーチャルマシンと前記少なくとも１つのサーババーチャルマシン間のネットワーク通信をエミュレーションするためのネットワークエミュレータと、
を備えていることを特徴とする請求項１に記載のマルチユーザネットワークゲームの製作システム。
【請求項３】
前記バーチャルマシンコンテナは、
前記少なくとも１つのクライアントバーチャルマシンを生成して前記マルチユーザネットワークゲームを実行させ、前記各クライアントバーチャルマシンでゲーム実行中に発生するイベントを、前記ネックワークエミュレータを介して前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンのうちの少なくとも１つに伝達するクライアントバーチャルマシンコンテナと、
前記少なくとも１つのサーババーチャルマシンを生成し、前記ネットワークエミュレータを介して前記クライアントバーチャルマシンコンテナから伝達される前記イベントを処理し、イベントの処理結果を、前記ネットワークエミュレータを介して前記クライアントバーチャルマシンコンテナへ伝達するサーババーチャルマシンコンテナと、
を備えて構成されることを特徴とする請求項２に記載のマルチユーザネットワークゲームの製作システム。
【請求項４】
前記クライアントバーチャルマシンコンテナは、
前記少なくとも１つのクライアントバーチャルマシンを生成して駆動するクライアントバーチャルマシン駆動モジュールと、
前記クライアントバーチャルマシン駆動モジュールを介した前記ネットワークエミュレータとのネットワーク通信を介して伝達されるネットワークイベントを前記クライアントバーチャルマシンに伝達するネットワークイベント管理モジュールと、
前記マルチユーザネットワークゲームの実行中にゲーム以外のオンラインサービスのためのサービスシステムと前記クライアントバーチャルマシンを連動させるための外部モジュール連動管理モジュールと、
前記マルチユーザネットワークゲームの画面が表示されるウィンドウと前記ウィンドウを介して発生するゲームイベントを、前記クライアントバーチャルマシン駆動モジュールを介して前記クライアントバーチャルマシンに伝達するウィンドウ制御管理モジュールと、
を備えていることを特徴とする請求項３に記載のマルチユーザネットワークゲームの製作システム。
【請求項５】
前記サーババーチャルマシンコンテナは、
前記少なくとも１つのサーババーチャルマシンを生成して駆動するサーババーチャルマシン駆動モジュールと、
前記サーババーチャルマシン駆動モジュールを介した前記ネットワークエミュレータとのネットワーク通信を介して伝達されるネットワークイベントを前記各サーババーチャルマシンに伝達するネットワークイベント管理モジュールと、
前記マルチユーザネットワークゲームの実行中にゲーム以外のオンラインサービスのためのサービスシステムと前記サーババーチャルマシンを連動させるための外部モジュール連動管理モジュールと、
前記サーババーチャルマシン駆動モジュールで複数のサーババーチャルマシンを生成および駆動するようにスレッドプールを提供するスレッド制御管理モジュールと、
を備えていることを特徴とする請求項３に記載のマルチユーザネットワークゲームの製作システム。
【請求項６】
前記ゲーム製作モジュールは、
ゲーム製作画面を用いて、前記マルチユーザネットワークゲームの製作のためのユーザインターフェースを提供するゲーム製作ユーザインターフェースと、
前記ゲーム製作画面を用いて、ユーザの前記マルチユーザネットワークゲームと前記ネットワーク実行環境の製作およびデバッグを実行するゲーム編集ツールと、
前記エミュレーションモジュールを駆動させ、前記エミュレーションモジュールの駆動による前記マルチユーザネットワークゲームの実行過程を前記ゲーム製作画面に提供するゲームプレビューアと、
を備えていることを特徴とする請求項１に記載のマルチユーザネットワークゲームの製作システム。
【請求項７】
前記ゲーム編集ツールは、スクリプト言語に基づいていることを特徴とする請求項６に記載のマルチユーザネットワークゲームの製作システム。
【請求項８】
前記エミュレーションモジュールは、前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンそれぞれと仮想のゲーム以外情報が格納された情報格納部との間の情報伝達を前記仮想のネットワーク実行環境においてエミュレーションするための情報格納部エミュレータをさらに備えていることを特徴とする請求項２に記載のマルチユーザネットワークゲームの製作システム。
【請求項９】
前記情報格納部エミュレータは、
前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンのうちの少なくとも１つからの情報伝達の要求に応答し、前記情報格納部から該当するゲーム以外情報をロードする情報ローダと、
前記情報ローダからロードされるゲーム以外情報を格納し、格納されたゲーム以外情報を該当する前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンのうちの少なくとも１つに伝達する一時格納部と、
を備えていることを特徴とする請求項８に記載のマルチユーザネットワークゲームの製作システム。
【請求項１０】
前記ゲーム以外情報は、スクリプト言語で作成されたスクリプトファイルであることを特徴とする請求項９に記載のマルチユーザネットワークゲームの製作システム。
【請求項１１】
ネットワークを介してゲームサーバと複数のゲームクライアント間でなされるマルチユーザネットワークゲームの製作方法であって、
前記マルチユーザネットワークゲームの製作のためのゲーム製作モジュールを実行してゲーム製作画面を提供し、
スクリプト言語に基づいて前記ゲーム製作モジュールを介して前記マルチユーザネットワークゲームのためのゲームスクリプトを製作し、
前記製作されたゲームスクリプトを実行するための少なくても１つのクライアントバーチャルマシンと少なくとも１つのサーババーチャルマシンを含む仮想ネットワーク実行環境を形成し、前記仮想ネットワーク実行環境において前記ゲームスクリプトの実行をエミュレーションし、
前記ゲームスクリプトの実行のエミュレーションの結果によって前記ゲーム製作モジュールを介して前記製作されたゲームスクリプトをデバッグすること、
を含んでなされることを特徴とするマルチユーザネットワークゲームの製作方法。
【請求項１２】
前記ゲームスクリプトの実行のエミュレーションは、
バーチャルマシンコンテナを用いて前記少なくとも１つのサーババーチャルマシンと前記少なくとも１つのクライアントバーチャルマシンそれぞれを生成して駆動し、
ネットワークエミュレータを用いて前記仮想ネットワーク実行環境を形成し、前記少なくとも１つのクライアントバーチャルマシンと前記少なくとも１つのサーババーチャルマシン間のネットワーク通信を中継し、
前記バーチャルマシンコンテナを用いて前記少なくとも１つのサーババーチャルマシンにサーバ用ゲームスクリプトをローディングさせて実行し、
前記バーチャルマシンコンテナを用いて前記各クライアントバーチャルマシンにクライアント用ゲームスクリプトをローディングさせて実行し、
前記各クライアントバーチャルマシンそれぞれの実行結果を前記ゲーム製作画面に提供すること、
を含んでなされることを特徴とする請求項１１に記載のマルチユーザネットワークゲームの製作方法。
【請求項１３】
前記ゲームスクリプトの製作は、
前記ゲーム製作モジュールを介して事前に製作されたゲームレベルをロードし、または、新たなゲームレベルを生成し、
前記ロードされたゲームレベルまたは前記生成された新たなゲームレベルを編集して前記ゲームスクリプトを生成すること、
を含んでなされることを特徴とする請求項１１に記載のマルチユーザネットワークゲームの製作方法。
【請求項１４】
前記ゲームレベルの編集は、
前記ロードされたゲームレベルまたは前記生成された新たなゲームレベルのスプライトまたはイメージを生成／編集するステップと、前記ロードされたゲームレベルまたは前記生成された新たなゲームレベルのゲームオブジェクトを定義／生成／編集するステップと、前記ロードされたゲームレベルまたは前記生成された新たなゲームレベルのゲームスクリプトを編集するステップとのうち、少なくとも１つのステップを含んでなされることを特徴とする請求項１３に記載のマルチユーザネットワークゲームの製作方法。
【請求項１５】
前記ゲームスクリプトの実行のエミュレーションは、前記仮想のネットワーク実行環境において前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンそれぞれと仮想のゲーム以外情報が格納された情報格納部との間の前記ゲーム以外情報の伝達のエミュレーションをさらに含んでなされることを特徴とする請求項１１に記載のマルチユーザネットワークゲームの製作方法。
【請求項１６】
前記ゲーム以外情報の伝達のエミュレーションは、
前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンのうちの少なくとも１つからの情報伝達の要求に応答し、前記仮想の情報格納部から該当するゲーム以外情報をロードし、
前記ロードされるゲーム以外情報を一時的に格納し、
前記一時的に格納されたゲーム以外情報を該当する前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンのうちの少なくとも１つに伝達すること、
を含んでなされることを特徴とする請求項１５に記載のマルチユーザネットワークゲームの製作方法。
【請求項１７】
前記ゲーム以外情報は、スクリプト言語で作成されたスクリプトファイルであることを特徴とする請求項１６に記載のマルチユーザネットワークゲームの製作方法。
【請求項１８】
請求項１１から１７いずれかの方法を計算機に実行させるためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチユーザネットワークゲーム製作システムおよび方法に関する。より詳細には、１つのゲーム製作ツールを用いて、マルチユーザネットワークゲームの製作とデバッグおよびマルチユーザネットワークゲーム環境を簡便に形成し、ゲーム製作時間を短縮させることができるようにしたマルチユーザネットワークゲームの製作システムおよび方法に関する。
【背景技術】
【０００２】
近年、コンピュータの普及が進み、コンピュータを使用する人が増加している。これに伴い、コンピュータを用いたネットワーク（オンライン）ゲームも発展する傾向にある。ゲーム製作ツールを用いてネットワークゲームをプログラミングする企業などは、多様なネットワークゲームを提供するために多くの人力を投入している。ここで、ゲーム製作ツールとは、ゲームに必要なデザイン要素と、サウンドなどのユーザインターフェースを構成するコンテンツと、ゲーム実行に必要なロジックとを組み合わせてゲームを完成するための道具である。
【０００３】
特に、現在、ネットワークゲームにおいては、複数のユーザが同時に１つのゲームを進めるマルチユーザ（Ｍｕｌｔｉ−Ｕｓｅｒ）形態のゲームが増加している。
【０００４】
しかしながら、従来のゲーム製作ツールの大部分は、１人で楽しむシングルユーザ（Ｓｉｎｇｌｅ−Ｕｓｅｒ）ゲームを製作することに重点が置かれている。
【０００５】
したがって、従来のマルチユーザネットワークゲームの製作方法は、ゲームクライアントの開発が可能なように構成されたゲーム製作ツールを用いてゲームクライアントを開発するステップと、ゲームサーバの開発が可能なように構成された別のゲーム製作ツールを用いてゲームサーバを開発するステップと、開発されたゲームクライアントとゲームサーバそれぞれの実行を繰り返し実行してネットワーク実行環境およびマルチプレイ実行環境を形成するステップとを含んでなされることとなる。
【０００６】
したがって、従来のマルチユーザネットワークゲームの製作方法は、次のような問題点がある。
【０００７】
第１に、ゲームクライアントとゲームサーバそれぞれを別途のゲーム製作ツールを用いて開発しなければならない。このため、マルチユーザネットワークゲームの製作に多くの時間が必要となるという問題点がある。
【０００８】
第２に、ネットワークゲームサービスシステムごとにネットワーク実行環境およびマルチプレイ実行環境が異なる。このため、ネットワークゲームサービスシステムに設けて他のサーバシステムとの連動のために開発されたゲームを修正する過程が必要となる。したがって、ネットワークゲームをサービスすることが困難となるという問題点がある。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、上述した問題点を解決するためのものであり、１つのゲーム製作ツールを介してマルチユーザネットワークゲームの製作とデバッグおよびマルチユーザネットワークゲーム環境を簡便に形成し、ゲーム製作時間を短縮させることができるようにしたマルチユーザネットワークゲームの製作システムおよび方法を提供することを技術的課題とする。
【課題を解決するための手段】
【００１０】
上述した技術的課題を達成するために、本発明の実施形態に係るマルチユーザネットワークゲームの製作システムは、ネットワークを介してゲームサーバと複数のゲームクライアント間でなされるマルチユーザネットワークゲームの製作システムであって、前記マルチユーザネットワークゲームと前記マルチユーザネットワーク実行環境それぞれの製作およびデバッグのためのゲーム製作モジュールと、前記ゲーム製作モジュールによって製作され、または、デバッグされた前記マルチユーザネットワークゲームを実行する少なくとも１つのクライアントバーチャルマシンと少なくとも１つのサーババーチャルマシンを含む仮想ネットワーク実行環境を形成し、前記マルチユーザネットワークゲームの実行をエミュレーションするためのエミュレーションモジュールを備えて構成される。
【００１１】
一実施形態において、前記エミュレーションモジュールは、前記少なくとも１つのクライアントバーチャルマシンと前記少なくとも１つのサーババーチャルマシンそれぞれを生成および制御し、前記マルチユーザネットワークゲームの実行をエミュレーションするためのバーチャルマシンコンテナと、前記仮想ネットワーク実行環境を形成し、前記少なくとも１つのクライアントバーチャルマシンと前記少なくとも１つのサーババーチャルマシン間のネットワーク通信をエミュレーションするためのネットワークエミュレータとを備えて構成される。
【００１２】
一実施形態において、前記バーチャルマシンコンテナは、前記少なくとも１つのクライアントバーチャルマシンそれぞれを生成して前記マルチユーザネットワークゲームを実行し、前記各クライアントバーチャルマシンでゲーム実行中に発生するイベントを、前記ネックワークエミュレータを用いて、前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンのうちの少なくとも１つに伝達するクライアントバーチャルマシンコンテナと、前記少なくとも１つのサーババーチャルマシンそれぞれを生成し、前記ネットワークエミュレータを用いて前記クライアントバーチャルマシンコンテナから伝達される前記イベントを処理し、イベント処理結果を、前記ネットワークエミュレータを用いて、前記クライアントバーチャルマシンコンテナから伝達するサーババーチャルマシンコンテナとを備えて構成される。
【００１３】
一実施形態において、前記クライアントバーチャルマシンコンテナは、前記少なくとも１つのクライアントバーチャルマシンを生成して駆動するクライアントバーチャルマシン駆動モジュールと、前記クライアントバーチャルマシン駆動モジュールを介した前記ネットワークエミュレータとのネットワーク通信を介して伝達されるネットワークイベントを前記各クライアントバーチャルマシンに伝達するネットワークイベント管理モジュールと、前記マルチユーザネットワークゲームの実行中にゲーム以外のオンラインサービスのためのサービスシステムと前記クライアントバーチャルマシンを連動させるための外部モジュール連動管理モジュールと、前記マルチユーザネットワークゲームの画面が表示されるウィンドウと前記ウィンドウを介して発生するゲームイベントを、前記クライアントバーチャルマシン駆動モジュールを介して前記クライアントバーチャルマシンに伝達するウィンドウ制御管理モジュールとを備えて構成される。
【００１４】
一実施形態において、前記サーババーチャルマシンコンテナは、前記少なくとも１つのサーババーチャルマシンを生成して駆動するサーババーチャルマシン駆動モジュールと、前記サーババーチャルマシン駆動モジュールを介した前記ネットワークエミュレータとのネットワーク通信を介して伝達されるネットワークイベントを前記各サーババーチャルマシンに伝達するネットワークイベント管理モジュールと、前記マルチユーザネットワークゲームの実行中にゲーム以外のオンラインサービスのためのサービスシステムと前記サーババーチャルマシンを連動させるための外部モジュール連動管理モジュールと、前記サーババーチャルマシン駆動モジュールで複数のサーババーチャルマシンを生成および駆動するようにスレッドプール（Ｔｈｒｅａｄ  Ｐｏｏｌ）を提供するスレッド制御管理モジュールとを備えて構成される。
【００１５】
一実施形態において、前記ゲーム製作モジュールは、ゲーム製作画面を介して前記マルチユーザネットワークゲームの製作のためのユーザインターフェースを提供するゲーム製作ユーザインターフェースと、前記ゲーム製作画面を介したユーザの前記マルチユーザネットワークゲームと前記ネットワーク実行環境の製作およびデバッグを実行するゲーム編集ツールと、前記エミュレーションモジュールを駆動させ、前記エミュレーションモジュールの駆動による前記マルチユーザネットワークゲームの実行過程を前記ゲーム製作画面に提供するゲームプレビューアとを備えて構成される。
【００１６】
一実施形態において、前記ゲーム編集ツールは、スクリプト言語に基づいていることを特徴とする。
【００１７】
一実施形態において、前記エミュレーションモジュールは、前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンそれぞれと仮想のゲーム以外の情報が格納された情報格納部との情報伝達を前記仮想のネットワーク実行環境でエミュレーションするための情報格納部エミュレータをさらに備えて構成される。
【００１８】
一実施形態において、前記情報格納部エミュレータは、前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンのうちの少なくとも１つからの情報伝達の要求に応答し、前記情報格納部から該当するゲーム以外情報をロードするゲーム以外情報ローダと、前記ゲーム以外情報ローダからロードされるゲーム以外情報を格納し、格納されたゲーム以外情報を該当する前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンのうちの少なくとも１つに伝達する臨時格納部とを備えて構成される。
【００１９】
一実施形態において、前記ゲーム以外情報は、スクリプト言語で作成されたスクリプトファイルである。
【００２０】
上述した技術的課題を達成するために、本発明の実施形態に係るマルチユーザネットワークゲームの製作方法は、ネットワークを介してゲームサーバと複数のゲームクライアント間でなされるマルチユーザネットワークゲームの製作方法であって、前記マルチユーザネットワークゲームの製作のためのゲーム製作モジュールを実行してゲーム製作画面を提供するステップと、スクリプト言語に基づいて前記ゲーム製作モジュールを介して前記マルチユーザネットワークゲームのためのゲームスクリプトを製作するステップと、前記製作されたゲームスクリプトを実行するための少なくても１つのクライアントバーチャルマシンと少なくとも１つのサーババーチャルマシンを含む仮想ネットワーク実行環境を造成し、前記仮想ネットワーク実行環境で前記ゲームスクリプトの実行をエミュレーションするゲームプレビューステップと、前記ゲームプレビューステップの結果によって前記ゲーム製作モジュールを介して前記製作されたゲームスクリプトをデバッグするステップとを含んでなされる。
【００２１】
一実施形態において、前記ゲームプレビューステップは、バーチャルマシンコンテナを用いて前記少なくとも１つのサーババーチャルマシンと前記少なくとも１つのクライアントバーチャルマシンそれぞれを生成して駆動するステップと、ネットワークエミュレータを用いて前記仮想ネットワーク実行環境を造成し、前記少なくとも１つのクライアントバーチャルマシンと前記少なくとも１つのサーババーチャルマシン間のネットワーク通信を中継するステップと、前記バーチャルマシンコンテナを介して前記少なくとも１つのサーババーチャルマシンにサーバ用ゲームスクリプトをローディングさせて実行させるステップと、前記バーチャルマシンコンテナを介して前記各クライアントバーチャルマシンにクライアント用ゲームスクリプトをローディングさせて実行させるステップと、前記各クライアントバーチャルマシンそれぞれの実行結果を前記ゲーム製作画面に提供するステップとを含んでなされる。
【００２２】
一実施形態において、前記ゲームスクリプトを製作するステップは、前記ゲーム製作モジュールを介して事前に製作されたゲームレベルをロードし、または、新たなゲームレベルを生成するステップと、前記ロードされたゲームレベルまたは前記生成された新たなゲームレベルを編集して前記ゲームスクリプトを生成するステップとを含んでなされる。
【００２３】
一実施形態において、前記ゲームレベルを編集するステップは、前記ロードされたゲームレベルまたは前記生成された新たなゲームレベルのスプライトまたはイメージを生成／編集するステップと、前記ロードされたゲームレベルまたは前記生成された新たなゲームレベルのゲームオブジェクトを定義／生成／編集するステップと、前記ロードされたゲームレベルまたは前記生成された新たなゲームレベルのゲームスクリプトを編集するステップのうちの少なくとも１つのステップとを含んでなされる。
【００２４】
一実施形態において、前記ゲームプレビューステップは、前記仮想のネットワーク実行環境で前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンそれぞれと仮想のゲーム以外情報が格納された情報格納部との前記ゲーム以外情報の伝達をエミュレーションするステップをさらに含んでなされる。
【００２５】
一実施形態において、前記ゲーム以外情報の伝達をエミュレーションするステップは、前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンのうちの少なくとも１つからの情報伝達の要求に応答し、前記仮想の情報格納部から該当するゲーム以外情報をロードするステップと、前記ロードされるゲーム以外情報を一時的に格納するステップと、前記一時的に格納されたゲーム以外情報を該当する前記少なくとも１つのクライアントバーチャルマシンおよび前記少なくとも１つのサーババーチャルマシンのうちの少なくとも１つに伝達するステップとを含んでなされる。
【００２６】
一実施形態において、前記ゲーム以外情報は、スクリプト言語で作成されたスクリプトファイルである。
【発明の効果】
【００２７】
上述したように、本発明には次のような効果がある。
【００２８】
第１に、エミュレーションモジュールを介して製作されたマルチユーザネットワークゲームの実行とデバッグのためのクライアントバーチャルマシンとサーババーチャルマシンそれぞれを生成して製作されたマルチユーザネットワークゲームを仮想のネットワーク実行環境でエミュレーションすることにより、ゲーム製作環境で１つのゲーム製作ツールを用いてマルチユーザネットワークゲームの製作とデバッグおよびマルチユーザネットワークゲーム環境を簡便に形成し、ゲーム製作時間を短縮させることができるという効果がある。
【００２９】
第２に、バーチャルマシンコンテナがクライアントバーチャルマシンコンテナとサーババーチャルマシンコンテナで構成されており、互いに独立的に仮想のネットワーク環境を介して連動されるため、実際にはマルチユーザネットワークゲームのネットワーク実行環境ではクライアントバーチャルマシンコンテナをユーザクライアントで駆動させ、サーババーチャルマシンコンテナをオンラインゲームサーバで駆動させ、ネットワークエミュレータを用いずに実際にネットワークを用いるように設定すればクライアントバーチャルマシンとサーババーチャルマシンをオンラインサービス環境で駆動させることができるため、製作システムによって開発されたマルチユーザネットワークゲームをマルチユーザネットワークゲームサービスシステムにインストールすることが容易となり、また、他のサーバシステムとの連動が容易に実現できるという効果がある。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施形態に係るマルチユーザネットワークゲームの製作システムを説明するための図である。
【図２】図１に示す一実施形態に係るエミュレーションモジュールを説明するための図である。
【図３】図２に示す一実施形態に係るクライアントバーチャルマシンコンテナを説明するための図である。
【図４】図２に示す一実施形態に係るサーババーチャルマシンコンテナを説明するための図である。
【図５】図２に示す一実施形態に係るクライアントバーチャルマシンを説明するための図である。
【図６】図２に示す一実施形態に係るサーババーチャルマシンを説明するための図である。
【図７】本発明の実施形態に係るバーチャルマシンコンテナとネットワークエミュレータの駆動を説明するためのフローチャートである。
【図８】本発明の実施形態に係るクライアントバーチャルマシンがサーババーチャルマシンにメッセージを送信する処理を説明するためのフローチャートである。
【図９】図１に示す他の実施形態に係るエミュレーションモジュールを説明するための図である。
【図１０】図９に示す一実施形態に係る情報格納部エミュレータを説明するための図である。
【図１１】本発明の一実施形態に係るマルチユーザネットワークゲームの製作方法を段階的に説明するためのフローチャートである。
【図１２】本発明の一実施形態に係るゲーム製作画面を示す図である。
【図１３】本発明の一実施形態に係るゲーム製作モジュールを介したデバッグ画面を示す図である。
【図１４】本発明の一実施形態に係るゲーム製作モジュールを介したデバッグの実行画面を示す図である。
【図１５】図１１に示すゲームプレビューステップでゲーム実行のエミュレーションを段階的に説明するためのフローチャートである。
【図１６】図１１に示すゲームプレビューステップで情報格納所エミュレーションステップを段階的に説明するためのフローチャートである。
【図１７】本発明の一実施形態に係るマルチユーザネットワークゲームサービスシステムを説明するための図である。
【図１８】図１７に示すゲームクライアントを説明するための図である。
【図１９】図１７に示すゲームサーバを説明するための図である。
【図２０】本発明の一実施形態に係るＰ２Ｐ型マルチユーザネットワークゲームサービスシステムを説明するための図である。
【図２１】図２０に示すゲームサーバの機能を実行するゲームクライアントを説明するための図である。
【発明を実施するための形態】
【００３１】
以下、添付の図面を参照しながら、本発明の実施形態について詳しく説明する。なお、基本的に、同様の要素には同じ符号を用いて説明を行なう。
【００３２】
図１は、本発明の一実施形態に係るマルチユーザネットワークゲームの製作システムを説明するための図である。
【００３３】
図１を参照すれば、本発明の一実施形態に係るマルチユーザネットワークゲームの製作システム１００は、マルチユーザネットワークゲームを製作するためのゲーム製作モジュール１１０と、仮想のネットワーク実行環境を提供すると共に、製作されたマルチユーザネットワークゲームの実行とデバッグのための少なくとも１つのクライアントバーチャルマシンと少なくとも１つのサーババーチャルマシンそれぞれを生成して製作されたマルチユーザネットワークゲームを仮想のネットワーク実行環境でエミュレーションするためのエミュレーションモジュール１２０とを備えて構成することができる。
【００３４】
一実施形態において、ゲーム製作モジュール１１０は、ゲーム製作ユーザインターフェース１１２と、ゲーム編集ツール１１４と、ゲームプレビューア１１６とを備えて構成することができる。
【００３５】
ゲーム製作ユーザインターフェース１１２は、ゲーム製作画面を介してマルチユーザネットワークゲームの製作のためのユーザインターフェースをユーザに提供する。これにより、ユーザは、ゲーム製作ユーザインターフェース１１２を介してゲーム編集ツール１１４を操作することにより、マルチユーザネットワークゲームとネットワーク実行環境を製作することができる。このようなゲーム製作ユーザインターフェース１１２は、例えばコンピュータのオペレーティングシステムであるＷｉｎｄｏｗｓ（登録商標）上において、フルスクリーン（Ｆｕｌｌ  Ｓｃｒｅｅｎ）モードと単一ウィンドウモードを支援することができる。そして、ゲーム製作ユーザインターフェース１１２は、オブジェクト指向型プログラム言語に基づいて作成されることができる。
【００３６】
ゲーム編集ツール１１４は、ゲーム製作環境においてユーザ（または開発者）にマルチユーザネットワークゲーム製作環境を提供することにより、ユーザ（または開発者）がスプライト（Ｓｐｒｉｔｅ）／イメージの生成／編集、ゲーム内に登場するゲームオブジェクトの定義／生成／編集、ゲーム実行およびネットワーク環境実行のためのクライアント用およびサーバ用ゲームスクリプトを生成／編集したり、デバッグを実行したりできるようにする。
【００３７】
一実施形態において、ゲーム編集ツール１１４は、ゲーム内で独立的に動いたり背景を構成したりするオブジェクトを製作するためのスプライト（Ｓｐｒｉｔｅ）エディタ、ゲーム内で動きが必要なオブジェクトを製作するためのゲームオブジェクトエディタ、スクリプト（Ｓｃｒｉｐｔ）言語に基づいてオブジェクトのゲームプレイ環境を定義するゲームスクリプトを製作するためのスクリプトエディタ、ゲームスクリプトをデバッグするためのスクリプトデバッガを備えて構成することができる。ここで、スクリプト言語としては、ジャバスクリプト（Ｊａｖａ（登録商標）  Ｓｃｒｉｐｔ）、ＶＢスクリプト、Ｐｙｔｈｏｎ、ＬＵＡなどを用いることができる。また、その他にオブジェクト指向モデルを提供するあらゆる形態のスクリプト言語を用いることができる。
【００３８】
ゲームプレビューア１１６は、エミュレーションモジュール１２０を駆動させ、エミュレーションモジュール１２０の駆動による製作されたマルチユーザネットワークゲームの実行過程をゲーム製作画面に提供する。このようなゲームプレビューア１１６は、ゲーム編集ツール１１４を介して製作されたマルチユーザネットワークゲームスクリプトを仮想のネットワーク環境でエミュレーションさせることにより、ユーザがマルチユーザネットワークゲームのエミュレーション結果を介して事前に検討できるようにする。
【００３９】
エミュレーションモジュール１２０は、マルチユーザネットワークゲーム製作環境で仮想のネットワーク環境を形成してマルチユーザネットワークゲームをエミュレーションすることができる。例えば、エミュレーションモジュール１２０は、少なくとも１つのゲーム部屋（つまり、少なくとも１個のサーババーチャルマシン）に少なくとも１つのゲームクライアント（つまり少なくとも１個のクライアントバーチャルマシン）が参加する形態の仮想のネットワーク環境を形成し、マルチユーザネットワークゲームとネットワーク実行環境をエミュレーションすることができる。
【００４０】
エミュレーションモジュール１２０は、図２に示すように、バーチャルマシンコンテナ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｃｏｎｔａｉｎｅｒ）２００と、ネットワークエミュレータ３００とを備えて構成することができる。
【００４１】
バーチャルマシンコンテナ２００は、各クライアントバーチャルマシンＣＶＭ１〜ＣＶＭｎを管理するクライアントバーチャルマシンコンテナ２１０と各サーババーチャルマシンＣＶＭ１〜ＣＶＭｎを管理するサーババーチャルマシンコンテナ２２０を備えることができる。したがって、バーチャルマシンコンテナ２００は、ゲーム製作環境においてクライアントバーチャルマシンコンテナ２１０とサーババーチャルマシンコンテナ２２０とを同じ環境で駆動することができ、、統合された製作環境において仮想のネットワーク環境を形成することができる。実際のネットワークサービス環境では、バーチャルマシンコンテナ２００は、クライアントバーチャルマシンコンテナ２１０をユーザＰＣ（クライアント）で駆動し、サーババーチャルマシンコンテナ２２０はオンラインゲームサーバシステムで駆動することにより、ゲーム製作環境において製作されたゲームが実際にオンラインゲームサービス環境でも同じように動作できるようにする。
【００４２】
一実施形態において、各クライアントバーチャルコンテナ２１０は、図３に示すように、クライアントバーチャルマシン駆動モジュール２１１と、ネットワークイベント管理モジュール２１３と、外部モジュール連動管理モジュール２１５と、ウィンドウ制御管理モジュール２１７とを備えることができる。
【００４３】
クライアントバーチャルマシン駆動モジュール２１１は、クライアントバーチャルマシンＣＶＭ１〜ＣＶＭｎから提供されるクライアントバーチャルマシンＡＰＩを用い、ユーザの設定に対応する個数のクライアントバーチャルマシンＣＶＭ１〜ＣＶＭｎを生成して管理する。
【００４４】
ネットワークイベント管理モジュール２１３は、各クライアントバーチャルマシンＣＶＭ１〜ＣＶＭｎと各サーババーチャルマシンＳＶＭ１〜ＳＶＭｎの間のイベントを伝達する。このとき、ネットワークイベント管理モジュール２１３は、ネットワークイベント（例えば、ネットワークパケット送受信、ネットワークコネクションの確立、ネットワークコネクションの解除など）が発生したとき、各クライアントバーチャルマシンＣＶＭ１〜ＣＶＭｎが処理できるフォーマットに変換する。
【００４５】
外部モジュール連動管理モジュール２１５は、オンラインサービスのためのゲーム以外のサービスシステムと各クライアントバーチャルマシンＣＶＭ１〜ＣＶＭｎを連動させる。このために、外部モジュール連動管理モジュール２１５は、外部モジュールと連動するためのプロトコル（ゲームサービスごとに異なり得る）を有しており、関数コールバックを介して外部モジュールと各クライアントバーチャルマシンＣＶＭ１〜ＣＶＭｎの通信を支援する。これにより、外部モジュール連動管理モジュール２１５は、各クライアントバーチャルマシンＣＶＭ１〜ＣＶＭｎと通信が必要な外部モジュールをプラグ−イン形態でバーチャルマシンコンテナ２００に連結させることができる。ここで、オンラインサービスのためのゲーム以外のサービスシステムは、例えば、ロビーサーバ、ルームサーバ、データベースモジュール、ランキングサービスサーバ、位置管理サービスサーバなどとすることができる。
【００４６】
ウィンドウ制御管理モジュール２１７は、マルチユーザネットワークゲームの画面が表示されるゲームウィンドウ（Ｗｉｎｄｏｗ）とゲームウィンドウを介して発生するゲームイベントとを、クライアントバーチャルマシン駆動モジュール２１１を介して各クライアントバーチャルマシンＣＶＭ１〜ＣＶＭｎに伝達することができる。特に、ウィンドウ制御管理モジュール２１７は、ゲームウィンドウを生成し、ゲームウィンドウの位置調整を実行し、ゲームウィンドウ上で発生するマウスクリック、キーボード入力などのゲームイベントを各クライアントバーチャルマシンＣＶＭ１〜ＣＶＭｎに伝達することができる。
【００４７】
一実施形態において、サーババーチャルマシンコンテナ２２０は、図４に示すように、サーババーチャルマシン駆動モジュール２２１と、ネットワークイベント管理モジュール２２３と、外部モジュール連動管理モジュール２２５と、スレッド（Ｔｈｒｅａｄ）制御管理モジュール２２７とを備えることができる。
【００４８】
サーババーチャルマシン駆動モジュール２２１は、サーババーチャルマシンＳＶＭ１〜ＳＶＭｎ（図２を参照）から提供されるサーババーチャルマシンＡＰＩを用いてユーザの設定に対応する個数のサーババーチャルマシンＳＶＭ１〜ＳＶＭｎを生成して管理する。一般的に、１つのサーババーチャルマシンＳＶＭ１〜ＳＶＭｎは、１つのゲーム部屋に対応させることができる。
【００４９】
ネットワークイベント管理モジュール２２３は、マルチユーザネットワークゲームの実行で発生するネットワークイベントを各サーババーチャルマシンＳＶＭ１〜ＳＶＭｎに伝達することができる。このとき、ネットワークイベント管理モジュール２２３は、ネットワークイベント（例えば、ネットワークパケット送受信、ネットワークコネクションの確立、ネットワークコネクションの解除など）が発生したとき、各サーババーチャルマシンＳＶＭ１〜ＳＶＭｎが処理できるフォーマットに変換する。
【００５０】
外部モジュール連動管理モジュール２２５は、オンラインサービスのためのゲーム以外のサービスシステムに各サーババーチャルマシンＳＶＭ１〜ＳＶＭｎを連動させる。このために、外部モジュール連動管理モジュール２２５は、ゲーム以外のサービスシステムと連動するためのプロトコル（ゲームサービスごとに異なり得る）を有しており、関数コールバックを介してゲーム以外のサービスシステムと各サーババーチャルマシンＳＶＭ１〜ＳＶＭｎの通信を支援する。これにより、外部モジュール連動管理モジュール２２５は、各サーババーチャルマシンＳＶＭ１〜ＳＶＭｎと通信が必要なゲーム以外のサービスシステムをプラグ−イン形態でバーチャルマシンコンテナ２００に関連させることができる。ここで、オンラインサービスのためのゲーム以外のサービスシステムは、例えば、データベースサーバ、ランキングサービスサーバ、位置管理サービスサーバなどとすることができる。
【００５１】
スレッド制御管理モジュール２２７は、スレッドプールを提供することができ、これにより、サーババーチャルマシン駆動モジュール２２１において複数のサーババーチャルマシンＳＶＭ１〜ＳＶＭｎを生成および管理することができる。ここで、スレッドプールが必要な理由は、サーババーチャルマシンの数がゲームサーバの容量に合わせて一定せず、その数が増減することがあるためである。このようなスレッド制御管理モジュール２２７は、ゲーム実行によって使用可能なスレッドをサーババーチャルマシンＳＶＭ１〜ＳＶＭｎに割り当て、サーババーチャルマシンＳＶＭ１〜ＳＶＭｎを駆動することができる。
【００５２】
一方、サーババーチャルマシンコンテナ２２０は、マルチユーザネットワークゲームの実行で発生するタイマーイベントを、サーババーチャルマシン駆動モジュール２２１を介して各サーババーチャルマシンＳＶＭ１〜ＳＶＭｎに伝達するタイマーイベント管理モジュール（図示せず）をさらに備えることもできる。
【００５３】
図５に示すように、図２における一実施形態に係る各クライアントバーチャルマシンＣＶＭ１〜ＣＶＭｎのそれぞれは、オブジェクト指向スクリプトエンジン５００と、グラフィックエンジン５０２と、サウンドエンジン５０４と、ネットワークエンジン５０６と、ゲームオブジェクトシステム５０８と、グラフィックエンジンスクリプトインターフェース５１０と、サウンドエンジンスクリプトインターフェース５１２と、ネットワークエンジンスクリプトインターフェース５１４と、ゲームオブジェクトスクリプトインターフェース５１６とを備えることができる。
【００５４】
オブジェクト指向スクリプトエンジン５００は、オブジェクト指向型プログラム言語で作成されたスクリプトファイルの実行環境を提供することができる。
【００５５】
グラフィックエンジン５０２は、マルチユーザネットワークゲーム画面のレンダリング、アニメーション、およびデザイン実行環境を提供することができる。
【００５６】
サウンドエンジン５０４は、マルチユーザネットワークゲームのサウンド実行環境を提供することができる。
【００５７】
ネットワークエンジン５０６は、クライアントバーチャルマシン（ＣＶＭ）で実行されるゲームスクリプト内で生成され伝達されるネットワークメッセージをネットワークイベントに変換して該当するクライアントバーチャルマシン（ＣＶＭ）を管理するクライアントバーチャルマシンコンテナ２１０に伝達することができる。このとき、クライアントバーチャルマシンコンテナ２１０のネットワークイベント管理モジュール２１３は、ネットワークエミュレータ３００を介して他のクライアントバーチャルマシン（ＣＶＭ）および／またはサーババーチャルマシン（ＳＶＭ）にネットワークイベントを伝達し、クライアントおよびサーバそれぞれにネットワーク通信環境を提供することができる。
【００５８】
ゲームオブジェクトシステム５０８は、クライアントバーチャルマシン（ＣＶＭ）で実行されるゲームスクリプト内で生成されたオブジェクトの管理、オブジェクト間のメッセージ伝達、ゲームイベントの処理、ゲームオブジェクトの状態管理を担当する。オブジェクト間のメッセージ伝達の場合において、メッセージが伝達されるオブジェクトが、異なるクライアントバーチャルマシン（ＣＶＭ）および／またはサーババーチャルマシン（ＳＶＭ）で生成されたオブジェクトの場合、ネットワークエンジン５０６を介して該当するメッセージ、はネットワークを介して伝達することができる。
【００５９】
グラフィックエンジンスクリプトインターフェース５１０は、オブジェクト指向スクリプトエンジン５００を介してゲームスクリプトとグラフィックエンジン５０２間のインターフェースを提供することができる。
【００６０】
サウンドエンジンスクリプトインターフェース５１２は、オブジェクト指向スクリプトエンジン５００を介してゲームスクリプトとサウンドエンジン５０４間のインターフェースを提供することができる。
【００６１】
ネットワークエンジンスクリプトインターフェース５１４は、オブジェクト指向スクリプトエンジン５００を介してゲームスクリプトとネットワークエンジン５０６間のインターフェースを提供することができる。
【００６２】
ゲームオブジェクトスクリプトインターフェース５１６は、オブジェクト指向スクリプトエンジン５００を介してゲームスクリプトとゲームオブジェクトシステム５０８間のインターフェースを提供する。
【００６３】
図６に示すように、図２における一実施形態に係る各サーババーチャルマシンＳＶＭ１〜ＳＶＭｎそれぞれは、オブジェクト指向スクリプトエンジン５２０と、ネットワークエンジン５２２と、ゲームオブジェクトシステム５２４と、ネットワークエンジンスクリプトインターフェース５２６と、ゲームオブジェクトスクリプトインターフェース５２８とを備えて構成することができる。
【００６４】
オブジェクト指向スクリプトエンジン５２０は、オブジェクト指向型プログラム言語で作成されたスクリプトファイルの実行環境を提供することができる。
【００６５】
ネットワークエンジン５２２は、サーババーチャルマシン（ＳＶＭ）で実行されるゲームスクリプト内で生成されて伝達されるネットワークメッセージをネットワークイベントに変換して該当するサーババーチャルマシン（ＳＶＭ）を管理するサーババーチャルマシンコンテナ２２０に伝達する。このとき、サーババーチャルマシンコンテナ２２０のネットワークイベント管理モジュールは、ネットワークエミュレータ３００を介して、他のクライアントバーチャルマシン（ＣＶＭ）および／またはサーババーチャルマシン（ＳＶＭ）にネットワークイベントを伝達し、クライアントおよびサーバそれぞれとのネットワーク通信環境を提供することができる。
【００６６】
ゲームオブジェクトシステム５２４は、サーババーチャルマシン（ＳＶＭ）で実行されるゲームスクリプト内で生成されたオブジェクトの管理、オブジェクト間のメッセージ伝達、ゲームイベントの処理、ゲームオブジェクトの状態管理を担当する。オブジェクト間のメッセージ伝達の場合において、メッセージが伝達されるオブジェクトが異なるクライアントバーチャルマシン（ＣＶＭ）および／またはサーババーチャルマシン（ＳＶＭ）で生成されたオブジェクトである場合、ネットワークエンジン５２２を介して該当するメッセージを、ネットワークを介して伝達することができる。
【００６７】
ネットワークエンジンスクリプトインターフェース５２６は、オブジェクト指向スクリプトエンジン５２０を介してゲームスクリプトとネットワークエンジン５２４間のインターフェースを提供することができる。
【００６８】
ゲームオブジェクトスクリプトインターフェース５２８は、オブジェクト指向スクリプトエンジン５２０を介してゲームスクリプトとゲームオブジェクトシステム５２４間のインターフェースを提供することができる。
【００６９】
図２のネットワークエミュレータ３００は、ネットワークソケット、ネットワークＩＤ、メッセージキューを管理し、ネットワークメッセージ伝達過程をエミュレーションすることにより、実際のネットワークが用いられているような仮想のネットワーク実行環境を提供し、伝達されるメッセージに対する分析が可能なようにすることができる。このとき、ネットワークＩＤは、ネットワークソケットの連結を示すための仮想のアドレスとして使用されるものであって、実際のネットワークのアドレスがなくてもメッセージの送信が可能なようにする。
【００７０】
図７は、本発明の実施形態に係るバーチャルマシンコンテナ２００とネットワークエミュレータ３００の駆動の処理を説明するためのフローチャートである。特に、クライアントバーチャルマシンとサーババーチャルマシンとを初期化するときにネットワークのコネクションが確立される過程を示す。
【００７１】
バーチャルマシンコンテナ２００は、複数のクライアントバーチャルマシンと複数のサーババーチャルマシンを生成して管理し、ネットワークを連結するための「バーチャルマシン−ネットワークＩＤ」を含むテーブルを有することができる。ネットワークエミュレータ３００も管理対象を管理するためのネットワークＩＤ−ネットワークソケットを含むテーブルを有することができる。
【００７２】
図７を図２とを参照し、本発明の実施形態に係るバーチャルマシンコンテナ２００とネットワークエミュレータ３００の駆動の処理を説明すれば、次のようになる。
【００７３】
まず、バーチャルマシンコンテナ２００でサーババーチャルマシン（ＳＶＭ）を生成する（Ｓ１００）。
【００７４】
次に、バーチャルマシンコンテナ２００でクライアントバーチャルマシン（ＣＶＭ）を生成する（Ｓ１１０）。
【００７５】
次に、バーチャルマシンコンテナ２００は、ネットワークエミュレータ３００に仮想のネットワークのコネクションを要求する。特に、バーチャルマシンコンテナ２００は、クライアントバーチャルマシン（ＣＶＭ）とサーババーチャルマシン（ＳＶＭ）とをコネクトする要求をネットワークエミュレータ３００に伝達する（Ｓ１２０）。
【００７６】
次に、ネットワークエミュレータ３００で仮想ネットワークのコネクションの実行をした後、ネットワークＩＤを付与する。特に、ネットワークエミュレータ３００は、仮想のネットワークのコネクションの確立の実行をした後、確立されたネットワークのコネクションに対応するネットワークＩＤおよびネットワークソケットをテーブルに追加することができる（Ｓ１３０）。
【００７７】
次に、ネットワークエミュレータ３００は、付与されたネットワークＩＤをバーチャルマシンコンテナ２００に伝達する。特に、ネットワークエミュレータ３００は、テーブルに追加されたネットワークＩＤをバーチャルマシンコンテナに伝達する。これにより、バーチャルマシンコンテナ２００は、ネットワークエミュレータ３００から伝達されたネットワークのコネクションに対応するバーチャルマシン−ネットワークＩＤをテーブルに追加することにより、ネットワークのコネクションの確立の処理を完了する（Ｓ１４０）。
【００７８】
図８は、本発明の実施形態に係るクライアントバーチャルマシンがサーババーチャルマシンにメッセージを送信する処理を説明するためのフローチャートである。
【００７９】
図８を図２とを参照し、本発明の実施形態に係るクライアントバーチャルマシンがサーババーチャルマシンにメッセージを送信する処理を説明すれば、次のようになる。
【００８０】
まず、クライアントバーチャルマシン（ＣＶＭ）がネットワークパケットを生成し、生成されたネットワークパケットをバーチャルマシンコンテナ２００に伝達する（Ｓ２００）。このとき、クライアントバーチャルマシン（ＣＶＭ）は、バーチャルマシンコンテナ２００にメッセージを伝達するときに、「出発地、目的地、メッセージ」のような形態のネットワークパケットを生成する。ここで、出発地および目的地それぞれはネットワークＩＤである。メッセージはゲーム実行情報に対応させることができる。
【００８１】
次に、バーチャルマシンコンテナ２００を介してクライアントバーチャルマシンから伝達されるネットワークパケットをネットワークエミュレータ３００に伝達する（Ｓ２１０）。
【００８２】
次に、ネットワークエミュレータ３００がネットワークパケットのメッセージを目的地に伝達する過程をエミュレーションし、ネットワークパケットをバーチャルマシンコンテナ２００に伝達する（Ｓ２２０）。すなわち、ネットワークエミュレータ３００は、ネットワークパケットが伝達されて目的地に対応するネットワークＩＤに該当するネットワークソケットにメッセージが伝達されることをエミュレーションする。特に、ネットワークエミュレータ３００は、メッセージがパケット形態でキューに蓄積するなどのネットワーク特性をエミュレーションすることができる。そして、ネットワークエミュレータ３００は、「出発地、目的地、メッセージ」のような形態のネットワークパケットをバーチャルマシンコンテナ２００に伝達する。
【００８３】
次に、バーチャルマシンコンテナ２００が、ネットワークエミュレータ３００から伝達されるネットワークパケットを受信し、受信されたネットワークパケットの目的地にメッセージを伝達する（Ｓ２３０）。このとき、バーチャルマシンコンテナ２００は、ネットワークエミュレータ３００から伝達されたネットワークパケットの目的地に基づいてメッセージを伝達するバーチャルマシンを決定し、該当するバーチャルマシンにメッセージを伝達することができる。例えば、目的地のネットワークＩＤがサーババーチャルマシン（ＳＶＭ）のネットワークＩＤに該当する場合、バーチャルマシンコンテナ２００は、該当するメッセージをサーババーチャルマシン（ＳＶＭ）に伝達する。
【００８４】
図９に示すように、図２におけるエミュレーションモジュール１２０は、情報格納部エミュレータ４００をさらに備えることができる。
【００８５】
情報格納部エミュレータ４００は、クライアントバーチャルマシン（ＣＶＭ）およびサーババーチャルマシン（ＳＶＭ）それぞれと、仮想のゲーム以外情報が格納された仮想のゲーム以外情報格納部との情報伝達を仮想のネットワーク実行環境においてエミュレーションすることにより、仮想のゲーム以外情報格納部に対するシミュレーション機能を提供する。ここで、仮想のゲーム以外情報とは、ゲームプレーヤのＩＤ、会員情報、ゲーム等級などとすることができる。そして、仮想のゲーム以外情報格納部は、仮想のゲーム以外情報を格納するデータベースとすることができる。このとき、ゲーム以外情報は、スクリプト言語で作成されたスクリプトファイル形態で格納することができる。
【００８６】
一実施形態に係る情報格納部エミュレータ４００は、図１０に示すように、情報ローダ４１０と、一時格納部４２０とを備えて構成することができる。
【００８７】
情報ローダ４１０は、バーチャルマシンコンテナ２００を介してクライアントバーチャルマシン（ＣＶＭ）およびサーババーチャルマシン（ＳＶＭ）のうちの少なくとも１つからの情報伝達の要求に応答し、仮想のゲーム以外情報格納部４３０から該当するゲーム以外情報をロードすることができる。
【００８８】
一時格納部４２０は、情報ローダ４１０からロードされるゲーム以外情報を格納し、格納されたゲーム以外情報を、バーチャルマシンコンテナ２００を介して該当するクライアントバーチャルマシン（ＣＶＭ）および／またはサーババーチャルマシン（ＳＶＭ）に伝達することができる。
【００８９】
図１１は、本発明の一実施形態に係るマルチユーザネットワークゲームの製作方法を段階的に説明するためのフローチャートである。
【００９０】
図１１を図２と参照しながら、本発明の実施形態に係るマルチユーザネットワークゲームの製作方法を段階的に説明すれば、次のようになる。
【００９１】
まず、図１２に示すように、マルチユーザネットワークゲームの製作のためのゲーム製作モジュール１１０を実行してゲーム製作画面を提供する（Ｓ３００）。
【００９２】
次に、ゲーム製作モジュール１１０を用い、スクリプト言語に基づいてマルチユーザネットワークゲームの駆動に必要なゲームスクリプトを製作する（Ｓ３１０）。ステップＳ３１０は、ゲーム製作モジュール１１０を用い、事前に製作されたゲームレベルをロードしたり新たなゲームレベルを生成したりして、ロードされたゲームレベルまたは生成された新たなゲームレベルを編集する処理を含くむことができる。そして、ゲームレベルを編集する処理は、ロードされたゲームレベルまたは生成された新たなゲームレベルのスプライトまたはイメージを生成／編集する処理と、ロードされたゲームレベルまたは生成された新たなゲームレベルのゲームオブジェクトを定義／生成／編集する処理と、ロードされたゲームレベルまたは生成された新たなゲームレベルのゲームスクリプトを編集する処理とを含むことができる。
【００９３】
次に、エミュレーションモジュール１２０を用いて仮想のネットワーク実行環境を形成し、製作されたゲームスクリプトの実行とデバッグのためのクライアントバーチャルマシンとサーババーチャルマシンそれぞれを生成し、製作されたゲームスクリプトを仮想のネットワーク実行環境でエミュレーションする（Ｓ３２０）。
【００９４】
図１３に示すように、ステップＳ３２０でのエミュレーション結果に基づいて、ゲーム製作モジュール１１０を介して製作されたゲームスクリプトをデバッグする（Ｓ３３０）。
【００９５】
次に、図１４に示すように、Ｓ３３０ステップを介してデバッグされたゲームスクリプトを仮想のネットワーク実行環境で再びエミュレーションし、ゲーム製作が完了するまで上述したＳ３２０ステップおよびＳ３３０ステップを繰り返し実行してゲーム製作を完了する（Ｓ３４０）。
【００９６】
図１５は、図１１に示すエミュレーションステップを説明するためのフローチャートである。
【００９７】
図１５と図２とを参照しながら、図１１に示すエミュレーションステップを説明すれば、次のようになる。
【００９８】
まず、バーチャルマシンコンテナ２００を用いて、サーババーチャルマシン（ＳＶＭ）とＮ個のクライアントバーチャルマシン（ＣＶＭ）それぞれとを生成して駆動する（Ｓ３２１）。
【００９９】
次に、ネットワークエミュレータ３００を用いて、仮想のネットワーク実行環境を形成し、サーババーチャルマシン（ＳＶＭ）とＮ個のクライアントバーチャルマシン（ＣＶＭ）間とのネットワーク通信を中継する（Ｓ３２２）。
【０１００】
次に、バーチャルマシンコンテナ２００を用いて、サーババーチャルマシン（ＳＶＭ）にサーバスクリプトをローディングして実行する（Ｓ３２３）。
【０１０１】
次に、バーチャルマシンコンテナ２００を用いて、各クライアントバーチャルマシン（ＣＶＭ）にクライアントスクリプトをローディングして実行する（Ｓ３２４）。
【０１０２】
そして、各クライアントバーチャルマシン（ＣＶＭ）それぞれの実行結果をゲーム製作画面に表示する（Ｓ３２５）。
【０１０３】
一方、図１１に示すエミュレーションの処理は、仮想のネットワーク実行環境において、クライアントバーチャルマシン（ＣＶＭ）およびサーババーチャルマシン（ＳＶＭ）それぞれと、仮想のゲーム以外情報が格納された仮想の情報格納部との間の情報伝達をエミュレーションする処理をさらに含むことができる。
【０１０４】
すなわち、図１６に示すように、情報伝達をエミュレーションする処理は、クライアントバーチャルマシン（ＣＶＭ）およびサーババーチャルマシン（ＳＶＭ）のうちの少なくとも１つが情報伝達を要求すれば、バーチャルマシンコンテナ（２００）は、情報格納部エミュレータ４００に該当する情報伝達を要求する（Ｓ３２６）。
【０１０５】
次に、情報格納部エミュレータ４００は、情報ローダ４１０を用いて、仮想のゲーム以外情報格納部４３０から該当するゲーム以外情報をロードする（Ｓ３２７）。
【０１０６】
そして、情報格納部エミュレータ４００は、情報ローダ４１０を用いてロードされるゲーム以外情報を一時格納部４２０に格納し、格納されたゲーム以外情報を、バーチャルマシンコンテナ２００を用いて、該当するクライアントバーチャルマシン（ＣＶＭ）および／またはサーババーチャルマシン（ＳＶＭ）に伝達する（Ｓ３２８）。
【０１０７】
一方、上述した本発明の実施形態に係るマルチユーザネットワークゲームの製作方法は、多様なコンピュータユニットを用いて実行することができるプログラム形態でも実現することができる。このとき、マルチユーザネットワークゲームの製作方法を実行するためのプログラムは、ハードディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭ、ＲＡＭ、またはフラッシュメモリのようなコンピュータで読み取り可能な記録媒体に格納することができる。
【０１０８】
上述したように、本発明の一実施形態に係るマルチユーザネットワークゲームの製作システムおよび方法は、エミュレーションモジュール１２０を介して製作されたマルチユーザネットワークゲームの実行とデバッグのためのクライアントバーチャルマシン（ＣＶＭ）とサーババーチャルマシン（ＳＶＭ）それぞれとを生成して製作されたマルチユーザネットワークゲームを仮想のネットワーク実行環境でエミュレーションする。これにより、ゲーム製作環境において１つのゲーム製作ツールを介してマルチユーザネットワークゲームの製作とデバッグおよびマルチユーザネットワークゲーム環境を簡便に形成し、ゲーム製作時間を短縮させることができる。
【０１０９】
図１７は。本発明の一実施形態に係るマルチユーザネットワークゲームサービスシステムを説明するための図である。
【０１１０】
図１７を参照すると、本発明の一実施形態に係るマルチユーザネットワークゲームサービスシステム６００は、複数のゲームクライアント６１０１〜６１０ｎと、ゲームサーバ７００と、バック−アンドサービスサーバ７１０、７２０とを備える。複数のゲームクライアント６１０１〜６１０ｎと、ゲームサーバ７００と、バック−アンドサービスサーバ７１０、７２０とは、ネットワークを介して接続されている。
【０１１１】
一実施形態に係る複数のゲームクライアント６１０１〜６１０ｎは、ネットワークに接続され、例えば、カートライダー、ゴーゴーシング、ゴーストップ、ポーカーなどのような多様な種類のゲームアプリケーションの提供を受けることができる複数の端末装置である。ゲームクライアント６１０１〜６１０ｎそれぞれは、例えば、デスクトップＰＣ、ノート型パソコン、移動電話機、ＰＤＡ、およびＭＢＳ（Ｍｏｂｉｌｅ  Ｂｒｏａｄｃａｓｔ  Ｓｙｓｔｅｍ）フォンなどをすべて含むことができる。
【０１１２】
このような複数のゲームクライアント６１０１〜６１０ｎは、図１８に示すように、ウェブブラウザ６２０と、ゲームクライアントスクリプト格納部６３０と、クライアントバーチャルマシン６４０と、クライアントバーチャルマシンコンテナ６５０とを備えることができる。
【０１１３】
ゲームクライアントスクリプト格納部６３０は、ゲームアプリケーションに対応するゲームスクリプトファイルを格納することができる。このとき、ゲームスクリプトファイルは、ゲームクライアントスクリプト格納部６３０に必ず格納されなければならないものではなく、ウェブブラウザ６２０を介して提供されることもできる。
【０１１４】
クライアントバーチャルマシン６４０は、ゲームクライアントスクリプト格納部６３０に格納されたゲームスクリプトファイルをローディングしてゲームを実行することができる。
【０１１５】
クライアントバーチャルマシンコンテナ６５０は、クライアントバーチャルマシン６４０を駆動させ、クライアントバーチャルマシン６４０のゲーム実行情報をゲームサーバ７００に送信する。また、クライアントバーチャルマシンコンテナ６５０は、ゲームサーバ７００からのゲーム実行情報を受信して各クライアントバーチャルマシン６４０に提供する。このようなクライアントバーチャルマシンコンテナ６５０は、図３に示すマルチユーザネットワークゲームの製作システムのクライアントバーチャルマシンコンテナ２１０と同じように構成されるため、これに対する説明は、上述した説明を代わりに用いることができる。
【０１１６】
図１９に示すように、図１７におけるゲームサーバ７００は、ゲームサーバスクリプト格納部７０２と、Ｎ個のサーババーチャルマシン７０４と、サーババーチャルマシンコンテナ７０６とを備えることができる。
【０１１７】
ゲームサーバスクリプト格納部７０２は、ゲームアプリケーションに対応するゲームサーバファイルを格納することができる。
【０１１８】
Ｎ個のサーババーチャルマシン７０４は、ゲームサーバスクリプト格納部７０２に格納されたゲームスクリプトファイルをローディングしてゲームを実行することができる。このとき、Ｎ個のサーババーチャルマシン７０４それぞれは、ゲーム部屋に対応付けることができる。
【０１１９】
サーババーチャルマシンコンテナ７０６は、サーババーチャルマシン７０４それぞれを駆動させてゲームクライアント６１０１〜６１０ｎ間のゲーム実行情報を中継する。このようなサーババーチャルマシンコンテナ７０６は、図４に示すマルチユーザネットワークゲームの製作システムのサーババーチャルマシンコンテナ２２０と同じように構成されるため、これに対する説明は、上述した説明を代わりに用いることができる。
【０１２０】
バック−アンドサービスサーバ７１０、７２０は、例えば、ロビーサーバ、ルームサーバ、データベースモジュール、ランキングサービスサーバ、位置管理サービスサーバなどとすることができる。
【０１２１】
このような本発明の一実施形態に係るマルチユーザネットワークゲームサービスシステムは、上述したマルチユーザネットワークゲームの製作システムのようにバーチャルマシンコンテナを用い、マルチユーザネットワークゲームのネットワーク実行環境ではクライアントバーチャルマシンとサーババーチャルマシンを駆動させることができるため、製作システムによって開発されたマルチユーザネットワークゲームをネットワークゲームサービスシステムにインストールすることが容易となり、他のサーバシステムに連動させることが容易となる。
【０１２２】
図２０は、本発明の一実施形態に係るＰ２Ｐ型マルチユーザネットワークゲームサービスシステムを説明するための図である。
【０１２３】
図２０を参照すると、本発明の一実施形態に係るＰ２Ｐ型マルチユーザネットワークゲームサービスシステム８００は、ネットワークを介して連結された複数のゲームクライアント８１０１〜８１０ｎと、バック−アンドサービスサーバ８１０、８２０とを備えて構成される。
【０１２４】
一実施形態に係る複数のゲームクライアント８１０１〜８１０ｎは、ネットワークに接続され、例えば、カートライダー、ゴーゴーシング、ゴーストップ、ポーカーなどのような多様な種類のゲームアプリケーションの提供を受けることができる複数の端末装置である。ゲームクライアント８１０１〜８１０ｎは、例えば、デスクトップＰＣ、ノート型パソコン、移動電話機、ＰＤＡ、およびＭＢＳフォンなどをすべて含むことができる。
【０１２５】
このような複数のゲームクライアント８１０１〜８１０ｎのうちのいずれか１つは、ゲームサーバの機能も共に実行する。そのゲームクライアントは、図２１に示すように、ウェブブラウザ８２０と、ゲームクライアントスクリプト格納部８３０と、クライアントバーチャルマシン８４０と、ゲームサーバスクリプト格納部８５０と、Ｎ個のサーババーチャルマシン８６０と、バーチャルマシンコンテナ８７０とを備えることができる。
【０１２６】
ゲームクライアントスクリプト格納部８３０は、ゲームアプリケーションに対応するゲームスクリプトファイルを格納する。このとき、ゲームスクリプトファイルは、ゲームクライアントスクリプト格納部８３０に必ず格納されなければならないものではなく、ウェブブラウザ８２０を介して提供されることもできる。
【０１２７】
クライアントバーチャルマシン８４０は、ゲームクライアントスクリプト格納部８３０に格納されたゲームスクリプトファイルをローディングしてゲームを実行する。
【０１２８】
ゲームサーバスクリプト格納部８５０は、ゲームアプリケーションに対応するゲームサーバファイルを格納する。
【０１２９】
Ｎ個のサーババーチャルマシン８６０は、ゲームサーバスクリプト格納部８５０に格納されたゲームスクリプトファイルをローディングしてゲームを実行する。このとき、Ｎ個のサーババーチャルマシン８６０それぞれは、ゲーム部屋に対応させることができる。
【０１３０】
バーチャルマシンコンテナ８７０は、クライアントバーチャルマシン８４０および各サーババーチャルマシン８６０それぞれを駆動させ、自身を含むゲームクライアント８１０１〜８１０ｎ間のゲーム実行情報を中継する。
【０１３１】
一方、複数のゲームクライアント８１０１〜８１０ｎのうち、第１ゲームクライアント８１０１を除いた残りのゲームクライアント８１０２〜８１０ｎそれぞれは、図１８に示すゲームクライアント６１０１〜６１０ｎと同じように構成されるため、これに対する説明は、上述した説明を代わりに用いることができる。
【０１３２】
バックエンドサービスサーバ８１０、８２０は、例えば、ロビーサーバ、ルームサーバ、データベースモジュール、ランキングサービスサーバ、位置管理サービスサーバなどとすることができる。
【０１３３】
このような本発明の一実施形態に係るマルチユーザネットワークゲームサービスシステムは、上述したマルチユーザネットワークゲームの製作システムのようにバーチャルマシンコンテナを用い、Ｐ２Ｐ型マルチユーザネットワークゲームのネットワーク実行環境ではクライアントバーチャルマシンとサーババーチャルマシンを駆動させることができる。このため、製作システムによって開発されたマルチユーザネットワークゲームをＰ２Ｐ型マルチユーザネットワークゲームサービスシステムに容易に設置し、他のサーバシステムと容易に連動させることができる。
【０１３４】
一方、上述した本発明の一実施形態に係るバーチャルマシンコンテナは、ＸＢｏｘ３６０、Ｐｌａｙ  Ｓｔａｔｉｏｎ  ３、Ｗｉｉなど多様なコンソールに搭載され、ゲームサービスシステムからダウンロードされるマルチユーザネットワークゲームを実行することができる。
【０１３５】
なお、本発明の各実施形態に係る、マルチユーザネットワークゲームの製作システムは、計算機を用いて実現することができる。また、専用の電子回路によっても実現することができる。また、本発明の各実施形態に係る、マルチユーザネットワークゲームの製作方法についても、計算機を動作させて使用することができる。また、専用の電子回路を動作させることによっても使用することができる。
【０１３６】
例えば、計算機を用いて、マルチユーザネットワークゲームの製作システムを実現すること及びマルチユーザネットワークゲームの製作方法を使用することについて説明を行なう。ここに計算機とは一般的に、プロセッサとメモリと二次記憶装置と入出力インターフェースとネットワークインターフェースとがバスによって結合された装置である。二次記憶装置には、マルチユーザネットワークゲームの製作システムの実現やルチユーザネットワークゲームの製作方法の使用のためのプログラムが格納される。そのようなプログラムがメモリにロードされ、プロセッサにより実行されることにより、マルチユーザネットワークゲームの製作システムの実現やルチユーザネットワークゲームの製作方法の使用がされる。
【０１３７】
例えば、マルチユーザネットワークゲームとマルチユーザネットワーク実行環境それぞれの製作およびデバッグのためのゲーム製作モジュールはプログラムとして実現される。ゲーム製作モジュールを実現するプログラムをプロセッサにより動作させることにより、マルチユーザネットワークゲームとマルチユーザネットワーク実行環境に対応するデータ構造がメモリや二次記憶装置に記憶される。
【０１３８】
特に、プロセッサにより、マルチユーザネットワークゲームは、ゲーム製作モジュールによって製作されたりされ、または、デバッグされる。また、製作されたマルチユーザネットワークゲームはプログラムなどとしてプロセッサにより実行される。このとき、計算機のメモリや二次記憶装置には、クライアントバーチャルマシンとサーババーチャルマシンのデータ構造が形成され、また、仮想ネットワーク実行環境のデータ構造が形成されて記憶される。このようなデータ構造がプロセッサにより実行されるエミュレーションモジュールに対応するプログラムなどにより参照され、前記マルチユーザネットワークゲームの実行がエミュレーションされる。
【０１３９】
上述したように、本発明の好ましい実施形態を参照して説明したが、該当の技術分野において熟練した当業者にとっては、特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明を多様に修正および変更させることができることを理解することができるであろう。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、上述した発明を実施するための形態により制限されるものではない。
【符号の説明】
【０１４０】
１１０：ゲーム製作モジュール
１１２：ゲーム製作ユーザインターフェース
１１４：ゲーム編集ツール
１１６：ゲームプレビューア
１２０：エミュレーションモジュール
２００：バーチャルマシンコンテナ
２１０：クライアントバーチャルマシンコンテナ
２１１：クライアントバーチャルマシン駆動モジュール
２１３、２２３：ネットワークイベント管理モジュール
２１５、２２５：外部モジュール連動管理モジュール
２１７：ウィンドウ制御管理モジュール
２２０：サーババーチャルマシンコンテナ
２１１：サーババーチャルマシン駆動モジュール
２２７：スレッド管理モジュール
３００：ネットワークエミュレータ
４００：情報格納部エミュレータ
４１０：ゲーム以外情報ローダ
４２０：臨時格納部
４３０：仮想のゲーム以外情報格納部
【図１】
2010123118.tif 000003
【図２】
2010123118.tif 000004
【図３】
2010123118.tif 000005
【図４】
2010123118.tif 000006
【図５】
2010123118.tif 000007
【図６】
2010123118.tif 000008
【図７】
2010123118.tif 000009
【図８】
2010123118.tif 000010
【図９】
2010123118.tif 000011
【図１０】
2010123118.tif 000012
【図１１】
2010123118.tif 000013
【図１２】
2010123118.tif 000014
【図１３】
2010123118.tif 000015
【図１４】
2010123118.tif 000016
【図１５】
2010123118.tif 000017
【図１６】
2010123118.tif 000018
【図１７】
2010123118.tif 000019
【図１８】
2010123118.tif 000020
【図１９】
2010123118.tif 000021
【図２０】
2010123118.tif 000022
【図２１】
2010123118.tif 000023