ブラウザゲームとサーバー
ブラウザゲームはパッケージのゲームと異なり、ブラウザが必要なデータを取得して、ブラウザで実行するゲーム環境です。ブラウザゲームのメリットは
- パッケージを作成する必要がない
- 配付=プレイヤーが取得
- リアルタイム。その場で修正したり、バージョンアップできる
以上の機能は、ウェブサーバーにより実現されています。
したがって、サーバーの機能が重要です。
サーバーをどうするか
サーバーを利用するには
- 自分でサーバーを公開する
自由に設定でき、利用制限がなく、高度なシステムが構築できます。
反面、攻撃目標にされた場合の、ウィルス・スパム対策、OS等更新の手間も発生します。
- レンタルサーバーを利用する
サーバーの技術的な管理をしなくてよいことになります。
また、インフラ費用(サーバーの器機代、維持費用、電気代など)もかかりません。
同様に、サーバーにトラブルが起こった時に、復旧して貰える場合があります。
通常はこちらを使用します。
サーバーの比較
サーバーは利用サービスにより、機能(新しいWebの機能が使えるか、処理系が使えるかなど)、処理速度、帯域(通信速度に関係)、障害度、復旧時に元に戻してくれるサービスの程度、などの差があります。どのサービスが、どのポイントに力を入れているか、実態としてスペック通りの運用がされているか、あらかじめよく調べておきましょう。
というのも、一度ゲームを公開してしまうと、ランキングのデータが蓄積されたり、ゲームを気にいったプレイヤーが公開されたアドレス(サーバにより変わってくる※)を頼りにアクセスしてくるため、サーバーを気軽に変更できないからです。制作側も管理の都合を考えると、一つのサーバを使い続けられる方が楽なことは言うまでもありません。ゲームが完成すると一刻も早く公開したいという気持ちになりますが、日頃からあらかじめこれは、と思うサーバを目利きしておきましょう。
比較する項目ですが次のようなものになると思います。CGIというのは、サーバーの処理系(プログラム言語など)のことです。
- ウェブサーバの種類
ブラウザゲームを何で作成するかによって、サーバの種類・または搭載サーバーソフトが決まります。
例)ColdFusion、Flash Communication Server(Media Server)、WindowsMediaServer、MultiUserServer、
.NET Framework(Microsoft VisualSutudio・Expression)、RealServer、Curl、Tomcat(Java)、Apache、
OpenGL node
- CGIまたはPHPが使用できる
CGIなどを使用すると、動的なデータが扱えるようになります。また、サーバーに保存できるようになります。
例)スコアランキング、コメント、掲示板、感想・アンケートフォームなど
特にブラウザゲームでは、プレイヤーのコミュニティが作れることが楽しい要素ですので、これらの処理系を
持ったサーバの利用をおススメします。
この機能は、なりすましや不正ランキングなどの防止にも使用できます。
なお、PHP等については、ブログなどの二次的なツールも使用できるようになります。
例)FlashRemotingObject、Server-side Javascript、XML-Server
これは必須ではありませんが、さらにDatabaseを必要とするツールもあります。
その場合はDatabaseが使用できるかどうか、使用可能なDatabaseの種類も選択条件の中に入ってきます。
さらに、CGIについては、使用できるPerlモジュールなど、処理系のオプションを確認しておきましょう。
- Application-typeが設定できる(または.httaccessが使用できる)
特殊なメディアを使用する場合、必要です。
JavaのAppletを設置する場合、セキュリティ対策の敏感なサーバーではライブラリの読み込みなどでエラーが発生してしまうこともありますが、こちらのファイルを設定することで使用できるようになる場合があります。
- アクセス制限・SuExec
低価格なサーバは複数の加入社で一つのサーバを共有していますので、処理系をプライベートにするために必要です。また、プレイヤーの情報や、攻略に必要なデータが安易に閲覧できたり、検索エンジンに取得されるのでは様々な点で問題が生じますので、アクセス制御の設定ができるサーバを選択します。
この機能は、なりすましや不正ランキングなどの防止にも使用できます。
- 無料サーバー
無料サーバーが提供されていますのでこちらを使用するのも手です。利用には制限があるので、よく調べてみましょう。無料サーバーのよい所は気軽に試してみることができることです。
問題になりやすいのは、処理系(CGI)が使用できない物が多いことなどです。また、広告が挿入される場合が多いですが、広告の持っている漢字コードに合わせないと、PHP・CGIの出力が文字化け(WindowsのInternetExplorer以外では文字化けします)したり、Javascriptの動作に影響を与えることがあります。ブラウザゲームの処理を記述している、あるいは処理に関係するHTMLコードの途中に広告が挿入されることもありますので、本格的な運用を始める前によく確認しておきましょう。
サーバー選びのポイント
その他のサーバー選びのポイントは以下の通りです
- マルチユーザで遊べる/CGIをどんどん使いたい
利用できるサイトは限られます。サーバーの例を参照して下さい
- 安定しているか
サーバの機能は次の通りです。
■一定期間あるいは削除するまでデータを保持する ……これは動的コンテンツが扱えるということを意味します
■表示速度が安定している ……たくさんの人に見てもらうことを考えましょう
■設定が変わらない ……メンテナンスなどで設定を変えられると正しくページが表示されなくなります
■メンテナンス計画がしっかりしている ……事前に告知がある、セキュリティパッチが早いなど
■ドメインが安定しているか ……Page Not Found や this Domain not exist が出ない
■FTP(ファイル転送)が安定しているか ……転送したファイルが機能しなかったり、アップロードが遅いなど
なぜ、このようなことを考えなければならないか? ――ブラウザゲームを設置したいだけなのに。
たいへん煩わしく感じると思います。
困った事に、サーバーという商品には安定動作に関する指標というものがありません。サーバーの稼働品質は運営側に一任されているというのが現状です。トラブルや不安定な動作、機能の充分・不十分といったサービスの内容のバラつきがあっても、このレベルの運営を確保しなくてはならない、というような基準がないことが、品質や障害の免罪符となっており、サービス内容に対する一般的な不満や理不尽さが解決されるかどうかは微妙です。最終的にはほぼ運営側の見解となる場合が多いようです。
利用者(消費者)側からすると、本来そのような動作基準が必要なのですが、実際にはさまざまな不都合が発生してもサポートから明確な説明や根本的な解決方法が返って来ない場合も多いようです。
利用者側のスキルでカバーしなければ快適に利用できない現状なのです。
このページでは、サポートに聞いてもなかなか充分に説明して貰えない(運営側自体が理解していないものも含め)現象について明確にするとともに、サーバー選びのポイントとして解説します。
これはいい、と思う機能があっても、スペック通り運用されているかどうかが問題になることがあります。たとえばブログがあるとゲームに関する情報を配信したり、感想を貰うことができます。ブログが簡単に使える、という広告のあるサーバーを、ちょっと使ってみたいと思うかもしれません。
しかし、ちょっと待って下さい。ブログのような更新型コンテンツは簡単にバックアップを取ったり、元の状態に戻すということができません。通常の運用であれば可能ですが、サーバに障害が起きり、データベースが破壊された場合、元に戻すことは不可能な場合があります。
サーバーのトラブルが発生しやすいタイミングとしては、内部では機能のバージョンアップやメンテナンス、外部からのサイトの攻撃が発生した場合です。原因が外部の場合、つながりにくい、表示が重いといった現象、内部が原因の場合、これに加えて恐ろしいのがデータ破壊です。
ネットワーク器機やハードディスクの寿命といったものは存在しますが、多くの障害は何らかの人為的操作がきっかけとなって発生します。言い換えれば、サーバー管理者の作業手順には、過失の意志が潜在しています。したがって、ハードウェアの耐久性といったもの以上に運用管理の姿勢や企業の体質が障害率と深く関わっています。この業界はベンチャー的な事業が多く、責任能力においても未成熟な対応もあるかもしれません。こういった点も、現実的には選択する側がリスクを考慮しなければなりません(本来はそれではいけないのですが)。
通常メンテナンスとはサーバをより快適に運営されるために行われるので、充分な準備と対策の元に行われるべきものです。このタイミングで今まで動作していたものが動作しなくなる、古いページが表示される、一部のコンテンツが読み込みできなくなる、ナローバンドや遅い回線(ADSL
3M、といった)で転送が止まる……などの現象が発生することがあります。通常は、発生しても動作が若干変わるといった現象ですが、特定の動きを前提にサーバを運営するということはよくあることですし、多くのCGI・PHPプログラム(サーバ側に設置する処理)はそれを前提に動作しています。明確に記述されていないが、設置してみると詳細な条件がクリアされて動作した、というような動作条件や、メディアコンテンツの運用が可能という言葉にくくられていた特定のファイル形式が扱える、大小の転送時間・待ち時間をクリアしているなど、一般的にCGIなどが正常動作を前提として成り立っているある機能が幾つかあります。その動作を期待してサーバを申し込んでいた場合、該当機能の動きが変わるということは、サービス自体が必要としていた機能を提供してくれなくなるということになります。こうなってしまうとサーバを他に移すよりありません。メンテナンスが頻繁に行われるということは、今までと異なるサーバーになってしまう可能性があるということなのです。
仮にメンテナンス計画をしっかりしていても(サーバ業者やプロバイダが)読みめ切れてない現象というのがあります。まして、メンテナンス計画が充分とはいえない場合は、通常在り得ない事が発生します。酷い障害が発生してサーバ自体が完全に停止してしまうことも在り得ます。では、そういった業者の対応能力について、どこで判断するかなのですが、ここで問題となるのが業者の信頼性です。
例えば、バックアップは利用する側がデータ保存の目的で行っておくべきものですが、業者側の落ち度で障害を引き起こした場合、データを消失させてしまう場合があります。このような場合にも役に立ちます。メンテナンスの際にバックアップを取る、というのは手順であって、議論することではないのですが、これを省略してしまう。
もし、貴方の選んだ業者が、ユーザにはバックアップをせよ、といいつつ、自分たちはバックアップなどしなくていいなどと安易に考えて障害を起こしている業者だったら……
例えばメンテナンス計画が、1ケ月前から準備され、通知されていれば利用者側もバックアップを取る期間としては充分ですが、1〜2日前などにメンテナンスを通知されても、バックアップをとったり、プレイヤーに参照できない時間帯を知らせる充分な期間があるとは言えません。ゲームサイトの運営を営業している訳でもない限り、通常は利用者にも生活があります。毎日パソコンの前に座って作業をするできる人ばかりではないのですから、作業に余裕が取れる日程が設定されているかどうかです。
このように唐突にサーバの稼働に重要な影響を与える運営をされてしまい、データを破壊されてしまうと、一定期間データを保持するという一般的なサーバー(商品)の定義を満たしているとは言えません。更新型コンテンツは事実上設置できない、という判断もできるでしょう。サーバー上で投稿されたり、生成されたデータは自分のPC上には存在しないからです。このように、サーバ、バックアップなどのサービスを構成・説明する言葉が、一般の人の常識的な理解の範疇に収まり、定義を満たしているのかという点は、サーバー提供者のページを見ただけではなかなか分かりません(言葉だけでは判断できないことと、実態に責任が伴っているかどうかという、言わば提供側の姿勢は分かりません)。そこでまずは仮登録してみます。仮登録することでそのサーバーを実際に試用してみることができます(できないサーバーもあります)。場合によっては、運用の内情を理解する手助けとなる情報が得られることもあるでしょう。
まずは簡単なサイトを作成してテスト運用してみることも手段の一つです。運用してみないと分からないことが分かります。キャンペーンなどを目当てに最初から一年などの長い期間でサービスに加入したり、早く公開したいということでそのサーバーの素性がよく分からないまま、あせって申し込みをしてしまうと、途中で何か不具合が発生した際に困ることになります。そのサービスがいつまで続くか分からないこともありますので、いつでも乗り換えるできるように考えて、はじめて使用するサーバーではなるべく短い申し込み期間で申し込みます。問題が発生してもすぐに別のサーバーに移行できるようにしておきましょう。魅力的なサービスに感じられたとしても、デメリットを抱えていないかどうか、冷静に考えられる余地を残しておきましょう。
また、サーバー業者は低価格の運用を強いられている部分もあります。安いサービスには問題がないか、不確定なサービスを利用するために投資を押さえるべきかよく考えましょう。また、業者はスパムなどの対策に日々追われ、24時間安定した稼働を維持するために労苦を重ねています。そういった点を理解して運用に協力する姿勢は必要ですが、運用の辛さから、業者の側に「安いのだから少々のトラブルは仕方ないではないか」という意識があると、軽率に障害を引き起こしやすい状況が整ってしまうと思われます。
サーバ業者も事前にきちんとバックアップ取るなどしておけば、仮に障害が発生しても、長時間対応に追われて人件費や器材、事後の対応などの費用が経費を圧迫される……などという目に遭わず済む訳ですが、こういった自己矛盾を抱えて悪循環的に陥っている場合もあるかもしれません。
トラブル及びトラブル防止策というのは人間的な要素が大きい点、業者からの応答などから判断して、信頼できるサービスを利用するようにしましょう。
また、メンテナンスや障害時のデータ復旧は当たり前ですが、ここにも注意する必要があります。データ復旧は管理者が行うため、以下のようなトラブルが発生することがあります。OSバージョンアップやハードディスク交換といった危険なメンテナンスはめったに行われず、行われる場合は厳重な注意の元に行われる筈ですが、そうでない場合はメンテナンス計画のしっかりしたサーバーかどうか、注意が必要です。例えば、ファイルの交換の際、起こりやすいトラブルとして以下のようなものがあります。
- CGIが正しく動作しない
ウェブサーバーはCGIの動作属性を記憶していますが、この設定はファイルアップロード時に設定されます。こちらが正しく設定されないため、CGIがエラーを発生します。
- ファイルがアップロードできない
管理者権限(読み取り)を持つ同名のファイルやディレクトリが作成されてしまっている場合に発生します。読み取り権限が管理者のみになっていると、同名のファイルがFTP上に表示されません。
- データがところどころ消失する
誤ってファイルの一斉削除をかけてしまい、途中で処理を中断した場合など、このようなことが起こります。ディレクトリを残してファイルが消失していた場合、おおよそこれが原因です。(ディレクトリの削除命令は、中のファイルを削除した後、ディレクトリを削除する、という手順で実行されるからです)。
近年のサーバでは、ジャーナル式のファイルシステムを使用しているため、全域に渡ってデータの消失が起こることはほぼありません(その前に問題のファイルに対してエラー報告がされます)。ハードディスクが破壊された場合は、ファイル自体が参照できなくなりますが、この場合は完全なバックアップ時の状態に戻ります。
その他正常に表示されない
ファイルの権限や所有者が変わっていたり、バックアップによってファイルの更新時刻が若返り、中間にあるプロキシのキャッシュが更新されません。設定ファイルやディレクトリが現在の正常なサイトの状態を復元できません。
- 動作が重くなる
中間情報の大幅な書き換えや、データ消失を恐れて多くのユーザが日に何度もバックアップするようになり、回線が渋滞します(恐らくサーバー業者自体も皆がバックアップを頻繁に行うと正常な運用ができずに困ると思います――こういったサービスは悪循環に陥っています)。また表示時間が遅延することで、何度もファイルの再読込がリクエストされるため、動作が非常に重くなります。
- 動作しなくなる
転送効率が変わって、ナローバンド対応していないscriptが正常に動作しなくなったり、小さいファイル、大きいファイルなどの転送時間や転送率に影響が出ます。結果、転送されないデータやタイムアウト、不完全な転送などが発生して動作しなくなります。これらの現象のうち、一部はプロクシがキャッシュを生成して高速化することで解決されますが、キャッシュを期待した動作というのは不確実なため、根本的な解決になりません。
上記を見て頂ければ、単純にバックアップや復旧をしたからといって、以前の動作状態にすることはできないと分かります。特に動的コンテンツは表示を高速化したり便利にするために非常に複雑な形で中間データや生成されたページを保持しています。そのため、ツール独自のバックアップやインポート機能を使わないと、データやファイルだけ戻しても正しく復旧できません。多くの場合、バックアップ可能なメッセージや画像などがあれば手動でPCに保存し、インストール仕直して再投稿する方が早いのですが、インストール・アンインストール自体ができなくなっていることもあります。ブログツールや会員性コンテンツを使用しているサイトで障害が発生した場合は、過去のデータが回収できず、回復不能な被害となることがあります。
唐突なメンテナンスを行ったり、障害に関する習慣性などがないか、事前によく調べておくことをおすすめします。
そしてハードウェア(ネットワーク・通信器機)のメンテナンスによって、発生する障害もあります。光などのサービスを導入した際、動画などのメガコンテンツを導入した際に器機の設定が変更されたことにより、次のような現象が発生することがあります。これもメンテナンスにより起こるトラブルです。
- ファイル転送が途中で停止する
ファイルサイズにより、アップロードが途中で停止したり、極端に遅くなったりすることがあります。これは通信器機の転送率が変更されたために起こる現象です。ADSLや光といった複数のサービスを一箇所の通信器機で併用している場合や、特定の接続サービスに合わせた設定をしたために発生します。光、ADSL、ダイヤルアップなどの接続方法の違いにより、現象が起きたり起きなかったりします。
- 見れないサイトが出てくる
これも同様の理由にて、相手のサーバーとの接続の相性が出てくるので、不安定になります。また、通信情報が付加されたり欠落するなどしている場合は、サイトが不正アクセスのチェックをしている場合に、その違いを検出してアクセスをブロックしてしまう場合があります。
上記の障害対策は、純粋に技術的な問題です。ご使用のプロバイダ側が同様の問題を発生してしまうこともあります。プロバイダであればサービスに合わせて適正な出力をしているかどうか、サーバーであれば通信器機の設定変更などを行っていないか日頃からチェックしておきます。大手だから安心というより、サーバーの管理が技術的にしっかりしているかどうか、が重要なポイントです。新しいサービスを我先に導入する、といった宣伝の背景に、実際の使用についてきちんと正常な運用を確保しているサーバーかどうかをよく見極めて下さい。そのサーバーの技術の信頼性がもっともよく分かるのは、この接続性というパラメータです。安定して通信できるサーバーが技術力が高いといって間違いありません。浅く広く新機能をやたら取り込むのは、カタログ上が豪華になっているというだけで技術力が高いとは言えません。使える技術と使えない技術が混合している可能性があります。使いこなし、利用の点に課題を残している場合は、ブラウザでの閲覧に支障が生じますので、使用しない方がよいことがあります。
また、サーバーの管理が細かく運用されている場合、その処理の影響が出ることがあります。
- ファイル転送が極端に遅い、時間帯により遅延する
時間周期で何らかの処理(時間指定での帯域制限のためのアクセス情報収集、バックアップ等)が行われている可能性があります。その時間帯を避けて使用するか、シンプルなシステムのサーバーを選択します。
データベースツールやPHPなどの処理系がセキュリティ対策のためのバージョンアップを受けることがあります。この場合、
- 処理が動作しなくなる
バージョンアップにより記述方法などが変更になると、それが原因でCGIなどが動作しなくなることがあります。事前にPerl・PHPなどの処理系のバージョンアップの通知を受けた際には、対象のツールや開発言語に関するサイトにて、新バージョンへの移行手順を確認し、準備しておきましょう。サーバーによっては、古い処理系もそのまま使えるように設定方法を通知してくれますので、その際は以前の処理系をそのまま使うためには、どういう設定が必要か確認しておきましょう。思わぬ所で、以前使用できていた処理が実行できなくなる場合があります。
バージョンアップにより、使用日本語コードや設定ファイルの変更が必要になることもあります。このような場合に役立つのがサーバの比較の項の.httaccessが使用できるかどうかです。こちらのファイルに設定することで、プログラムのファイル全てを書き換えなくてよい場合があります。
安心して動作するサーバーを見つけてこそ、利用者・提供側ともにゲームを楽しめます。このポイントだけ押さえておけば配付などの手間がいらないブラウザゲームはたいへん手軽で便利な環境と言えます。
サーバーの例
- NewGameWeb さまざまな用途におススメ。ゲーム好き・仲間好きな人におススメ。無料です。ボランティアのため、接続性は商用のサーバーには劣りますが、自由度は高いです。
|