LoginSignup
1

More than 3 years have passed since last update.

GameLift RealTimeServerで遊んでみよう for Unity(AWS設定編)

Last updated at Posted at 2019-12-04

はじめに

GameLiftとは

Amazon GameLift は、クラウド内でセッションベースのマルチプレイヤーゲームサーバーをデプロイ、操作、スケーリングする完全マネージド型サービスです。

とのこと。ここでは説明を割愛するので詳しくはこちらを参照してください。
イメージは掴んでおいてください。

簡単にオンラインマルチプレイが実装できるのなら嬉しい。

対象者

  • AWSのアカウントを持っている方
  • GameLiftでとりあえず遊んでみたいと考えているUnityエンジニアの方
  • AWSの無料利用枠がまだある方、もしくは使用金額を払ってでもやりたい方(この辺りは自己責任で)
  • 今回作成するものをきちんとクリーンアップできる方

このページで行うこと

主にAWSの設定周りになります。

GameLiftでの設定

  • スクリプトの作成
  • フリートの作成
  • エイリアスの作成

IAMでの設定

  • アクセスするユーザーの作成

スクリプトの作成

server.js
'use strict';

var session;
var logger;

function init(rtSession) {
}

function onProcessStarted(args) {
    return true;
}

function onStartGameSession(gameSession) {
}

function onProcessTerminate() {
}

function onPlayerConnect(connectMsg) {
    return true;
}

function onPlayerAccepted(player) {
}

function onPlayerDisconnect(peerId) {
}

function onPlayerJoinGroup(groupId, peerId) {
    return true;
}

function onPlayerLeaveGroup(groupId, peerId) {
    return true;
}

function onSendToPlayer(gameMessage) {
    return true;
}

function onSendToGroup(gameMessage) {
    return true;
}

function onMessage(gameMessage) {
}

function onHealthCheck() {
    return true;
}

exports.ssExports = {
    init: init,
    onProcessStarted: onProcessStarted,
    onStartGameSession: onStartGameSession,
    onProcessTerminate: onProcessTerminate,
    onPlayerConnect: onPlayerConnect,
    onPlayerAccepted: onPlayerAccepted,
    onPlayerDisconnect: onPlayerDisconnect,
    onPlayerJoinGroup: onPlayerJoinGroup,
    onPlayerLeaveGroup: onPlayerLeaveGroup,
    onSendToPlayer: onSendToPlayer,
    onSendToGroup: onSendToGroup,
    onMessage: onMessage,
    onHealthCheck: onHealthCheck
};
  • 作成したスクリプトをGameLiftにアップロードしていきます

  • メニューから「スクリプトを作成」を選択

スクリーンショット 2019-12-02 1.15.43のコピー.png

  • スクリプト設定
    名前 : 任意で
    バージョン : 0.1.0とか

  • スクリプトコード
    スクリプトタイプ : Zipファイル
    Zipファイル : 作成したファイルを設定(zipに圧縮して)

  • 上記を設定し「送信」を押下、アップロードしていく

スクリーンショット 2019-12-02 1.35.00.png

フリートの作成

  • メニューから「フリートの作成」を選択
    スクリーンショット 2019-12-02 1.15.43のコピー2.png

  • フリートの詳細に設定する

  • 名前 : 任意の名前

  • スクリプト : 先ほど作ったスクリプト
    スクリーンショット 2019-12-02 1.29.15.png

  • インスタンスタイプはデフォルトのc5.large(その時の安いやつ選んでね)

  • 起動パス : 今回作成したスクリプトのパス

  • 同時プロセス数 : 任意(今回は10を指定)
    スクリーンショット 2019-12-02 1.33.30.png

  • 「フリートの初期化」を押下し、作成する
    ※少し時間がかかる。

エイリアスの作成

  • メニューから「エイリアスの作成」を選択
    スクリーンショット 2019-12-02 1.15.43のコピー4.png

  • フリートは先ほど作成したものを設定し、「エイリアスを設定」を押下
    (選択できない場合は作成に時間がかかってる場合があり、しばし待つ)

スクリーンショット 2019-12-04 11.46.51.png

アクセスするユーザーを作成

  • サービスからIAMを選択

  • まずはポリシーを作成する

  • ポリシーを選択し、「ポリシーの作成」を押下
    スクリーンショット 2019-12-02 17.50.52のコピー2.png

  • JSONを選択、下記の内容をポリシーに追加し「ポリシーの確認」を押下

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "gamelift:CreateGameSession",
                "gamelift:DescribeGameSessionDetails",
                "gamelift:CreatePlayerSession",
                "gamelift:SearchGameSessions"
            ],
            "Resource": "*"
        }
    ]
}
  • 名前 : 任意で
  • 「ポリシーを作成」を押下
    スクリーンショット 2019-12-02 18.13.48.png

  • GameLiftにアクセスするユーザーを作成していく

スクリーンショット 2019-12-02 17.50.52のコピー.png

  • ユーザー名 : 任意
  • アクセスの種類 : プログラムによるアクセスを選択
  • 次のステップへ進んでいく
    スクリーンショット 2019-12-04 12.16.30.png

  • 「既存のポリシーを直接アタッチ」を押下

  • 先ほどのポリシーを検索しチェック、アタッチする

スクリーンショット 2019-12-02 18.21.37.png

  • そのまま進み情報を確認し作成する
  • ユーザーを作成したらcsvをダウンロード スクリーンショット 2019-12-02 18.22.22.png

本日はここまで。次回につづく。

注意点

作成した

  • スクリプト
  • フリート
  • エイリアス

に関して使わないときは削除するようにしてください。
でないとお金がかかっちゃうので。

おわりに

明日は @e73ryo さんの
「MonKey - Productivity Commands」のカスタムコマンドでさらにUnity上の作業を効率化する」です!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1