« 長門さん、実は仲間を裏切っていた!? | メイン | マウス入力とキーボード入力 »

強制バージョンアップ

サーバを介してリアルタイム対戦ゲームをFLASHで構築する際になるべく組み込んでおくべき機能、それは強制バージョンアップです。
これは重大な不具合を発見した場合やゲームバランスを大幅に変更したくなった場合に、ログイン中のユーザが極端に有利(不利)になるのを避けるために必要なのですが、ただサーバ側から再起動しただけでは修正前のファイルのキャッシュをそのまま読み込む可能性があります。

これらを解決するために、Flashとサーバプログラムの双方にバージョン番号をハードコーディングしておき、ログイン時に比較することで古いバージョンのファイルでログインしているユーザを遮断できます。
もちろんただ遮断するわけではなく、新しいバージョンがリリースされていることを通知できるように特別なエラーコードを返すようにします。
こうすることで全ユーザが同じバージョンのファイルでログインできるようになるわけです。

THE DAY OF SAGITTARIUSについては、管理ツールから再起動可能な10人対戦版には仕込んであります。


ソケット通信型なら強制ログアウトさせることができるのですが、単純なCGI通信型だと定期的にバージョンチェック用のクエリを投げない限りは難しくなります。
サーバ負荷も考えなくてはならず、バージョンの違いにより致命的な問題が発生しない限りは厳密にチェックしないor全くチェックしないのが妥当でしょうか。

トラックバック

このエントリーのトラックバックURL:
http://void.heteml.jp/mt/mt-tb.cgi/16

コメントを投稿

あわせて読みたい