JewelMmoClient

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

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

新案

  • コマンド群
  • Nadoka ( + 独自の bot )
    • この Nadoka に任意の IRC クライアントで接続
  • その他の支援ツール。各種 GUI は別プロセス

コマンド群

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

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

  • ログイン
  • キャラ選択
  • エリア移動
  • 攻撃
  • ヒーリング開始

クライアントの Nadoka

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

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

  • チャットメッセージのフィルタリング
  • 各種状態 (HP とか他のキャラの位置とか) の取得とログの生成
  • PC の自動操作

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

その他の支援ツール

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

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

旧案

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

  • コア (Ruby + Ruby スクリプト)
  • Nadoka ( + 独自の bot )
  • 既存の IRC クライアント
  • Easy Rocket ( 独自の GUI サーバー )

クライアントコア

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

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

  • メインサーバーへの接続
  • Nadoka bot を通したチャット処理
  • Easy Rocket 使用した間接的な GUI 制御(future)

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