8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

8
1
0

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
  3. You can use dark theme
What you can do with signing up
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?