忍者ブログ
カレンダー
02 2024/03 04
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
「XopsAddonCreator」の開発 -37
前回言ったXopsAddonCreatorの作り直し計画の件、適当に勢いに任せて
突き進んでいます。

とりあえずウインドウ周りの処理を作り込んでいました。
色がメチャクチャですが。

(クリックで拡大)


以下、中身の技術ネタです。

Windowsアプリケーションなので、ウィンドウプロシージャの処理が味噌
となります。
ウィンドウプロシージャ自体は難しくはないのですが、無計画に組み立てて
行くと、あっという間にスパゲッティソースになるので要注意です。

ウィンドウプロシージャの処理については、まだ設計・実装がFIXしているわけ
ではなく、全体をイベント駆動型にするか、指定関数を直接実行する構造に
するか、迷っています。

最初に思いついたのはイベント駆動を用いた設計でしたが、
ウインドウサイズを変更する際にウィンドウプロシージャが連続で実行される
ため、外でイベントがキャッチできず、ウインドウサイズ変更に期待通り対応
できませんでした。
どうしたものかと困りましたが、サイズ変更時にWM_SIZEをキャッチして、
関数ポインタを用いて指定関数を直接実行する構造にすれば、期待通り動作する
ことが分かりました。

現状は、イベント駆動と関数実行機能が両方載っていますが、将来的には関数
実行機能だけで良いかとは思い始めています。
せっかく作ったイベント駆動を消すのは勿体ない気持ちもありますが、まぁ
要らないものは要らないですからね。他で使えれば良いのですが。
あと、今回初めて自発的に関数ポインターを設計に組み込んで活用しましたが、
自信の中で実績がなく、デメリットや注意点が完全に把握できてないです。。
とりあえずNULL判定だけすればよい??(^^;
実績が皆無な技術を過信したまま、設計の中心に入れて良いものなのか全く
分かりません。

なお、今回色々調べた中で「メッセージクラッカー」というMicrosoft公式の
ラッパー・マクロもあることを知りましたが、結局のところはSwitch文が多少
綺麗になる程度で、目当ての使い方はできないようなので辞めました。

いやー、これはこれでOpenXOPSとは違う難しさがありますなー。


それにしても、現行XopsAddonCreatorは2012~2013年頃に作り始めており、
(現行品の系統は)もう10年前に開発したことになります。
他所でも呟きましたが、このレベルのエディタを1年程度で作り上げるって、
今思えば信じられない話です。
まだXOPS界隈に人が居る時代で周囲からの期待もありモチベーションも
高かったり、今と比べて平日も時間があったり、当時は ただただ無計画に
勢いで進めていた節もありますが、
一番大きいのは今よりも10歳若いという事実だろうなぁ。。 若いは強い。
category : ソフト・ツール開発 comment [0]
PR
「XopsAddonCreator」の開発 -36
XopsAddonCreator(※作り直し計画の方)を弄っていましたが、中途半端な
改善ではなく根本的に作り直した方が早い気がしてきました。


2012年より作っていた現行verは全体的に設計が難解で、容易く手を入れられる
ソースコードではありません。
数日前まで、可能な範囲かつ着手しやすい所から順次見直して書き換えていま
したが、
各部分の依存関係がグチャグチャで、各所が複雑に絡み合っているため、全体
の設計を見直すまでは至っていませんでした。
全体を見直すべく、依存関係を整理しようとした矢先、コンパイルエラーが大量
に発生し、(作り直しverの方は)コンパイル自体が通らなくなってしまいました。
そりゃ、単純に変更を元に戻すか 一個ずつエラーを解消していけば、ソースの
コンパイル自体は通るようになりますが、今のコードには もう手は入れたくない
というのが正直なところです。

作り直すにあたって、必要になる要素を箇条書きで並べてみたのですが、
おそらく避けられない難所になるのは、
 ・完成度の高いイベント駆動プログラミング
 ・不具合のない安定したデータ編集機能の実現
 ・効率的なマルチスレッドプログラミング
だと思われます。
これ、改めて見ると全て現OpenXOPSには存在しない概念です。
3D・2D描画とか、基本的なファイルの読み書きとか、ウィジット・コントロール
とか、多数の付属ツール・機能の開発は、手間ではありますが言うほど難所では
ないと思っています。
上記3点を、いかに超えていくかが焦点になりそうです。
・・・いや、これが分かっただけでも大収穫だわ。
category : ソフト・ツール開発 comment [0]
「XopsAddonCreator」の開発 -35
6月に入ったばっかりだと思っていましたが、もう月の真ん中に到達して
しまいました。
もう2週間程度で2022年の半分に達するのかと思うと、信じられません。


ここ直近はXopsAddonCreatorを触っていました。

2019年9月に、現行バージョン"1.2a"を公開しましたが、もう2年近く経つ
こともあり、そろそろ次期バージョンを出しても良いと思っています。
公開時期は未定です。
(前にも言ったっけか??)

毎回マニュアルの準備は後回しになりがちで、最後にバタバタ仕上げている
気がしますが、今回は珍しくマニュアルの準備は順調です。
マニュアルも何も、決して完全新規なソフトウェアではなく、公開中の現行
バージョンのマニュアルをベースに書き換えていくだけなので、そんなに
大変ではないのですけど。

アップデート内容については、今までブログで触れていたり・触れていな
かったりで、自分自身どこまでブログで紹介したか記憶が曖昧ですが、
次期バージョン公開時にまとめて紹介したいと思います。
・・・この流れ、なんかデジャブだなぁ。。


それと同時進行で、従来のXopsAddonCreatorを一部プログラムを作り直す
(見直す)プロジェクトも進んでおり、そっちもボチボチ進めています。
「進めています」というほど、進みは良くないのですが。

2021年12月の記事に書いた通り、UIオブジェクト(ウィジェット)の再設計
に取り組んでいます。
ボタンやチェックボックスのような動作が単純なオブジェクトは概ね良い
感じで開発できていますが、タブコントロールやリストビューのような
ちょっとクセのあるオブジェクトの設計をどうしたものか悩んでおり、自身
で期待したいほどは進んでいません。
この辺の話は、OpenXOPSには存在しない概念なので、同じ考えが通用できず
難しいです。

XopsAddonCreatorの開発を始めたのは2012年9月だったので、ほぼ10年前
のソフトウェアのソースコードに立ち向かっていることになります。
 「あのソフトの次世代機つくろうとしてた」(2012.09.01)
もうマジで辛いので勘弁してほしいです(^^;
全部投げ捨ててゼロから作ることも考えましたが、
この規模の物をゼロから作るとなると、OpenXOPSオンライン化の話並に
巨大なプロジェクトになるのは避けられず、(あらゆる意味で)今の状況
からして そこまで開発リソースは掛けられないので、
とりあえずは今のままチマチマと開発を進めることにします。
category : ソフト・ツール開発 comment [0]
OpenXOPS 1.070公開
やや唐突ですが、昨日・5月29日にOpenXOPS ver:1.070を公開しました。
OSDN上でソースコードのタグを作成し、公式バイナリも公開しました。
 OpenXOPS公式サイト
 http://openxops.net/

1.055から1.070へのアップデートは、ソースコードのコミットで言うところの
R249⇒R316が該当します。
 https://ja.osdn.net/users/xops-mikan/pf/OpenXOPS/scm/commits

詳細なアップデート内容は、上記のコミット履歴を見てばソースコードレベル
で追えるのですが、簡単に概要だけ箇条書きにしておきます。
 ・DirectX9.0 シェーダー追加
 ・RawInput追加
 ・DirectSoundにて、ezds相当のモノラル再生に対応。
 ・人とマップの当たり判定を一新
 ・コンソールのコマンドを1個追加(model、skip)
 ・フリーカメラ(viewコマンド)使用時の仕様変更
 ・exeのコマンド引数で直接.mifを指定して起動できるように
 ・起動時に.iniファイルを自動生成する機能追加。
 ・.iniにて解像度、ゲーム音量、腕表示有無を設定できるように。
 ・その他、多数のバグ修正や仕様改善。

※あと、前々から言っている通り、開発環境をVisual Studio 2019へ
 変更しています。

どこまでブログで触れた内容で、どれが初公開の情報か記憶になく、
調べて思い出すのも面倒くさいので、今日ある項目・内容がある人は、
自分で調べてください(手抜き丸投げ

前バージョンのver:1.055の公開が2020年6月13日だったので、約2年の年月
が経ったことになります。
本当は1年ごとに出したかったのですが、2021年5~6月時点では まともな
アップデートが無かったので2021年公開は見送りました。
(XOPSとは全く関係ない別件に取り組んでいる時期でした。)
逆に、その後OpenXOPSの開発が進み、2022年5月は盛り沢山なてんこ盛り
アップデートになりました。
ver:1.055の次がver:1.065ではなくver:1.070なのは、アップデート内容が
多いからです。
それにしても、ペース配分悪すぎる(^^;

直近、OpenXOPSの死体の処理を作り直すなど、ちょっとした改修工事を
やっていましたが、今回のリリースでは投入を見送りました。
今回のリリースは、いわば「安定版」の位置付けで展開している一方で、
死体処理の件は まだ不安定でコミットできる内容でもなかったので、
(死体処理の修正は)入れませんでした。
ver:1.070の公開自体を遅らせても良かったのですが、死体処理の件が
いつ決着が付くか分からなかったので、今回は未反映で公開しています。


2014年7月に、世の中に始めてOpenXOPSのデモサンプル(demoA)を
公開してから、今回のver:1.070で15個目のバイナリバージョンと
なりました。
今までのご支援・ご協力、本当にありがとうございます。

次のアップデートが、いつに・どうなるか全く分かりませんが、今後とも
OpenXOPSプロジェクトをよろしくお願いします。
category : ソフト・ツール開発 comment [0]
OpenXOPSでプログラミング初心者を対象にするか
某所にて、
「OpenXOPSの開発・コンパイル環境の構築方法を紹介した動画がほしい」
との旨の発言(要望?)があったことについて、いろいろと考えたことがある
ので、本ブログに書いておきます。

今回は、単純に動画を作るか否かだけではなく、もっと広い視点で
「どこまでプログラミング初心者を考慮して紹介・支援するか」
という点で考えます。
category : ソフト・ツール開発 comment [0]
[1] [2] [3] [4] [5] [6] [7]

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

TOP