ゲームライブラリ構築までの道「インベーダー編」#14 : 効果音の追加

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

こんにちわ。
 

ITお悩み相談担当の、下駄です。
 

とある大手IT会社から、会社で運営している多数のWEBサービスが、月に50回ほどサーバーダウンするので、全てAWSに移したいけどどうしたらいいか相談されました。
 

そもそも、AWSにサーバーを移すと、サーバーダウンしなくなると考えている時点で、レベルの低さを感じましたが、ビデオチャットで直接話しを聞いてみたところ、
 

月の総アクセス数が80万〜100万ほどということで、爆発的なアクセス数では無いことから、サービスのプログラム構成が悪いことが分かります。
 

1アクセスで、無駄なループを何度も行っているんでしょう。
 

異常にフレームワークにこだわっていた事から、プログラムを書いている本人も意識していない箇所で、無駄な処理が行われている可能性も高いです。
 

何より残念だったのは、月における秒間最大アクセス数を把握していなかったことと、サーバーのヘルスチェックがまるで行われていなかった事ですね。
 

そもそも、サーバーをAWSに移設したら、問題が解決すると思い込んでいる浅はかさに、空いた口がふさがりませんでした。
 

まずは、プログラムのリファクタリングまたは、設計見直しをしてから、インフラ構成の見直しが手順でしょ。
 

大手会社って、そんなIT知識レベルで賄っているんですね。
 

雑誌に乗っている知識レベルのプログラマーばかりで、非常に不憫に感じました。
 

本日のIT謎掛け

「サーバーダウン」と、かけまして、
 

「全国318番目に多い苗字の友達に相談する時」と、ときます。
 

そのココロは・・・
 

さいきどうしましょう。
(再起動しましょう、佐伯どうしましょう?)

ソースコード

注意!音が出ます。

not canvas

解説

ミサイル発射音とBGMをつけてみると、一気にテンションMAXになりますね。
 

ちなみに、BGMはmacのガレージバンドでサクッと作ってみました。
 

ミサイル発射音は、動画などから一番きれいに聞こえるものをサンプリングしてみました。
 

これをjavascriptのaudioAPIを使って再生していますが、想像していたとおり、若干のタイムラグが発生しますね。
 

audio.load()を使わずに、currentTime=0で行ったりして対応はしていますが、
そもそも、内部ロジックの処理落ちを見直さないといけないかもしれません。
 

・・・が、それは、今後作るライブラリで改善していこうと思います。
 

とりあえず、インベーダーゲームは、今回のバージョンをもって終了にしたいと思います。
 

なんかやり残した機能なども何個かありますが、とりあえずの達成感を持っている間に次に進みたいと思います。

Github

ソースは以下にアップしています。(ver:0.13)
 

https://github.com/yugeta/game_invader

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です