忍者ブログ
カレンダー
10 2024/11 12
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
プロフィール
HN:
[-_-;] (みかん)
性別:
男性
趣味:
プログラミング、XOPS
自己紹介:
中部地方在住です。
最新コメント
[11/30 NONAME]
[11/22 NONAME]
[09/24 NONAME]
[06/10 NONAME]
[01/29 NONAME]
XOPS関連サイト「みかん箱」の運営や、OpenXOPSの開発などを行う[-_-;](みかん)のブログ。近状報告や独り言などを書きます。
Prev Month123456789101112131415161718192021222324252627282930Next Month
OpenXOPSを組み上げてみる
もう6月も終わりそうなんですね。夏が目の前に迫っているようで。

OpenXOPSのプロトタイピングを続けており、とりあえず画面遷移
(オープニング、メニュー画面、ブリーフィング画面、ゲームプレイ
画面、結果表示画面 への切り替え)や、一部を除く描画周り、入力
周りの処理、サウンド再生 を作っていました。
Doxygen(ドキシジェン)へのドキュメント出力もやっています。
この辺は、なんだかとっても良い感じです。

同時進行で、あの手この手で本家XOPSの分析作業も進めています。
平面移動速度、落下速度、落下やグレネードによるダメージ計算、
武器の発砲音の再生音量などを調査しました。
落下速度以外は、納得できるかなりの精度で調査できています。


(銃声の再生音量・クリックで拡大)
再生音量は、距離に応じて線形に反比例していきます。
武器により銃声の再生音量は異なりますが、実は300ほど離れた時点
で殆ど差がなくなることが分かりました。『武器設定で再生音を大
きくすると、遠くまで聞こえる!』っというのは、事実でないことを
確認できました。
(注:ezds.dllに与えられる値。実際にスピーカーから流れている音量
 ではない。)

いつの時代も、当たり判定は厄介ですね。ちょっと試してみましたが、
全然うまくいきません。
AIには全く手を付けられていません。

後、ここにきて新たに直面しているのは、クラス設計の難しさです。
正直言ってデザインパターンを全く理解しておらず、完全にオレオレ
構造なクラス設計になりました。こんなコードを、オープンソースで
ばらまいて恥ずかしくならないか、不安になっています。とは言いつつ
も、今からデザインパターンを勉強するのは、手間だし面倒だし・・・。


別件で、人から頼まれている関係で、Raspberry Piを始めようかと
思い準備しています。
32ビットの700MHz CPUに、512MBのメモリー という十分な性能
で、OpenGLが動くようです。
これは、「おぉ?」って感じです。元は関係ない別件で触るつもり
だったのですが、これにOpenXOPSを移植したら面白そうですね。
category : ソフト・ツール開発 comment [0]
PR
OpenXOPS開発を評価する
本当に長くブログを放置してしまって、すいません。

前々から話している「OpenXOPS」のプロジェクトについて、検討の最終段階として
実際に模擬的な開発をやっています。


(クリックで拡大)

4年前の「偽XOPS」の記憶を取り戻したり、ある程度信用できる開発工数・時間を見積
もるためにやっていましたが、気が付くと本番に流用できるレベルのものになっていし
まいました。 合計作業時間は40時間ほどです。
外見だけだとまだまだですが、内部では描画周りを中心に、ごく一部を除き一通り実装
してしまいました。本家XOPS作者のお二人には失礼で申し訳ないですが、現行XOPSの
描画周りは特別難しい技術は使われておらず、ごく一部分を除き概ね簡単です。
さらに言えば、この程度の描画処理を行えない(書けない)レベルだと、ゲームとして
XOPSを作るのは不可能です。

OpenXOPSで最も難しいと推測されるのはAI周りで、次は当たり判定全般です。
この2点は、現状XOPS界で解析作業が殆ど行われてないにも関わらず、ゲームバランス
を決める極めて重要な部分です。本家XOPSを再現する上で、決して手を抜くことができ
ず、気を緩めることが出来ない部分になります。おそらく、このAIと当たり判定は最後
まで苦線を強いられ、地道な改良作業が続くでしょう。
なお、現状はAI周りや当たり判定の具体的な処理まで、やっていません。

あと、もう一つ。外せない重要な要素があります。
Doxygen(ドキシジェン)を活用した、ドキュメント作成です。


(クリックで拡大)

ソースコードをオープンソースで公開し、加えて他の方々に利用してもらうことを考える
と、見やすいソースコードを書くことはもちろんのこと、ドキュメントの整備も必須です。
ソースコードを書き換えるたびに別途ドキュメントを書き直すのは、手間で苦痛以外何物
でもありません。
Doxygenを利用すれば、ソースコード内に書かれた特定の書式に合わせたコメントを自動
認識して、ドキュメントを自動生成してくれます。VC++のビルド設定に自動的に実行す
るように仕込んでおけば、もう完璧です。
Doxygen自体は殆ど触ったことなく、今回ぶっつけ本番で実戦投入しました。独特(?)
のコメント記述スタイルに慣れるのが大変でしたが、一度慣れればとても便利です。
OpenXOPSに限らず、今後ある程度規模の大きいソフトウェアを組む時は、率先して使う
べきかと迷うレベルです。

あー、完全にやり過ぎましたね。。
あとは、AIと当たり判定周りを試してみて、ある程度見積もりが取れ次第 一度作業を
中断し、再検討する作業に入ります。

 ※決して、正式にOpenXOPSの開発が始まったわけではありません。

category : ソフト・ツール開発 comment [0]
「XopsAddonCreator」の開発 -29
自分で決めた人生の選択について、果たして正しい判断だったのか
考え込んでしまうのですが、某氏とメールで話している時に、
『未来の事は分かりませんし、どの選択がより良かったのかは
 未来になっても分からない事だと思います』
