こんにちは、ロブスタのハルです。
前回はToolsについて解説しました。
今回はゲーム制作で重要な概念であるクライアントサーバーモデルについて解説します。
前回の記事を見ていない方はこちらからどうぞ!
はじめに
私たちの身の回りのスマホ、パソコン、タブレットなどはそれ単体だとできることが少ないですよね。そこで普段はインターネットに接続をすることでより便利な機能を利用しています。
便利な機能とは例えば、Webブラウザや動画配信サイトで情報を検索したり、ECサイトで買い物をすることです。
では、これらはどうしてできるのでしょうか?
答えは情報を管理しているコンピュータとそれを受け取るコンピュータがやりとりをしているからです。
クライアントサーバーモデル
先ほど情報を管理しているコンピュータとそれを受け取るコンピュータがやりとりをしていると説明しました。
この情報を管理しているコンピュータのことをサーバー、情報を受け取るコンピュータのことをクライアントと呼びます。
そしてクライアントとサーバーがやりとりをすることで情報通信を行うことをクライアントサーバーモデルと言います。
クライアントとサーバーの具体例
クライアントにはノートパソコンやデスクトップパソコン、スマホ、タブレットなど私たちが実際に操作する端末が含まれています。
一方でサーバーは情報を管理しているコンピュータと思ってもらえれば大丈夫です。情報について具体的な例を挙げると、ファイルやデータ、アプリやソフトなどのサービス、コンテンツがあります。
クライアントとサーバーの役割
クライアントはサーバーに対して○○をしてくださいというリクエスト(要求)を送ります。
サーバーはクライアントからのリクエストを受け取って処理を行い、その結果をレスポンスとして返します。
ここで知っておいてほしいのが1台のサーバーに対して複数のクライアントからリクエストが来るということです。
あるお店(サーバー)に対して複数のお客さん(クライアント)が来てサービスを受けると考えればわかりやすいですね。
Robloxにおけるクライアントサーバーモデル
クライアントサーバーモデルはWebをはじめとする様々な場所で使われる概念ですが、Robloxでは上記のような処理が存在します。
クライアントサイド処理は各自のスマホやパソコンで行われるもので、Aさんのスマホで実行された処理の結果がBさんのスマホに表示されることはありません。
サーバーサイド処理はサーバーで行われるものであるため、そのゲームに参加している全員のスマホやパソコンで実行結果が表示されます。
また、クライアントサイドとサーバーサイドを繋ぐ処理(リクエストとレスポンスのやり取り)をするために上記のオレンジで囲まれたような処理が存在します。
最後に
今回はクライアントサーバーモデルについて簡単に紹介しました。
しっかりとしたゲームを開発する際には必ず知っておかなければならない知識なので黄色のアンダーライン部分だけでも頭に入れておいてくださいね。
今後はこのクライアントサーバーモデルを前提とした処理がどんどん登場します。
具体的な動きについてはそのときにわかると思うので楽しみにしていてください。
コメント