ふにゃさんを.NETに移植するプロジェクト
- 古くなったコードを書き直して、移植しやすくする
- 特定のSDKに依存した処理を切り離し、ルールを明確にする
- 流用可能な部分を後継プロジェクトに引き継ぐ
複数段階に分けて開発を行う。
主要なロジックをC#で書き直すことを目的とする。
- Coreプロジェクトにf3*.*の内容を移植し、ビルドを通すことをゴールとする
- ビルドさえ通れば、動作がおかしくても第一段階では気にしない
- 画面も出さないしテストコードも組まないのでそもそも検証できない
- .NET Standardライブラリとして実装する
- f3で始まらないファイルは原則として移植の対象外とする
- f3*.*から参照されている部分は、インターフェースのみを残し、中身は実装しない
- 例外的に、f3*.*の動作に深く関わるものについては、移植する
- Scene関連は移植の対象外とする
- 名称等は極力維持する
- 作業途中で名称を変更すると、名称での元コードとのつながりが分からなくなるため
- 処理方法自体を変更する必要がある部分は適切な名称を新たに付ける
- 無名の列挙型は、接頭辞の部分を列挙型の名前にする
- 列挙型の値の名前は維持する(例:NDT_HORIZONTAL→NDT.NDT_HORIZONTAL)
- イテレータを用いた全数処理は、foreachに置き換える
- イテレータを返すメソッドは集合そのものを返すように変更する
- デストラクタで処理を行っているものについては、IDisposableを実装する
- deleteしている処理は、Dispose呼び出しとnull設定に置き換える
自動テストにより、旧プログラムと相違ないことを確認する。
- 旧プログラムで生成したリプレイデータを再生し、同じ結果になることをゴールとする
- .NET Core + NUnitで自動テストを実装する
- カバレッジもできれば取りたい
- ツールは要検討(OpenCoverが現在有力候補)
- CIツールとの連携を行う
- この段階でなるべく適切な名称や実装に移行する
実際に触って動作を確認できるようにすることを目的とする。
- 人間の操作で任意のマップを最初から最後までプレイ可能にすることをゴールとする
- 最後までプレイとは、クリアするか死ぬこととする
- この段階でゲームとして完成させることは目的としない
- 第二段階とある程度並行してもよい
ゲームとして成立させることを目的とする。
- フレームワークの選定から始めよう