このサイトは簡単にアプリを作成するためのものである。現在Unity,unreal engine、Cocos2dx、Dxlib等ゲーム用のフレームワークがありそれぞれの長所短所等もあるがせっかくなので0からアプリ用のエンジンを作成及び、更新を行う。
- 各フレームワークやゲームエンジンの不満
まず、上記において各エンジンを使ったアプリを開発するにあたり、それぞれのアーキテクチャ、思想、開発ルールがあまりにも複雑かつ、準備から実行できるまでの敷居が高いためもっと簡便なものですぐに確認、実装ができるものがあると良いと思ったため作成することにした
- 簡易に特化する
そもそもなにかを作る際準備や用意、また、それぞれの学習コストを考えるとあまりにも現在の開発工数がかかりすぎ、少々ためしたいものでもそれなりのじかんがかかる部分を短縮し、すぐに実行、確認を行えることを目的とする。
- 拡張性
簡易に特化したとしても拡張性や信頼性に関しては保持する。簡易に特化したとしても複雑なことができなけれならない。また同様に拡張性に関してもまた考慮しなければ使えなくなってしまう。ただ、2律背反的な問題もあるため各所にてベターなものを取り入れる。
- プラットフォーム
基本的にマルチプラットフォームを目指すことで一つのソースで複数の対応が可能とし各プラットフォーム独自のものは各プラットフォームにて行う。フレームワークでは特有のものは組み込まずそれぞれで取り入れる。
- 開発のしやすさ
開発のしやすさとして設計、実装、テストなどのしやすさ、また、いわゆるスクラッチビルド的なことで実際の実装までの時間を可能な限り短くする。
・車輪の再開発
一般的に車輪の再開発は悪とされているがこれは内部学習コストにおいて推奨する。そもそも現在の開発はブラックボックスの良さもあるが中身を知らずにつかっているのは爆弾を抱えているようなものであり、知らず知らずのうちに導火線が短くなっていることを理解するためである。
- コピペ・ファットプログラム・スパゲッティ・ハードコード・スターティック
チーム開発において行っては行けないそれぞれのパターンがあり各アンチパターンがある。ただしあくまでこのサイトの目的は完成させることである。そのため上記のようなものだとしても全く問題はない。動けばよいのである。
- バグ
バグを出さない。バグが少ない、バグが起きないようにする。これらはチーム開発または職業技術者として大事だ。だが、このサイトの目的はそこではない。バグ肌しても良い。直せばよい。バグを治すコストと、出さなくする用にするコストなどを考えてしまうが、そんなものはやっていればどのうちバグが出ないような保守性の高いコードがそのうち書けるようになる。気にする前に完成することを考える。
- 各プラットフォームの設計の悪さ
そもそもの問題の諸悪の根源である。Windowsの設計の悪さ。Androidの醜さ、iOSの独自ガラパゴス開発。DirectXのCOMをベースにしてしまったがための扱いにくさ、Microsoft憎しのアップルがMetalというマッキントッシュからの悪食の文化を未だに引きずり、OpenGL系譜のシリコングラフィックのマシンから火が出る品質の会社が作ったのものからのVulkan。これらを隠蔽するのがベース部分ののフレームワークでの仕事になる。
- DRY
くそくらえ
- YAGNI
仕事でやれ
- 新しい技術
基本フレームワーク部分や各それぞれの独立したモジュールに関しては使い古くされたもので実装している。ただし目的の完成と自分のモチベーションのため実装部分には楽しそうなものを取り入れる。そもそもの目的は楽しいことをするためのものであり、完成させるためには今の時代一番忌み嫌われる昭和の努力と根性が必要なため、それを達成するためのモチベーションである。