2 年前からブラウザで戦略ゲームを構築しています。少数の人々によってすでに活発にプレイされているため、実用的なゲームです。私たちの問題は、リソースが不足していることです。基本的にオペラかクロムが欲しい。IE9 は多かれ少なかれプレイできず、Firefox は一部のマップで非常に遅くなる可能性があります。
このゲームは、マップに 64x64 ピクセルの DIV を使用するタイル ベースのトップダウン ゲームです。
現在、最終段階にあり、最適化に注力しています。資源を消費するものの 1 つは、アニメーション化された水です。32 種類の水のタイルがそれぞれ 15 フレームに分割されています。したがって、1.1 MB の 1 つの .gif ファイルに 480 個の 64x64 画像が含まれます。
ここに水へのリンクがあります: http://www.warbarons.com/beta5/terrain/water/water2.gif
私たちのゲームは Fog of War を使用して、RTS ゲームのように見えない敵のユニットや城を隠します。そのため、通常、.gif の上に透明な PNG のレイヤーがあります。
このソリューションは、ブラウザに対して非常に要求が厳しいようです。マップをスクロールして FireFox で水を表示すると、CPU は 25% まで上昇しますが、水が見えないときは約 4 ~ 5% になります。
私は数日間、より良いテクニックのアイデアを得るためにグーグルで検索してきました. これを行うには、スプレッドシートを反復処理するキャンバス タグを使用するか、CSS を使用してスプレッドシートをループする方法が 2 つあります。
これら 2 つのオプションで私が目にする問題は、すべての水のタイルを同期させておく必要があることです。ある波が別の波の前に再生を開始すると、波が同期しなくなり、シームレスな外観が壊れます。
誰かがこれを解決するアイデアを持っているのだろうか?複数の gif アニメーションを使用すると、非同期の問題が発生することはわかっています。
これを行うためにキャンバスを使用するクリーバーの方法はありますか? キャンバスと div を混在させることは可能ですか?それともマップ エンジン全体を変更する必要がありますか?
どんな助けでも大歓迎です。