最近はずっとゲーム制作しかやってません。
その中でもいかに速く動作させるかについてブラッシュアップ中です。
ゲームの機能や面白さについてはほとんど進展していないので、かなり地味な作業です。
でも、「 ああすれば速くなるかも 」 とか 「 あそこはまだ工夫できる 」 とか思ってしまうと試さずにはいられません。

初期の頃は Dreamweaver + Firefox で制作していたと思いますが、Brackets という編集ソフトを使い出してからはプレビューは Chrome で行う様になりました。

今日まで試行錯誤していた問題は、爆発などのエフェクトに使う HTML 要素を
1、cloneNode ( 複製 ) して appendChild ( 貼り付け ) する
2、予め沢山作成しておいて必要な場所に動かす
のうちどちらで発生させるかという事です。

1 の appendChild を使うとコードがスッキリします。使いたい時に使いたいだけ出せる四次元ポケットを持っている様です。用が済んだら removeChild でおさらばです。
対して 2 の方法は個々の要素を管理する必要が有るので、コードや処理がやや面倒になります。限られた作業員に仕事を割り振る管理者になった様なものです。

ややこしい事までして 2 の方法を模索したのは、1 の cloneNode, appendChild, removeChild は時間の掛かる処理だと考えていたからです。でも、実際に2つの試作を作って計測してみても違いが出ませんでした。
「 必ず速くなる 」 と確信していたので少々面倒ながら 2 の方法へコードを改造したのに、全く違いが出ない事に結構ショックでした。

苦労して 2 の試作を作ったけど、コードが簡素になる 1 の方法で全て統一する方へ心が傾いていました。
そんな時、Firefox の存在を思い出したのです。

ゲーム盤上に一気に 100個 の回復アイテムを出現させる様にして 2 の方法でスタートさせると、ゲームとして成立しない程に動作がスローになりました。対して 1 の方法では普通に動作したのです。これで 1 の方法で全て統一すると心を固める事が出来ました。

今回はいかに Chrome 先輩の能力がスゴイか実感しました。Chrome 先輩はどちらの方法で数万ターンゲームを続けても問題なく高速動作します。Chrome 先輩だけでプレビューしていると、他では動かせないゲームが出来そうです。