忍者ブログ
カレンダー
03 2024/04 05
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
[PR]
×

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

category :
PR
「XopsAddonCreator」の開発 -38
8月ですね。

XopsAddonCreatorを触りましたが、次の難題にぶつかっています。
ブロックデータとポイントデータ、両者をいかに効率よく処理するか です。


OpenXOPS(ゲーム)は、データを読みっぱなしで良いソリューションです。
あくまで両データはファイルから読み込んでいるだけで、読み込み後はゲーム
側で都合の良い独自のデータ構造で処理すれば問題ありません。
ところが、XopsAddonCreatorはエディタです。データを読みっぱなしで終わる
ことは殆どなく、データ自体を編集し 場合によっては元に戻す(Undo)機能
を提供する必要があるほか、ファイルとして書き戻す機能も必要になります。
この『読み込み⇒変更履歴管理しつつ編集⇒書き出し』という一連の処理が
エディタの肝であり、OpenXOPS以上に内部のデータ構造が重要になります。

モデリングソフトのようなひとつの形式(性質)のみに特化していれば まだマシ
なのですが、厄介なことにXopsAddonCreatorはブロックデータとポイントデータ
という、性質が全く異なるデータを2つ同時に扱う必要があります。
※ブロックデータはモデリングデータに近く、ポイントデータはスクリプトデータ
 に近い。
ようは、『読み込み⇒変更履歴管理しつつ編集⇒書き出し』という処理パイプ
ラインが、同一ソフト内で二重に存在するわけです。

何も考えずに作れば、単純に同じ実装を2個開発して載せれば良いですし、
既に現行XopsAddonCreatorは、2重に実装されていると言っても過言でない
設計ですが、
単純に工数2倍で無駄な開発作業を生むうえ、バグを生みやすく、なんせ柔軟な
設計変更・改版もできません。
あくまで実装としては1つにして、両フォーマットに対応した柔軟な設計を取り
入れるのが理想であり最適解となります。

ですが、現状良い実装案が思いつきません。
C++のコンテナクラスを上手く使えないかと思っており、スタックやキューを
使えないかと企んでいますが、微妙に実装が合わず困っています。


6月の記事では、次期XopsAddonCreator開発における難所の一つに
「不具合のない安定したデータ編集機能の実現」
を挙げていましたが、本件前述の処理・実装がポイントになりそうです。
もう少し良い設計・実装を考えてみます。
category : ソフト・ツール開発 comment [0]
COMMENTS
【本文以外は任意項目です】
SUBJECT(タイトル)
NAME(お名前)
MAIL(メールアドレス)
HOME(サイトURL)
COMMENT(本文)
PASS(削除パスワード)
Secret?(管理者へのみ表示)

※スパム防止のため「Hello!」「website」「ブランド」「みかんの戦闘ブログ」
「http」などの一部キーワードを禁止しています。ご了承ください。

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

TOP