と言われ、なんか納得してしまいました。


さてさて、XopsAddonCreatorの開発ですが、コツコツとバグ潰し
をしつつ、改良を重ねています。
ここ数日で行った大きな改良は、ブロックテクスチャの透過処理に
対応させたことです。


(クリックで拡大)

※ マップは「Korean Zombie Mode 1.84 (Multiplayer)」に収録
されているものをお借りしています。

画像を見ての通りですが、現行バージョン(画像・左)はテクスチャ
の透過処理に対応していないため、うまく処理されず、意図しない
悲惨な描画になってしまいます。
今回の改良(右)によって、より本家・XOPSの動作に近い自然な
描画がされるようになりました。

画像でお借りしたマップは、照明の下が明るくなっているのを透過
処理を行ったテクスチャ(PNG形式)で再現しているのですが、
今回の改良で綺麗に表示されるようになりました。
ってか、現行バージョンの表示が酷過ぎますね。よくこんな仕様で
どっからも苦情がこなかったな~ とか思ってしまいます。


なんか久しぶりにブログに画像を貼った気がするのですが、どうも
2ヶ月ほど前に、開発ネタで動作速度の比較グラフを貼っていました。
やっぱり画像貼ると華やかで良いですね。今後はもっと色々な画像を
貼っていこうかなぁ。
category : ソフト・ツール開発 comment [0]
「XopsAddonCreator」の開発 -28
「OpenXOPS」のプロジェクトについて、既に始めているわけではなく
依然として正式に始めるかどうか、迷っている段階です。
事前検討の一環で、「SourceForge.JP」を触ってみました。
自分が不慣れなだけに、ローカルな作業部屋を立ち上げるのが非常に
大変で2時間くらい掛かってしまいましたが、無事(別件の)ソース
コードの公開を試すことができました。
まだ不慣れで細かいことが良く分かっていません。こんな力量・理解
では使えないので、しっかり訓練を積んでおきます。


XopsAddonCreatorは、ぼちぼち弄っています。

ここ数日で作った大きな部分は、ファイル関連付けの自動設定機能です。
オプション設定画面から、ブロックデータ(.bd1)とポイントデータ
(.pd1)の関連付け設定をワンクリックで行える機能を開発しました。
表向きにはオプション設定の項目にありますが、実際はソフトウェア側
を設定しているのではなく、PC・OS側の設定を書き換えています。
個人的な好き嫌いを言うと、レジストリ操作をするソフトウェアは作り
たくなかったのですが、関連付けを自動で行う機能は一定の需要がある
ことが分かったので、仕方なく実装しました。
なんか、これもこれで思った以上に面倒で、時間食ってしまいました。
機能自体は完成したので、次期バージョンに載せるつもりです。

次期バージョン(Ver:1.1?)の公開ですが、近いうちにやりたいと
思っています。
約束はできませんが、遅くとも6月中には公開したいですね。何も不具合
が出ずに順調に行けば、6月上旬に公開できるかもしれません。
繰り返しますが、約束はできません。過度な期待はしないでください。
category : ソフト・ツール開発 comment [0]
「XopsAddonCreator」の開発 -27
色々なものに対して決断の時が迫っているのですが、平常心を保つためにも
コツコツとプログラムを書いています。

ここ最近は「OpenXOPS」のプロジェクトについて、細部の検討を重ねたり、
関係する方々に連絡を取ることを試みたりしていました。
4年前の偽XOPS(fxops)のノウハウを元にすれば、技術的には決して不可能
ではありません。現時点で最も問題(検討事項)になっているのは、『プロ
ジェクトとして新規に立ち上げ、そんなものを開発して需要があるのか』と
いう点です。現状のXOPSの過疎化状態から、開発する価値を見出すのは困難
であることは事実です。


XopsAddonCreatorの開発は、細部の改善を中心に行っています。

 ・・・が、一点ほど信じられない不具合が見つかりました。
エクスポート機能で、Xファイル形式(.x)への出力が行えない不具合を抱え
ているようです。ファイルメニューからエクスポートを選択しても、ソフト
ウェアが全く反応しません。
一般公開する前のバージョンでは、正しく動いていました。公開するver:1.0
になる直前、一部作り直した際に不具合が生まれたのだと思います。
十分に動作チェックをしたつもりだったので信じがたいのですが、それしか考
えられません。
時期バージョンから修正し、エクスポート機能も使用できるようになります。
なお、現バージョンでXファイル形式(.x)へのエクスポートをする手段はあ
りません。使って頂いている方々、本当に申し訳ない。

マニアックな開発ネタですが、XopsAddonCreatorをVC++で開発していると
、同ソフトウェアでファイルの参照・保存ダイアログでOSごとフリーズする
ことがあり、非常に困っています。
色々原因を探していると、以下の条件が重なると6分の1くらい確率で発生する
ことが分かりました。
 ・VC++上からdebugモードで実行する。
 ・GetOpenFileName() または GetSaveFileName() を呼び出す。
 ・ウイルスバスターが起動している。
この条件がすべて揃うと、6分の1くらいの確率で発生します。手元の他のPC
でも同じ不具合が発生するので、メインPCだけの問題ではなさそうです。
もしかすると「OS:Windows7」というのも関係あるかも。
この条件だけ見る限り、世の中で相当の人が同じ問題で悩んでいそうですが、
ネットで探してみても、なぜか殆ど事例が出てきません。
ようやく見つけたのがこれ ・ Twitter - yshhrknmr Win7 & VC++ で ...
誰か詳しい人教えてください!
category : ソフト・ツール開発 comment [0]
[11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21]

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

TOP