+stream

Hello gumonji/Q world

by  ento ento   2008-12-25 16:56

先週火曜日から gumonji で、 gumonji/Q のスクリプトで書かれたゲームの募集を開始しました。期限は来年1月6日までとなっています。

gumonji とはコミュニティーエンジンで運営中のオンライン環境シミュレーションゲームです。公式サイトはこちら

gumonji/Q とは、gumonji 上で、スクリプトを書いてロボットを自由にあやつることができるようになる追加パッケージで、通常のキャラクターでできることとほぼ同じ動作をさせることができます。京都大学の協力を得て開発し、今年8月初旬にリリースしました。本体およびドキュメント類はgumonji公式サイトのページから取得することができます。

今日は、gumonji/Qにおけるスクリプト記述の紹介として、gumonji/Qで Hello World をやってみようと思います。目標は、下の写真のようにロボットに Hello World! と発言させることです。

どうです、おもしろそうでしょう? ではご一緒に。

☆準備するもの

  1. gumonjiのクライアントとサーバー一式 (ここからダウンロードしてインストール)
  2. gumonjiのアカウント (gumonjiのクライアントを起動すると登録できます)
  3. 自分のシミュレーション環境 (ゾーンと言います。自分のサーバー上で作成し、シミュレーションを走らせます)
  4. gumonji/Qのパッケージ (ここからダウンロード)

☆書きます

gumonji/Qのパッケージをダウンロードして展開すると、robot-scenario というフォルダがあります。

そこに以下のような内容で hello.q というファイルを作って保存します。ファイル名の hello がロボットの名前になります。

(defscenario hello-world ()
  (hello
    ((?wait :time 5)
      (!speak :message "Hello world!")
      (go hello))))

※これは本来必要な「ロボットの名前や位置の定義」や「ロボットにシナリオを割り当てる」などの記述を省略した簡単なシナリオ定義の方法です。省略しない書き方は、この記事の最後を見てみてください。

☆動かします

では、動かしましょう。

  1. gumonjiの自分のゾーンを走らせる(「gumonjiゾーンサーバー」ウィンドウが表示される)
  2. gumonji/Qフォルダ直下のrunManager_auto.batを起動する(コマンドプロンプトとQの対話ウィンドウが表示される)

うまくいったら、ゾーンサーバーの画面に赤い点が幾つかあらわれるはず。gumonji/Q には初めから幾つかロボットがついてくるので、点のうちの 1 つが今回作った hello ロボットになります。このままではどれが目的のロボットか分からないので、Qの対話ウィンドウでロボットの位置を取得しましょう。

以下のように、(get-position "hello")とQの対話ウィンドウに入力すると、(robot hello 94 103)のようにロボットの位置が返ってきます。



この位置に行くには、まずgumonjiゾーンサーバーのウィンドウ右下の「3Dブラウザを起動してログイン」ボタンで自分のゾーンにログインします。



それから3DブラウザのURL欄に先程取得したロボットの位置をgumonji://792/94-103のように入力し、エンターキーを押してワープします。(gumonji://792/の部分は自分のゾーンIDで、既に表示されているはずです。94-103が座標部分になるので、ここを追記してください。)



ロボットが Hello world! と繰り返していますね!



ね、簡単でしょう? ...と言っておいてなんですが、gumonji/Qのシナリオは Q というなかなか癖のある Scheme ベースの言語で書くことになっています。括弧の連続が目新しいかもしれませんが、自由に視覚的なエージェントシステムで遊べるgumonji/Q、ぜひ一度試してみてください。再掲になりますが、さらに詳しい使い方のドキュメントはこちらからどうぞ

ゲームの応募もお待ちしています

☆おまけ

もう少しインタラクティブ性のあるスクリプトも用意しました。話しかけられた内容に応じてロボットが行動する、というものです: react.q
インタラクティブな要素はゲームを作る場合に必須になります。こちらはロボット定義なども省略せずに記述したものになっていて、以下の手順で実行することができます。

  1. react.qをダウンロードして、gumonji/Qフォルダ内の scenario フォルダに置く
  2. ゾーンサーバーを起動する
  3. gumonji/Qフォルダ直下のrunManager.batを起動する (コマンドプロンプトとQの対話ウィンドウが表示される)
  4. Qの対話ウィンドウで以下を入力する
    > (load "../scenario/react.q")
    
    > (start)
    
    > 
  5. Robo という名前のロボットが作られるので、3Dブラウザでゾーンサーバーにログインし、チャットで「こい」「よし」「まて」などと言ってみる
  6. それに反応してロボットが行動するはずです


それではよいおとしを

3つの茶袋:ぽっぷん、数えないで、アンチパターン

by  ikumi ikumi   2008-12-18 18:56

茶袋の会
こんにちは、師走です。師走です。
というわけで、3週間分を一気にお届けします。

まずは2週間前。

  1. holy: pop'n music 論

生中継だけのお届けでした。pop'n musicが、ゲーム性の素晴らしさはさておき、社会的にもいかに素晴らしい存在であるかということを延々と語る日でした。私はネガメロックを支持します。

プレ忘年会でみんなでゲームセンターに行き、holyがpop'n musicで遊ぶ様子を観戦していたのですが、ボタンを押すのが早すぎて何が起きているのか分かりませんでした。

そして、先週。

  1. omo: 私を数えないで(資料はこちら

参照カウンタのいろいろ、についてのお話です。

先週の中継の様子はこちらから↓
Online TV Shows by Ustream

先週の見所:わたしを束ねないで

ついに今週です。

  1. omo: Stability Anti-Patterns(資料はこちら

安定性をそこねる、ありがちなやっちゃった的なお話です。

先週の中継の様子はこちらから↓
Free video streaming by Ustream

今週の見所:Release It!、こうするといいぜ、こうするとまずいぜ、あるある

茶袋の会ってなんですかという方はこちらのエントリ「Brown Bag Lunch」をどうぞ。

ではでは、きっとまた来週。

追記:
資料はこちらのリンク先がRSSリーダーで正しく参照できなかったので、絶対URLに変更しました。