[PR] | 2025.04.18 20:51 |
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
category : |
カレンダー
プロフィール
最新記事
(10/15)
(06/17)
(01/09)
(12/14)
(06/20) カテゴリー
|
XOPS関連サイト「みかん箱」の運営や、OpenXOPSの開発などを行う[-_-;](みかん)のブログ。近状報告や独り言などを書きます。
| |||||||||||||||||||
PR
もう6月も終わりそうなんですね。夏が目の前に迫っているようで。 OpenXOPSのプロトタイピングを続けており、とりあえず画面遷移 (オープニング、メニュー画面、ブリーフィング画面、ゲームプレイ 画面、結果表示画面 への切り替え)や、一部を除く描画周り、入力 周りの処理、サウンド再生 を作っていました。 Doxygen(ドキシジェン)へのドキュメント出力もやっています。 この辺は、なんだかとっても良い感じです。 同時進行で、あの手この手で本家XOPSの分析作業も進めています。 平面移動速度、落下速度、落下やグレネードによるダメージ計算、 武器の発砲音の再生音量などを調査しました。 落下速度以外は、納得できるかなりの精度で調査できています。 (銃声の再生音量・クリックで拡大) 再生音量は、距離に応じて線形に反比例していきます。 武器により銃声の再生音量は異なりますが、実は300ほど離れた時点 で殆ど差がなくなることが分かりました。『武器設定で再生音を大 きくすると、遠くまで聞こえる!』っというのは、事実でないことを 確認できました。 (注:ezds.dllに与えられる値。実際にスピーカーから流れている音量 ではない。) いつの時代も、当たり判定は厄介ですね。ちょっと試してみましたが、 全然うまくいきません。 AIには全く手を付けられていません。 後、ここにきて新たに直面しているのは、クラス設計の難しさです。 正直言ってデザインパターンを全く理解しておらず、完全にオレオレ 構造なクラス設計になりました。こんなコードを、オープンソースで ばらまいて恥ずかしくならないか、不安になっています。とは言いつつ も、今からデザインパターンを勉強するのは、手間だし面倒だし・・・。 別件で、人から頼まれている関係で、Raspberry Piを始めようかと 思い準備しています。 32ビットの700MHz CPUに、512MBのメモリー という十分な性能 で、OpenGLが動くようです。 これは、「おぉ?」って感じです。元は関係ない別件で触るつもり だったのですが、これにOpenXOPSを移植したら面白そうですね。
本当に長くブログを放置してしまって、すいません。 前々から話している「OpenXOPS」のプロジェクトについて、検討の最終段階として 実際に模擬的な開発をやっています。 (クリックで拡大) 4年前の「偽XOPS」の記憶を取り戻したり、ある程度信用できる開発工数・時間を見積 もるためにやっていましたが、気が付くと本番に流用できるレベルのものになっていし まいました。 合計作業時間は40時間ほどです。 外見だけだとまだまだですが、内部では描画周りを中心に、ごく一部を除き一通り実装 してしまいました。本家XOPS作者のお二人には失礼で申し訳ないですが、現行XOPSの 描画周りは特別難しい技術は使われておらず、ごく一部分を除き概ね簡単です。 さらに言えば、この程度の描画処理を行えない(書けない)レベルだと、ゲームとして XOPSを作るのは不可能です。 OpenXOPSで最も難しいと推測されるのはAI周りで、次は当たり判定全般です。 この2点は、現状XOPS界で解析作業が殆ど行われてないにも関わらず、ゲームバランス を決める極めて重要な部分です。本家XOPSを再現する上で、決して手を抜くことができ ず、気を緩めることが出来ない部分になります。おそらく、このAIと当たり判定は最後 まで苦線を強いられ、地道な改良作業が続くでしょう。 なお、現状はAI周りや当たり判定の具体的な処理まで、やっていません。 あと、もう一つ。外せない重要な要素があります。 Doxygen(ドキシジェン)を活用した、ドキュメント作成です。 (クリックで拡大) ソースコードをオープンソースで公開し、加えて他の方々に利用してもらうことを考える と、見やすいソースコードを書くことはもちろんのこと、ドキュメントの整備も必須です。 ソースコードを書き換えるたびに別途ドキュメントを書き直すのは、手間で苦痛以外何物 でもありません。 Doxygenを利用すれば、ソースコード内に書かれた特定の書式に合わせたコメントを自動 認識して、ドキュメントを自動生成してくれます。VC++のビルド設定に自動的に実行す るように仕込んでおけば、もう完璧です。 Doxygen自体は殆ど触ったことなく、今回ぶっつけ本番で実戦投入しました。独特(?) のコメント記述スタイルに慣れるのが大変でしたが、一度慣れればとても便利です。 OpenXOPSに限らず、今後ある程度規模の大きいソフトウェアを組む時は、率先して使う べきかと迷うレベルです。 あー、完全にやり過ぎましたね。。 あとは、AIと当たり判定周りを試してみて、ある程度見積もりが取れ次第 一度作業を 中断し、再検討する作業に入ります。 ※決して、正式にOpenXOPSの開発が始まったわけではありません。
自分で決めた人生の選択について、果たして正しい判断だったのか 考え込んでしまうのですが、某氏とメールで話している時に、 『未来の事は分かりませんし、どの選択がより良かったのかは 未来になっても分からない事だと思います』 と言われ、なんか納得してしまいました。 さてさて、XopsAddonCreatorの開発ですが、コツコツとバグ潰し をしつつ、改良を重ねています。 ここ数日で行った大きな改良は、ブロックテクスチャの透過処理に 対応させたことです。 (クリックで拡大) ※ マップは「Korean Zombie Mode 1.84 (Multiplayer)」に収録 されているものをお借りしています。 画像を見ての通りですが、現行バージョン(画像・左)はテクスチャ の透過処理に対応していないため、うまく処理されず、意図しない 悲惨な描画になってしまいます。 今回の改良(右)によって、より本家・XOPSの動作に近い自然な 描画がされるようになりました。 画像でお借りしたマップは、照明の下が明るくなっているのを透過 処理を行ったテクスチャ(PNG形式)で再現しているのですが、 今回の改良で綺麗に表示されるようになりました。 ってか、現行バージョンの表示が酷過ぎますね。よくこんな仕様で どっからも苦情がこなかったな~ とか思ってしまいます。 なんか久しぶりにブログに画像を貼った気がするのですが、どうも 2ヶ月ほど前に、開発ネタで動作速度の比較グラフを貼っていました。 やっぱり画像貼ると華やかで良いですね。今後はもっと色々な画像を 貼っていこうかなぁ。
「OpenXOPS」のプロジェクトについて、既に始めているわけではなく 依然として正式に始めるかどうか、迷っている段階です。 事前検討の一環で、「SourceForge.JP」を触ってみました。 自分が不慣れなだけに、ローカルな作業部屋を立ち上げるのが非常に 大変で2時間くらい掛かってしまいましたが、無事(別件の)ソース コードの公開を試すことができました。 まだ不慣れで細かいことが良く分かっていません。こんな力量・理解 では使えないので、しっかり訓練を積んでおきます。 XopsAddonCreatorは、ぼちぼち弄っています。 ここ数日で作った大きな部分は、ファイル関連付けの自動設定機能です。 オプション設定画面から、ブロックデータ(.bd1)とポイントデータ (.pd1)の関連付け設定をワンクリックで行える機能を開発しました。 表向きにはオプション設定の項目にありますが、実際はソフトウェア側 を設定しているのではなく、PC・OS側の設定を書き換えています。 個人的な好き嫌いを言うと、レジストリ操作をするソフトウェアは作り たくなかったのですが、関連付けを自動で行う機能は一定の需要がある ことが分かったので、仕方なく実装しました。 なんか、これもこれで思った以上に面倒で、時間食ってしまいました。 機能自体は完成したので、次期バージョンに載せるつもりです。 次期バージョン(Ver:1.1?)の公開ですが、近いうちにやりたいと 思っています。 約束はできませんが、遅くとも6月中には公開したいですね。何も不具合 が出ずに順調に行けば、6月上旬に公開できるかもしれません。 繰り返しますが、約束はできません。過度な期待はしないでください。
色々なものに対して決断の時が迫っているのですが、平常心を保つためにも コツコツとプログラムを書いています。 ここ最近は「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++ で ... 誰か詳しい人教えてください!
※過去のブログ記事は 原則として編集・修正していません。 | ||||||||||||||||||||
△ TOP |