JewelMmoClient

2005-11-16 15:11:22 +0900 (6738d); rev 1

クライアントのシステム構成

新案

コマンド群

サーバーへのアクションはコマンドを使って行う。コマンドはおそらくは Ruby スクリプトだ。

例えばこんなコマンドがある。

クライアントの Nadoka

クライアントに常駐させるプロセス。 サーバーからクライアントへの通信は Nadoka 使って行われる。 実際には、この Nadoka によって起動された bot が各種処理を行う。

bot が行うのは例えばこんなこと。

ちなみに、クライアントの Nadoka は ?Pylicca 、サーバーの Nadoka には ?Ilis と名付けてある。

その他の支援ツール

例えばステータスウィンドウは、ひとつの独立したアプリケーションとして提供される。 つまりステータスウィンドウであるアプリは bot がはき出す状態ログを監視して、表示内容の更新を行う事で実現出来る。 tail と grep を用いてステータス情報だけを表示すれば、簡単なステータス表示ツールのできあがりだ。

全てのインターフェースはこのように別プロセスで動くプログラムとして作成する。 プレイヤーが独自の支援ツールをたやすく作成出来るようにすることも、重要なコンセプトのひとつだ。

旧案

↓ここから下全てに書いてあることは旧案

クライアントコア

クライアントコア(仮称)はコンソールから実行出来るコマンド群です。 Ruby で実装されているのでクライアントシステムを動作させるには ''Ruby が必要''です。

クライアントコアは以下の処理を行います。

Nadoka + 独自 bot

この bot がチャットサーバへの接続や各種メッセージのフィルタリングを行います。

また bot を自作することで自分のキャラクタを NPC のように振舞わせることができます。

Nadoka を使うメリットには通信機能を備えた bot を簡単に作成出来るという点があります。 将来的には Nadoka さんのバックエンドは IRC でなくてもいいのかもしれません。

既存の IRC クライアント

チャットを行うには既存の IRC クライアントが必要です。例えば ?LimeChat でチャットをすることになります。 この IRC クライアントは ircd であるチャットサーバーに接続するのではなく、ローカル環境にある Nadoka に接続します。

Easy Rocket

Easy Rocket は汎用的なゲーム用の GUI 処理系で、 Jewel-mmo のために独自に実装するシステムです。 TCP/IP による接続で各種 GUI 処理を実行可能なサーバーアプリケーションです。

コアから GUI の処理を別プロセスに分離する理由は 2 つあります。

GUI 処理ではゲームのロジックとは関係のない煩雑な処理が要求されるます。その煩雑さを別プロセスにすることで、メインプログラムから確実に分離してしまおうというのが 1 つ目の理由です。

2 つ目の理由は GUI の制御はプラットフォームや使用言語による制限が大きいので、その制約が本体であるコアへ影響しないようにするためです。 プラットフォーム依存部分が Easy Rocket に集約するというメリットもあります。


system revision 1.162