言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

TeaTime 問題解決の糸口

昨日から散々苦労している Croquet の TeaParty (P2P 仮想共有オブジェクト) の利用法だが、ようやく糸口が見つかり、単体テストフレームワークも動いた。そう、そもそもプロセスの動作自体が違うので、Croquet 専用の SUnit が必要なのだが、これ自体作ったけどあまりウケが良くなくて、自分ひとりで細々と使っている。

まだ分からない事だらけだし、どうせすぐ David Reed が変えてしまうのだけど、今までの問題はこうだった。CroquetWorld (自分のマシン) は複数の TeaParty に参加できるのだけど、デフォルトで用意されている自分しか入れない TeaParty というのがあり、指定が無ければそれが使われる。問題は、その TeaParty の中で 3D オブジェクトの構築が出来ない事だ。なんでか知らないけど。

Squeak 世界から Croquet 世界に通信するためには #inWorld:sendTo: を使う。例えばイベントの受け渡し等に使うのだが、このとき自分専用 TeaParty が使われる。しかしこの中では 3D オブジェクトの構築をしてはいけないのだ。結局、大事なのは、CroquetWorld にメッセージを伝える時には、どの TeaParty を使って伝えるのかという事をちゃんと意識しないといけないという事だ。

取り合えず単体テストフレームワークでは、テストのたびに使い捨ての TeaParty を作って、その中で実行するようにした。めでたしめでたし。