Help us understand the problem. What is going on with this article?

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

はじめに

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上の作業を効率化する」です!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした