Unityでも使える? Epic Online Services(EOS)とは何か

広告

最近、インディーゲーム
めっちゃカメレオン
の大ヒットが話題になっています。

このゲームで特に驚かれたのが、

  • 広告費 0円
  • サーバー代 0円
  • 開発期間 2か月

という点です。

オンラインマルチプレイゲームなのに、なぜサーバー代がほぼかからないのでしょうか。

その理由の1つとして挙げられているのが
Epic Online Services
(以下 EOS)です。

今日は、

EOSって何?
Unityでも使えるの?

という話を、Unity開発者目線で整理してみます。


EOSとは?

EOS は
Epic Games⁠
が提供しているオンラインサービス群です。

簡単に言うと、

オンラインゲームに必要な裏側を提供してくれる仕組み

です。

例えばオンラインゲームには、見えないところでたくさんの仕組みが必要です。

  • プレイヤー認証
  • フレンド管理
  • ロビー作成
  • マッチング
  • 通信同期
  • ボイスチャット
  • ランキング
  • 実績管理

これを全部ゼロから作るのは大変です。

EOS は、その多くを提供してくれます。


Unityでも使える?

答えは、

はい、使えます。

Unity専用のプラグインも存在します。

つまり、

  • Unity
  • Unreal Engine

両方で利用可能です。

「Epic だから Unreal 専用でしょ?」

と思われがちですが、そうではありません。

Unityでも問題なく導入できます。


EOSでできること

代表的な機能を見てみます。

認証(Authentication)

ログイン機能。

  • メール
  • Epicアカウント
  • 外部認証

など。


ロビー

オンライン対戦で重要です。

例えば:

  • 部屋を作る
  • フレンドを招待
  • 満員になったら開始

こういう処理。


マッチメイキング

ランダムマッチです。

例えば:

  • 4人集まったら開始
  • レートが近い人を優先

など。


P2P通信

ここが重要です。

サーバーを自前で持たなくても、

プレイヤー同士が直接通信できる仕組みがあります。

これが、

サーバー代を大幅に減らせる

理由の1つです。


なぜ「無料」が話題になるのか

オンラインゲームで意外に重いのがサーバー費です。

例えば、

  • AWS
  • Google Cloud⁠
  • Microsoft Azure⁠

などを使うと、

ユーザー数が増えるほど費用も増えます。

ヒットすると嬉しい反面、

売れたのにサーバー代で赤字

ということもあります。

EOS のような仕組みを使うと、その負担をかなり減らせます。


ただし、魔法ではない

ここは重要です。

「EOSを入れれば簡単にマルチプレイできる」

わけではありません。

実際には、

  • 接続切断
  • ホスト離脱
  • 遅延
  • 同期ズレ
  • チート対策

などの問題があります。

特にUnity初心者には難しいです。


初学者におすすめなのは?

もしUnity学習者がマルチプレイを始めるなら、私はこう考えます。


初学者

まずはこちら。

  • Netcode for GameObjects
  • Unity Technologies の
    Unity Gaming Services

理由はシンプル。

Unityとの統合が楽

だからです。


中級者以上

こちら。

  • EOS
  • Mirror
  • Photon Fusion

より本格的な選択肢です。


教育でも同じ

職業訓練校でもよくあるのが、

初心者がいきなり

  • MMO
  • PvP対戦
  • 大規模同期

を作ろうとするケースです。

すると、ほぼ止まります。

理由は明確です。

ゲームロジック以前に、

ネットワーク同期が難しすぎる

からです。


私なら生徒にこう伝える

いきなりオンラインゲームを作らなくていいです。

順番があります。


Step1

1人用ゲームを完成させる

  • プレイヤー移動
  • 当たり判定
  • UI

Step2

ローカル2人対戦

同じPCで遊ぶ。


Step3

オンライン化

ここで初めてEOSやネットコード。


まとめ

Epic Online Services は、Unityでも使えます。

しかも強力です。

特に、

  • 鬼ごっこ
  • かくれんぼ
  • 協力プレイ
  • 対戦ゲーム

との相性が良いです。

ただし、初心者向けではありません。

最後に伝えたいこと。

オンラインゲーム制作で最も難しいのは、
「ゲームを作ること」ではなく、
「同期を正しく保つこと」です。

だからこそ、まずは小さく作る。

これはプログラミング全般にも共通する大事な考え方です。

訪問数 6 回, 今日の訪問数 6回

広告

Unity

Posted by hidepon