Chapter Three

第3話


はい! 元気かい?
前回はネットワークゲームを作っていると書いたが、けっこう難航してるよ。TCPを使った通信自体はなんのトラブルもなく動作した。 が、1本のVIでサーバー側とクライアント側に対応できるようにしているから「俺はサーバー、俺はサーバー」、などと口走りながらサーバーの動作を書いているんだ。そのうち動作がぐちゃぐちゃになって、、、俺の頭はプリンかピロシキのようだ。だが、これはいつものことだ。

ネットワークゲームの何が面倒かというと、デバッグを2台のPCでやらなきゃいけないことだ。1台目のPCでバグを直して保存して、2台目にコピーするんで手間がかかること。能率が悪い。そこで考えたのが、1台のPCでデバッグできるツールだ。

前回の話で書いたようにTCP Read.viは意外に低レベルだ。受け取るバイト数を指定しなければいけない。だから、不定長のデータを送受するには、ヘッダーにバイト数を明記するとった約束事が必要だ。データストリングを入れてやると約束に従ってヘッダーを付けてくれるのが2StepWrite.vi、自動的にヘッダーを使って必要なデータを受け取るのが2stepRead.viだ。ほとんどNIのExampleのままだ。

Fig. 1




 

Fig. 2




 

Fig. 3



実際に使うのはこれらのviだが、デバッグ中はダミーのviを使うことにした。DummyW.viはグローバル変数のストリングに書き込みを行う。DummyR.viはそのストリングがEmptyだったらストリングが入ってくるまでWhile-loopで待っていて、入ってきたらそれを読みとった後でEmptyにしてしまう。これで本物そっくりの通信環境の出来上がりだ。デバッグが終わったら、ダミーを入れ換えて実際の環境で動作を確認する手はずだ。Connection IDを成立させるまでのところはシミュレートできないが、これだけでもかなり役に立つはずだ。

Fig. 4




 

Fig. 5



ひょっとしたら常識だったかな?

ゲームの名前はMyWayにした。お互いの道は交差することが出来ないルールで、青は左右の対面を、赤は上下の対面を端から端までつなぐゲームだ。オリジナルは、「橋かけ」と言って1958年にDavid Galeが作ったとか。

Fig. 6



では、こんどこそ「できたよ。」で始まる手紙を書こう。

Nigel


戻る