忍者ブログ
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
プロフィール
HN:
[-_-;] (みかん)
性別:
男性
趣味:
プログラミング、XOPS
自己紹介:
中部地方在住です。
最新コメント
[11/30 NONAME]
[11/22 NONAME]
[09/24 NONAME]
[06/10 NONAME]
[01/29 NONAME]
XOPS関連サイト「みかん箱」の運営や、OpenXOPSの開発などを行う[-_-;](みかん)のブログ。近状報告や独り言などを書きます。
Prev Month12345678910111213141516171819202122232425262728293031Next Month
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

category :
PR
OpenXOPSをOpenGLに移植してみた
えぇ、もう3月じゃん。 <急にどうした

Invisible Alpaca主催の、第十回親睦戦に参加してきました。
パックは「Qq」で、私のプレイヤー名は xopsplayer でした。
マップと武器が最後まで分からず、まともな戦略を立てないまま場の
流れで適当にやっていたので、終始”動く的”になっていましたw


前にちょっと書いた通り、OpenXOPSをOpenGLに移植してみました。


(クリックで拡大)

本家XOPSはDirectX 8.1、OpenXOPSは現状DirectX 9.0cを使っています
が、今回グラフィック周りをOpenGLに乗せ換えてみました。
OpenXOPSはRev.55を元に、グラフィック周りをOpenGL 1.1に移植して
います。 コンパイル環境はVC++2008です。
基本的にはD3DGraphicsクラスをごっそり入れ替えただけで、他の部分は
殆ど触れていません。

OpenGLとか初めて触ったので、色々分からないことがたくさんあって大変
でした。 にしても、初めてOpenGLを使って作った3Dゲームで、いきなり
XOPSレベルのFPSゲームになるとは・・・。


上の画像ではうまく誤魔化していますが、実は致命的な問題点が2点あり
ます。
 ・テクスチャは.bmpファイルと.ddsファイルしか対応してない
 ・システムフォントの表示に非対応

前者は、テクスチャの読み込み部分を独自に書いているためです。その
フォーマットを選んだ理由は、とりあえずTENNKUU氏のグラフィックデータ
に対応させるため。
残念ながら殆どのaddonは、正しくマップが表示されません。
まともに使うならば、llibjpegとlibpngを乗せるか、OpenCVでも使うべきだ
と思います。

後者は、OpenGLをやったことある人なら分かる通り、Windowsに依存す
る部分で、なんか面倒くさかっただけ。
まぁ、標準ミッションプレイするだけなら、ブリーフィング文章とかイベント
メッセージくらい読めなくても大して問題ないですし。

これら以外にも細かな不具合がありますが、まぁ近いうちに修正できるで
しょう。きっと。


なお今回はVC++を使いましたが、BorlandC++でもそのままコンパイル
できました。
さらに一部ヘッダーファイルを追加すれば、GCC(MinGW使用)でも無事
にコンパイルできるようです。

今回の成果物であるOpenGLのソースは、近いうちにOpenXOPS自体にも
載せる予定です。
標準では、今まで通りDirectXのプログラムをコンパイルする設定にしておき、
定数を変更することでOpenGLを有効化してコンパイルできるようにする
つもりです。
category : ソフト・ツール開発 comment [1]
OpenXOPS 1.011 を公開
記事にするのが少々遅くなってしまったので、既にご存じの方も多いと思い
ますが、OpenXOPSのバージョン「1.011」を公開しました。


1月10日のOpenXOPSソースコード公開に合わせて、1.000をリリースしよ
うとしたところ、バイナリ版の公開を忘れたままになっていました。

そして2月20日に、1.010を公開しました。
ソースコードを公開する以前まで、「デモ版」としてアップデートしてきまし
たが、ソースコードが公開された今、正規リリースとして初のバイナリ版公開
でした。

ところが、投入した1.010において、致命的なバグが見つかりました。
”小物破壊待ち”イベントを追加小物に対して使用すると、正しく動作しない
という深刻な不具合です。
正規リリースはある程度タイミングを考慮して行うつもりで、本問題も次回
リリース時に修正することも考えました。
しかし、本問題により正常に動作しないaddonが続発する可能性もあった
ので、2月22日に急遽バージョンアップを行いました。


既に1.010を入手された方、極めて短期間の更新でお手数をお掛けします。
また、今まで「デモH」版を使われていた方、大変お待たせしました。

デモHと比べ1.011は比べ物にならないほど進化しています。
ぜひお試しくださいませ。


OpenXOPSの開発自体は、細かな改善も行いつつ、最近OpenGLへの
移植を試みています。
全体的には概ね良い感じです。詳細は後日の記事にします。
category : ソフト・ツール開発 comment [0]
ダラダラとレーダーを開発
ブログを書こうとすると、書く直前に何かしらのコメントを頂けるようで、
非常にありがたいです。
「コメントが来てから慌てて書いているのではないか?」と疑われると
筋の通った反論がないのですが、決してそんなことはないです。

