« 吉里吉里2 VC対応(吉里吉里Z) に出資する場合の疑問点 | メイン | Window 抽象化機構 »

2014年01月20日

吉里吉里Z 開発:: いろいろと見積もってみる

    

64bit化 - 工数を見積もるのに 1、2人日かかりそう。
ほとんどはアセンブリからイントリンシックを使ってCに書き換える作業になるので、いくつかやってみて、分量から工数を割り出す必要がある。
実作業はまずはブランチ or フォーク。
マージ時は手動マージが必要と考えられるので、完全に分岐して、最後にメインに手動で統合する方が楽そう。
統合時は64bitの方をメインとした方が楽かもしれない。

1. nasmソースは除いて、C言語版のみ使用しビルドが通るようにする。
2. SIMD 版スタブを作り、中身はC言語版を呼び出すようにする。
この2つの作業のみであれば、順調に行った場合 2日程度で行けるのではないかと思われる(吉里吉里Z実装時、ある程度64bit化を見越した対応を行っているが、ビルドや動作確認は行っていないため不具合に出くわす可能性がある)。
あとは、ひたすらアセンブリからC言語へ書き換えていく作業になる。
この書き換え作業は、人海戦術や少しずつの時間の積み重ねで行いやすいので、このような方法でやっていけば実現しやすい。
64bit 版になるとメモリ使用可能量は増加するものの、高速化についてはケースバイケース。
遅くなることもある。
やるのなら SSE2 のサポートも行うことになるだろうから、SSE2 が速い CPU であれば、その部分で高速化出来る可能性がある。


新KAG開発 2人月~
どの程度の機能を入れるかによって増減する。
他の機能との兼ね合いもある。


Visual Studio での TJS2 スクリプトとデバッグのサポート 1人月~
TJS2 の構文解析など必要となるので、TJS2 言語拡張等と共通する作業がある。


アニメーションツール開発と再生のサポート 1人月~
最低限の機能であれば1人月程度で実装可能だが、様々な機能が欲しくなるだろうから、実際はここからさらにかかることになると思う。


新KAGでの開発支援環境の開発 1人月~
支援環境を実現しやすいように新KAGがデザインされていた場合、1人月程度で出来ると考えられるが、何も考えられていない場合は工数は伸びる。
また追加する機能によっても工数は増加する。


マルチプラットフォーム化
必要な作業は以下。
1.Window等の環境・GUI依存部分(イベント、スレッドなど含む)。- 環境ごとに必要、1、2人月
2.サウンド OpenAL である程度共通化できる。Android であれば OpenSL 。- それぞれ 10人日程度。
3.動画 モバイル端末であれば組み込み機能、その他であれば独自の再生エンジンで共通化できる。 - 3人月程度
4.プラグイン DLL/Shared Library を環境に合わせて実装する必要がある。 - 1人月
5.DrawDevice部分 OpenGL化 Windows以外では、最終段階は OpenGLで描画で共通化できる。 - 10人日程度
以下の4つプラットフォームに対応するとするのなら上記合計すると13.5人月程度。
・MAC OSX
・Linux
・iPhone
・Android
羽々斬や吉里吉里Zを実装した経験から言うのなら、PC系OS以外へは別のアプローチをとるべき。
新KAGを実現できるように実装した方が良い。
また、新KAGのデザインもそれを考慮されたものになっている方が良い。


TJS2言語拡張 3人月~
・コンパイル部分の整理
・foreach 組み込み
・型指定
・型推論
・コルーチン
・Rubyのブロックの様な機能・構文
・メンバ存在チェック機構
・JIT(LLVM)対応
・(パッケージ機構)
・(シリアライズ機能)


Layer.operateAffine で引数 mode 指定時の未実装機能
補間方法ではなく演算方法のサポートとして 10人日程度か。実際には単純作業なので、いくつかやってみてから見積もらないと正確には出しづらい。


画面回転ロック
現状実現方法がわからないので何とも言えない。わかりさえすれば1人日。


ペン入力対応 - 10人日


フリック等ジェスチャー系の入力補助 - 何をサポートするかによる。調整期間を考えなければ5人日程度か。


Ogg Vorbis を高速化プロジェクトのものへ置き換え - Opus があるので対応自体必要か微妙。


バイナリファイル読込み機能(binaryStreamプラグインのような機能内包) - 2人日


ゲーム用UIシステム 1人月~
GUIデザインツールなど考えるともう少し増加する可能性も。


GPU 処理対応 2人月~
CPU処理が吉里吉里の利点でもあるが、高解像度化によってCPU処理では厳しい場面も出てきていることを考えると将来的には必要になる。
また、モバイルプラットフォーム等を考えるのであれば、GPU で可能(効率的)な処理とすることは意味がある。


見積もりに時間がかかる64bit化を除いて、もし上記全てやるとしたら26人月程度。
1人月50万円なら1300万円必要。
上記は概算なので、実際にはより精度を上げて見積もるだろうし、安全率をかけるだろうから、倍額程度か。

1,2人日程度の作業であれば、合間に作業することで実現可能であるが、5人日を超える様なものについては、実際に仕事として発生しないと実現の可能性は低くなる。
どうしても欲しくて、モチベーションを高く保てるものであれば出来なくはないが……
これらはあくまで自分がやるとしたら~と言う話。



投稿者 Takenori : 2014年01月20日 03:05




comments powered by Disqus
Total : Today : Yesterday : なかのひと