またまた久しぶりの投稿となってしまいました?
この調子だと年一回の更新になるのは時間の問題だなぁ?
↑これは到底許されるべき発言ではない。だからブログを何度も潰すハメになるのだ。愚か者ですはい(※注:独り言です
そんな事を言いつつ、進捗報告。。。
Windowsアプリケーションです。Visual C++とDXライブラリ(DirectX 9.0c)を使用して開発。
実は、以前に作成したプロトタイプ版が存在しているんですが、そのソースコードがあまりにもひどいなんてもんじゃないんです。
関数から命名規則から…もはやとりあえず動けばそれでいいといったいい加減な無用の長物と言ってもいい代物でした。。。
ハッキリ言って私が作ったものとは思えない出来。何が問題かってジャンプ命令を多用してて、どこにコードが繋がってるのかさっぱり分からないから困ったものです(笑)
一部品に目を凝らしすぎて、全体構造がめちゃめちゃというのは、なんか流石に笑ってしまいました。
成績が悪い子どもが怠慢で勉強をしないのではなく、勉強のやり方が分かってない感じ?
物事の捉え方が自分勝手でプログラミング手法が暴走してるイメージ??
そんなこんなで作り直して、上記の状況。
まずログファイルの出力を専用の外部ファイルから取り込むように変更。
エラーコードなるものをプライマリー値としてコードの中に書き、エラー内容を外部ファイルで管理しようという事を考えました。
例えば上記のような場合。
赤下線の部分「return 0x0003」がエラーコードなのですが、
エラーの内容をCSV形式で保存してます。
エラーが発生したら、その番号の内容をCSVから取得してログファイルへ書き込み。
このファイルをリスト管理する事で、発生したバグなどがすぐにトレースできるようにしたものです。
これで新たに発生したエラーがどこで発生したか、どんなタイミングで発生したかを簡単に識別できますし、それによって発生したバグ修正のタイムコストを激減できます。
また上記のエラー一覧表はCSVと言いましたが、Excelで表示しています。
これも表計算ソフトで簡易編集できるような独自マクロコードを形成する事により、簡単にエラー管理を追加でき、またエラーコードを既存のコードとすり替える事も容易になりますね。
あとは、ステージマップデータをバイナリデータ(binファイル)で構成する事で、アプリケーションのサイズ削減を目指しています。
今現在はバイナリファイルを外部ファイル扱いにしてますが、いずれリソース化していいでしょう?
実はこのバイナリファイルを形成するためのステージマップエディタもVB.NETで自作してたりするんですが、それはまた後日に。。。
(というか、それをC#.NETで作り直したいというのが本音です( ̄▽ ̄;)?)
何を中心にシステム(今回の場合はゲーム)を開発するか、という概念を大切にしながら丁寧に制作しているつもりなのですが、それが足を引っ張って進捗が悪いんだと思います?
とにかく今は、基盤部分の制作段階なので、元ネタのNESファイルの逆アセンブルとか、メモリ解析、リファクタリング、設計書の作成、インフラの整備などを重点的にしていきたいです。
P.S. DXライブラリウインドウにメニューバー項目って追加できるんだろうか…
全ソースコード(Visual Studio C++で開発しています)はブログ上部のGitHubリンクから
随時更新中なので気になる方いればご自由にお持ちください?
リポジトリ名:move-experienced
コメント