(^ ^) Ruby+dRubyを用いた P2Pゲームの作成 B4 佐川 昭宏 B3 青柳 禎矩 アウトライン 作成したソフトウェアの概要・特徴 実行方法 本ソフトウェアの仕組み デモンストレーション 作成したソフトウェア トランプゲーム(ババ抜き) PCで動作 使用言語:Ruby + dRuby 特徴 ババ抜きを複数ノードで楽しめます 開発言語にRuby、ノード間の通信に dRubyを使っています P2P型のネットワークです Ruby, dRubyとは Ruby 手軽なオブジェクト指向スクリプト言語 dRuby Rubyでネットワーク越しにメソッド呼び出しを 行なえるようにするライブラリ ネットワーク越しに呼び出せるメソッドを RM(Remote Method)と定義します 実行方法(1) 実行ファイル名は baba.rb 親として起動する場合 baba.rb name 子として起動する場合 baba.rb name parent’s URL 実行方法(2) ゲームの操作方法を書く 本ソフトウェアの仕組み 準備 ネットワーク確立 ゲーム開始 メッセージ送信 メッセージの解釈 ネットワーク確立(1) 親になる人がbaba.rbを実行 自分のURLが表示される 子は、親のURLを指定して baba.rbを実行 druby://sagawa:10000 子は親の公開オブジェクトを使 用できる 親は子のURLを取得し、子の 公開オブジェクトを使用できる 相互に公開オブジェクトを使 用できる druby://sada:10000 ネットワーク(2) 二人目以降の子は、 グループのいずれか のノードに接続要求 接続されたノードは、 今自分に接続してい るノードに接続先変更 要求を出す 3ノードでのネットワー ク完成 druby://sagawa:10000 druby://ichiriki:10000 druby://sada:10000 ネットワーク確立(3) このようにして複数のノードを環状に連ね ることができる メッセージ送信(1) 公開オブジェクトメソッ ドを用いて、メッセージ をホップさせる ichirikiがsadaにメッ セージを送信する場合 druby://sagawa:10000 from ichiriki→sagawa sagawa:自分宛のメッ セージではないと判断 sagawa→sada sada:自分宛のメッセー ジなので受信 to druby://ichiriki:10000 druby://sada:10000 メッセージ送信(2) ゲーム中に必要な情報はメッセージを使い、 ノード間で交換する ゲーム中に必要な情報 所持しているトランプの枚数 何番目のトランプをひこうとしているか そのトランプは何か ゲーム終了宣言 etc メッセージ処理 受信したメッセージはノードのキューに pushされる 各ノードのゲーム処理スレッドは、キュー からメッセージをpopして処理 POP ゲーム処理 スレッド PUSH メッセージ キュー 公開オブジェクト メソッド 作業分担 ネットワーク・ゲーム部分の実装 佐川 ネットワーク部分の実装&雑用 青柳 デモンストレーション スライドはこれで終了です これからデモを行います
© Copyright 2024 ExpyDoc