オンラインチャットの道具についてあれこれ

最近オンラインチャット関連ではいろいろ探し回ったので、そのまとめをします。僕はSWをCGIチャットで遊んでいたんですが、なるべく同じ雰囲気で”ダブルクロス”がやりたいという目的でいろいろな道具を探しました。

みんちゃ

まずはみんちゃというソフトを使ってみようと思いました。
オフィシャルページはここです。そこから紹介の文を引用します。

みんなのチャット♪、略してみんチャ♪ はインターネットやLAN上で
最大100人まで同時に文字による会話を行うことができるチャットソフトです。
専用アプリケーションなのでリロードなしの快適チャットが可能。
起動は一瞬でJAVAチャットのように最初の読み込みに時間がかからず、
Webチャットとは比べものにならないほど高速なリアルタイムチャットが行えます。
また、Windows版とMacintosh版がありますのでOSの違いを気にせずにチャットが行えます。
チャットをする為に作られた専用ソフトなので、使い勝手がよく、機能も豊富です。

ダイスが振れないと不便なんですがダイスみん(オフィシャルぺーじはこちら)っていうプラグインを追加することで振れます。ダブルクロスにも対応予定って書いてあるんですけど製作者が忙しいのか、まだ公開されている様子はないですね。


これで簡単にいけるかなぁって思ったのですが、ルーターなんかの設定がだめなのか、どうも外から見えるようにならず、あきらめちゃいましたね。設定関係はここを参考にしました。

CGIを改造して…

Perl

まぁ要はダイス振れればいいんでしょ!ってことでperlcgiダイスチャットを改造してしました。まぁダイスを振る部分を変えればいいだけなんで、そんなに大変ではありません。Perlが読み書きできる人なら簡単にできると思います。もともとここ、はるのつぼみさんにあったものを改造して、一応動くようになりましたね。ただ、全部自分で書いているわけじゃないので、何をやってるのかあんまりはっきり把握してないところなんかもあります。いけませんね。CGIの部分じゃなくてコンフィグのセッティングをちょっと変えただけでバグがでたりするんですが…まぁ人の書いたスクリプトなんで、想定外のことしてるのかもしれません。むむむ…そんなわけないんだけどなぁ…。ちなみにこのスクリプト著作権を表示した上で再配布は自由です。


まぁサーバーの反応が遅くてもバグります。このへんもロックをうまくかければいいのかもしれませんけどねぇ。あとは単にサーバーが空いてればいいだけの話なんですけど、無料レンタルサーバーだとCGIチャットが快適な速度で動くところはまれかもしれませんね。

PHP

そんなわけでサーバーに負担をかけずになんとかならないもんかなぁというとなんとかなるんですね。PerlじゃなくてPHPっていう言語で作ると負荷は随分減ります(詳しくはしらないけど)。Perlっていうのは専門的に言えばインタープリターであってコンパイラじゃないんですよね。呼ばれる度にコンパイルと実行を行うので遅くて負荷をかけるわけですが、PHPはApachの…ってだんだん話が専門的になってきてしまいました。自分でもわけわからなくならないうちにやめておきましょう。PHPでTRPG用のダイスチャットを作る試みはこのあたり、Pbscriptで進行中です。PHPが使用できるサーバーはPerlが使用できるサーバーの数には及びませんが、わりとあります。使いやすいPHPのダイスチャットができればすぐ広がると思いますね。

mod_perl

PerlもPHPに負けっぱなしかというとそうでもなくて、mod_perlというモジュールにするとPHP並かPHP以上に速くなると言われています。要は最初の一回だけはインタープリターとして振舞ったあと、あとはメモリに常駐して、実行のみ繰り返すことで処理を高速化しています。スクリプトも元のPerlスクリプトを変更すれば使えそうなのでこれが便利で、これに期待したいんですけど、Mod Perlが使えるレンタル無料サーバーは少ない気がします。広がらないのは一説によると日本語ドキュメントが少ないからだそうですね。あと、変更ですむとは言え元のPerlスクリプトからの変更はわりと面倒な感じがしますね。単に変数の初期化とか、変数のスコープをしっかり定義してくれってことなんですが、Perlはそういうのが適当ですむところが手軽なところですからねぇ…。まぁでも僕は先ほどのはるのつぼみさんのスクリプトを誰かMod Perlで動くようにしてくれないかなぁと期待しています。

IRC

ダイスチャットは重たいですし、いろんなTRPGごとに判定を付け足さなきゃいけないので、そのへん面倒です。IRCも試してみました。

僕はぜんぜん知りませんが、昔はChocoaとLimechatの二大勢力があったんでしょうが、今からはじめるならLimeChatが便利だと思いますね。オフィシャルページはここでダウンロードもできます。あとはTRPG.NETさんの木陰サーバーに接続して部屋を作れば簡単にチャットできますね。

具体的には

  1. 起動したらサーバー→サーバーを追加
    • ホスト名:irc.cokage.ne.jp
    • ポート:6667
    • 設定名やニックネームログインネームなどは好きに。
  2. 設定すると右下にアイコンがでると思うので右クリックから”接続”とするとサーバーに入れます。
  3. その後サーバ→チャンネルを追加
    • 例えば #なんちゃら と入力しますと#なんちゃらというチャット部屋(なければ作成して)に入れます。
  4. 右下に#なんちゃらというフォルダ状のものができますのでそれをダブルクリックしてください。
  5. それで左の真ん中の行に発言を入力すればチャットできます。
  6. 設定→設定→ログファイル でチャンネルにチェックを入れておきましょう。ログが勝手に保存されます。

これで、GMするときにはTRPG.NETのメーリングリストに入るようにしましょう。

ダイス

ダイスに関してはOD TOOL for TRPG(LimeChat用)というマクロが便利です。ここの入手先からダウンロードできます(ベクターにもあるけどバージョン古いかも)。インストールは単にファイルを適切なところにおくだけです。ダイスの振り方や対応しているシステムはここをみればいいでしょう。

ダイスを呼んでそのダイスが勝手に振られるという状況設定にするためには…、

  1. 上のサーバー追加をもう一回繰り返す ニックネームはaa_diceなど適当にダイスっぽい名前をつける。
  2. 自分と同じ部屋にダイスも入って、ダイスの設定のほうの右下のサーバーのアイコンを右クリック、サーバーのプロパティでマクロを選んでマクロを選び、OD TOOLのところに印をつけます。
  3. ダイスのほうの設定でチャンネル(フォルダのアイコン)を右クリックしてチャンネルのプロパティを開き、”全体ログを表示する”の印を消しておくと、全体ログが二重に表示されなくなるので便利です。

未来像

普通のperlmod_perlPHPにとって代わられたら、CGIチャットの一番の問題である、重いっていうことが回避されるんですよね。そうしたらIRCよりhtmlを使えるチャットのほうがいろんな表現が出来て嬉しいんじゃないかと思います。

あんまりそういう試みを見ませんが、IRCみたいに、その部屋のログと全体ログが両方見えるようなCGIチャットを作ると、作戦会議とかしやすいんじゃないかなぁ。はやく移行して”どういうインターフェイスが便利か”って議論にならないかなぁ。技術はできていて、あとは誰かがやるだけです。理系の学生さんがんばって!!