はじめに
このチュートリアルでは、Flashを使って独自のマルチプレイヤーゲームを作る方法を見ていきます。
今回のチュートリアルは、「三目並べ」(Tic-Tac-Toe)というターン制のゲームをベースにしています。
![完成したゲーム](http://cz-cdn.shoeisha.jp/static/images/article/3853/ttts.gif)
必要な環境
- Windowsオペレーティングシステム
- JRE
- Flash/Flex 3開発環境/FlashDevelop(FlashDevelop.org-Index page)
- Pulse SDKパッケージ(PULSE-A community platform for multi-player flash gamesより無料で入手可能)
- 詳細はパッケージ同梱のリストを参照
必要とされるプログラミングレベル
このチュートリアルでは、Flashによる開発の経験があり、AS3でのプログラミングを容易に行える読者を想定しています。また、オブジェクト指向プログラミングの概念を知っていれば、なおよいでしょう。
準備
フリーのPulseパッケージをダウンロードしてインストールする必要があります。このパッケージには次のものが含まれています。
- Pulse Server
- 多数のサンプル(ソースコード付き)
- Pulse Game UI Framework(ソースコード付き)
サンプルの実行
インストールディレクトリからPulseサーバを起動し、サンプルディレクトリからゲームを開始します。フリー版のサーバでは、一度に1つのゲームしか実行できないことに注意してください。別のサンプルを試したければ、今行っているゲームのゲームクライアントインスタンスをすべて閉じてから、新しいサンプルを実行する必要があります。
Pulse UI Framework
Pulse UI Frameworkは、自分で新たなマルチプレイヤーゲームを作ろうと考えている人にうってつけです。このフレームワークを使えば、ゲームそのものの開発に専念でき、全般的な画面フロー、ログイン、ルーム管理、チャット、友達作り、プレイヤー表示などのUI部分はフレームワークが面倒をみてくれます。
ダウンロードパッケージには、このフレームワークの全ソースコードが同梱されているので、作ろうとするゲームに応じてフレームワーク自体を自由に修正することもできます。
開発スタート
ルーム内の全プレイヤーの間でゲーム状態を共有するには、どうするのが1番よいでしょうか。まずはこれを考える必要があります。
ゲームのモデル化
「三目並べ」ゲームでは、プレイヤーのアクションを他のプレイヤーに送る必要があります。つまり、クライアントが(x,y)座標を送信しなければならないということです。
そこでまず、ゲームのプレイ中に使われる、ゲーム状態を定義する簡単なXMLファイルを定義する必要があります。
これは次の2ステップで行います。
- XMLファイルを作成する。
- インストールフォルダのbinディレクトリにあるPulseCodeGenを使ってソースを生成する。
上記のスキーマファイルで他のプレイヤーとアクションをやり取りするわけですが、このゲームで必要とされるものはいたって簡単です。プレイヤーはスポット(行と列)とその値(「X」または「O」)を選択します。どちらの値が置かれるかは、誰が実際にゲームルームを開始したか(つまり、誰がゲームホストであるか)によってゲーム開始時に決まります。
ゲームに必要とされるゲーム状態の設計が完了したら、上記のXMLファイルを入力としてPulseCodeGenツールを実行する必要があります。以下のリストは、これを実行するバッチファイルです。
IF EXIST .\src\tictactoe\gsrc\client del .\src\tictactoe\gsrc\client\*.as CALL "%GAMANTRA%"\bin\PulseCodeGen.bat .\tictactoeSchema.xml tictactoe.gsrc .\src\tictactoe\gsrc IF NOT %ERRORLEVEL% == 0 GOTO ERROR ECHO Success! GOTO END :ERROR ECHO oops! :END Pause
このバッチファイルを使うと、スキーマを変更してもソースファイルを簡単に作り直すことができるので便利です。