みなさん、こんにちは。GS2の丹羽です。
今回からテックコラムと題して、ゲーム業界に関する話やビギナー向けの記事を書いていきたいと思います。
第一回はゲームサーバーの作り方です。 Game Server Services株式会社 らしいコンテンツから入ります。
サーバーってどうやって手配するの?
「ゲームサーバーを作りたい」と思っても、そもそもサーバーってどうやって手配するの?パソコンとは何が違うの?と疑問に思うかもしれません。
パソコンとサーバーのちがい
パソコンとサーバーの大きな違いは、ハードウェアとして”長時間の連続稼働”が前提として設計されているかどうか。しかありません。
そこで動作するソフトウェアはパソコンと違いはありません。
ただし、サーバー用途で使用されるOSは、Windows 10 や maxOS ではなく、Windows Server や Linux、Unix といったOSです。
ソフトウェア
Windows 10 と Windows Server って何が違うの?
動作するアプリケーションなどには一般的な Windows 10 と Windows Server では違いはありません。
違う点は Windows の用途に関するライセンス(利用条件)が異なります。
同時に利用する利用者が1人を想定した Windows 10 とサーバーに同時に多くのユーザーが接続してくることを想定した Windows Server では Windows Server のほうが利用料金が高い。ということになります。
Windows と Linux/Unix は何が違うの?
動作するアプリケーションが異なります。
iPhone と Android では動作するアプリケーションが異なるのと同じです。
開発者によっては、Windows と Linux/Unix 向けの両方に提供している場合もあります。
サーバーに使うアプリケーションがどちらで動作するか。ということを意識してどのOSを使用するかを決める必要があります。
ハードウェア
物理サーバ(オンプレミス)
いまあなたが使っているパソコンをインターネットに公開してサーバー機能を提供することも可能です。
ただし、前述の通り、OSのライセンスには気をつける必要があります。
また、民生品のパソコンは24時間365日処理を続けることを想定した設計にはなっていません。
セキュリティ的にもあなたの大切なデータが入っているパソコンをインターネットに公開するのは危険かもしれません。
仮想サーバ
仮想サーバとは、VMWare のような仮想化ソフトウェアを使って、OSの中で擬似的なパソコンを用意して異なるOSを動かす仕組みです。
この仕組を使用することで、1台のハードウェアを複数のハードウェアに見せかけて複数のOSを動作させたり、異なる役割のOSを分割して動作させることで問題が発生したときの原因調査をしやすくしたりできます。
仮想サーバは自分のパソコンで動作させることもできますし、仮想サーバを貸し出してくれるサービスもあります。
IaaS (Infrastructure as a Service)
Amazon が提供している Elastic Compute Cloud(EC2) や Google Cloud が提供している Google Compute Engine(GCE) のようなサービスです。
これらはクラウドと呼ばれているものです。
IaaS は仮想サーバのレンタルサービスで、1分あたり。または1時間あたりといった時間単位で利用料金を支払うことで利用できます。
様々な性能の仮想サーバがレンタルされており、性能によって時間あたりの利用料金が異なります。
IaaS の多くはオンデマンドサービスとして提供されており、サーバーをほしい。というリクエストを管理画面から出すと、その瞬間に利用できるようになります。
昔はサーバーを使いたい。と思っても実際に使用できるようになるのは数カ月後とか。しかも、初期費用や最低利用期間のような制約がありましたので、IaaSの登場によって必要なときにすぐに手配して、要らなくなったら返却すれば利用料金もかからなくなるようになりました。
あなたのニーズにあわせてサーバーの種類を決めましょう。
ゲームサーバーってなに?
ゲームサーバーとは、これまで説明してきたハードウェア・OSの上で動作するゲームと通信するためのアプリケーションが起動したモノです。
一口にゲームサーバーといっても、用途に合わせて大きく2種類あります。
リアルタイムサーバー
MMORPGやPUBGのようなバトルロワイヤルゲームのようなゲームで使用されるのがリアルタイムサーバーです。
リアルタイムサーバーは通信頻度が高く、通信遅延がゲーム性に影響を与えるような用途で使用するものです。
リアルタイムサーバーでは一般的に常時接続型の通信が使用されます。
常時接続型の通信というのはゲームサーバーとゲームアプリケーションが常に接続された状態を維持し、
ゲームサーバーとゲームアプリケーションがゲームの実装にあわせて必要な情報を常に交換するタイプのサーバーです。
通信に使用するプロトコルはゲームごとに独自に定義したものを使うことが多いです。
一般的なサーバー
アカウント管理サーバーとのログイン通信や、ガチャサーバーとの抽選処理通信などは常時接続をするほどデータ交換が高頻度ではありません。
このような処理はサーバーに接続をしてデータ交換が終わったら切断するような設計をします。
最近のゲームサーバーでは Webページの配信に使用される HTTP通信を使用することが一般的です。
なにもないときにはサーバーと接続していないため、常時接続型のリアルタイムサーバーと異なり、サーバー側から何らかのイベントをクライアントに通知するようなことはできません。
まとめ
- サーバーとパソコンの違いは、ハードウェアの設計が常時稼働することを前提としているか
- サーバーで動作させるOSは動作させたいアプリケーションから決定することになる
- サーバーを動作させるハードウェアの種類は、物理サーバー、仮想サーバーの2種類があり、IaaSを使えばオンデマンドでサーバーを手配できる
- ゲームサーバーはただのゲームと通信するために用意されたアプリケーションが動作したサーバー
- ゲームサーバーはリアルタイムサーバーと一般的なサーバーの2種類がある
- リアルタイムサーバーは高頻度のデータ交換・通信遅延を実現するために使用される
- ログイン処理など通信頻度の低い目的の通信は Webなどで使用される HTTP 通信を使用することが一般的
- 常時接続型でないとサーバーからゲームアプリケーションに通知を出すことはできない
GS2のご紹介
Game Server Services では ゲームサーバーのレンタルをおこなっています。
個人からプロまで使えるゲームサーバー - Game Server Services(GS2)
それでは、また。