ブログを10日近く書いていなかった理由ですが、ネタもあり何度か
書こうとしたものの、上手く文章がまとめられず投稿しませんでした。
 (途中まで書いた記事を、何本かボツにしました。)
他のネタを書くなり、適当に書くなりで、とりあえず何か書くべきでした。
すいませんでした。


OpenXOPSですが、レーダー機能を実装してみました。
当然、例のコンソールから呼び出す仕掛けです。


(クリックで拡大)

ちょっと前まで、他のFPSネタを持ち出しながら「レーダーがほしい」と
言っていたユーザーがいましたが、彼らに触発されたわけではないです
よ、えぇ。 表向きには デバック(開発)用機能 です。
そのまま使っても良いですが、他にも色々応用できそうです。

上の画像だと上手く動いているように見えますが、実際には結構ボロ
がある不完全なシステムです。改良の余地アリ。
人の位置を表示するのは対して難しくなく、むしろマップを表示するの
が非常に大変でした。
意外に凝った作りで、複雑な階層構造(BUILDINGやRELICなど)の
マップでも、各階のマップを表示します。なお、予め用意した画像など
ではなく、毎フレームリアルタイムに算出しています。
 ・・・どう? 凄いでしょ? えぇ、そうでもない?

使ってみた感想。
 『どこに敵と味方がいるか丸見えで、緊張感がない超ゆとりゲー』

多分、後日リリースする正規(バイナリ)版にも乗せると思います。
ってか、いつになるのだろうか・・・。
一応説明書っぽい何かも作ったのだけれども、クソ マニュアル (^^
category : ソフト・ツール開発 comment [0]
弾の当たり判定を作り直したい
ここ数日は学業忙しくて、OpenXOPSに関する大掛かりな作業は
できませんでした。
もうちょっとすると学業の一件は終わるのですが、それら以外にも
片付けなくてはいけないことがあるので、あまり「暇」というわけでは
ないです。


OpenXOPSの開発ですが、手榴弾が爆発した際のダメージ判定と
計算部分を作り直していました。(コミット済み)

今まで、人と小物へのダメージ判定と計算を、humanクラスとsmall
objectクラスで個別に行っていましたが、今回の改良でObjectManager
クラスに判定と計算を集約しました。
また、処理を関数化することで、ObjectManagerクラスのProcess()
関数の可読性の向上を狙っています。
これで、手榴弾の爆発時の処理が銃弾の処理に近くなり、当初より
マシになっていると思います。

今後は、弾の当たり判定を作り直したいです。
ObjectManagerクラスのCollideBullet()関数がとんでもない状態に
なっているので、手を打ちたいとは思っています。
マップとの当たり判定は良さそうですが、人と小物との当たり判定
が本家と違うようなので、解析し直さなくてはいけませんね。


後は、人とマップとの当たり判定をなんとかしたり、人とカメラの制御
を改善したり、バイナリ版用に正規の説明書を作ったり。

以下報告ですが、Doxygenの使い方を解説することにしました。
設定ファイルも公式リリースです。詳細は公式サイトをご覧ください。
category : ソフト・ツール開発 comment [1]
コンソール機能を載せる
ちょくちょくブログのネタにしつつも、他所では殆ど話していないのですが、
自宅に24時間動きっぱなしのサーバーが2台ありました。
それぞれ用途はあったものの、管理も電気代も色々面倒なので、1台(新
しい方)に集約することに決め、先日作業が完了しました。
いつから動かしていたのか覚えていませんでしたが、古い方は5年前から
動き続けていたようです。 いやーお世話になりました。
  (2009年8月17日の記事


OpenXOPSについて、突然ですがメインゲーム画面上にコンソール機能
を載せることにしました。


(クリックで拡大)

実は実装するコマンド・機能もある程度決まっており、公式サイトで(仕様
の草案を)公開しました。

キーボードの各ボタンに機能を割り当てているスタイルでもよかったので
すが、コンソールのコマンドとして入力できるように作っておいた方が、
後々機能追加や削除が容易にできるからです。

結構良い感じで動いています。


あー、そろそろ正規リリースとしてバイナリ版出さないとなぁ。
まず一般向けの説明書作りからか。 面倒くさい。
category : ソフト・ツール開発 comment [0]
[6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]

※過去のブログ記事は 原則として編集・修正していません。
 各記事の内容は投稿時のものであり、現在では異なる場合があります。
 最新の情報は、関係する内容について書かれた 最新の記事をご覧ください。

TOP