ppcが書いたよ
WS を使って gumonji2006 のビューアを作ってみたよ
by
ppc
2008-03-14 12:45
はじめまして。
開発エンジニアの ppc です。
今日は最近作っていたプログラムについて書いてみます。
WS を使って gumonji2006 の鳥瞰図ビューアを作ってみたよ
1年ほど前から WS の開発に携わっているのですが、もっぱらサーバ側の開発を行っていたので、クライアント部分(描画とかの機能)にはあまり触っていませんでした。
そんなわけで、2月の中ごろから、勉強と性能テストを兼ねて gumonji2006(※1) のゾーンにログインできるクライアントを作っていました。
プロジェクトはサンプルからコピペ
最初に行ったのはプロジェクトの作成。ここはサンプルからコピペです。

これでウインドウと描画の準備は完了です。
地形を表示したくなった
ゾーンにログインして地形を取得するためにはログインサーバやゾーンと通信する必要があります。
そこで gumonji2006 のクライアントから通信周りのファイルをコピペしてプロジェクトに取り込みビルド!
おっとライブラリのリンクがうまくいきません。
gumonji2006 と WS は開発環境が違っていることを思い出す。
リンクするライブラリを変更して解決!
続いてビルド!
おっと、定義がないよ!、そのメソッド知らないよ!というエラーがたくさん出ます。
コピペしたコードには通信部分しか含まれていなかったので、キャラクタ管理などゲームの実装に関する定義が無いようです。
エラーを言う部分を空にしてビルド!

ついにコンパイルが通りました。
ゾーンにログイン
ログインするためには、ログインサーバ-クライアント間、ゾーン-クライアント間で何回か通信処理を行う必要があります。
gumonji2006 のクライアントを参考にしながら実装します。
ユーザIDやパスワードの入力画面はサンプルからコピペしてきて完成。

さっそくテストで使っているサーバにログインしてみます。

ログイン成功! しかし何も表示されません。
地形を読み込もう
地形を読み込む部分を作っていませんでした。
ゾーンと通信して地形をもらってきたら、サンプルにある地形描画クラスに流し込むようにしてみます。
OpenGL と DirectX での座標系の違いとか、 多少躓く点がありましたが、地形の描画に成功です。

地面のテクスチャを1色しか用意していませんでした。。。
自然タイルといくつかのタイルを反映できるようにして、

できました。
ちなみにログインしたゾーンはこんな感じです。

私の PC では、このゾーン (128*128 tile) の地形を 60 fps で表示できました。
次は地形に加えて植物などのオブジェクトの表示を試したいと思います。
つづく。
(※1)gumonji2006とはコミュニティーエンジンが運営している無料のMMOです。単純な環境シミュレータを実装しており、動的に環境が変化する仮想空間を体験できます。
gumonjiについて詳しく知りたい方は gumonji2006 公式サイトをご覧ください。