今日の雑記

生きることでいっぱいいっぱい

これを作ってて考えたことなどのメモ

いわゆる「ベンチマーク」的なものとか作ったこと無かったし、良い機会なので、作ってるときに考えてたことをまとめてみました。

  • 基本部分は「testsprite」から持ってくる。
  • 必要最低限な実装に抑える。具体的には「自機/自機弾/敵/敵弾/相互の当たり判定」という感じ。
  • 表示のベンチマークも取るという意味で、とりあえず背景に星を流そう。
  • わりと普遍的で、流用できそうなプログラムは流用する(キー入力や当たり判定など)。
  • 他のプラットフォーム(というか CPU)に移植されることも考慮して、浮動小数点を使うのを控えて固定少数にする(全く使ってないわけでは無い)。
  • ソースは一本。
  • そのためなるべく短く簡潔に、且つマニアックな記法なりなんなりは排除した記述で組む。
  • なので(というわけ「だけ」では無いのだけど)タスクは「リンクリスト」ではなく「配列」で実装。

大体こんな感じです。
あ、あと、決して「リンクリスト」が「マニアックな記法」と言ってるのではなくて、単純に「記述量が増える」から、という理由で実装しませんでした。短く組めるんならそうしてますが、ボク自身がものぐさなもので、「あーもう新たに組むのメンドイなー」というというかなんというか。
少数に関して。一部浮動少数を「敵のショット方向を求める」のに使ってます。これは「敵のショットは1フレーム内でそんなに同時に多く発射されないだろう」という前提の元に組みました。固定少数のライブラリというか実装は手元にあるんですが、これを組み込むとそれだけでソースの行数が膨大になってしまうので、今回は見送ってます。
あと、「ソースの行数」に拘った理由は、単純に「他言語への移植のし易さ」を考慮した結果です。これでも(元の「testsprite」に比べたら)全然な気はしてますが、シューティングゲームのソース、と考えたらそれなりの行数なのでは?と思わなくは無かったりしてます(<どっちだ?)。