ゲーム開発
Unity
UnrealEngine
C++
Blender
Houdini
ゲーム数学
ゲームAI
グラフィックス
サウンド
アニメーション
GBDK
制作日記
IT関連
ツール開発
フロントエンド関連
サーバサイド関連
WordPress関連
ソフトウェア設計
おすすめ技術書
音楽
DTM
楽器・機材
ピアノ
ラーメン日記
四コマ漫画
その他
おすすめアイテム
おもしろコラム
  • ゲーム開発
    • Unity
    • UnrealEngine
    • C++
    • Blender
    • Houdini
    • ゲーム数学
    • ゲームAI
    • グラフィックス
    • サウンド
    • アニメーション
    • GBDK
    • 制作日記
  • IT関連
    • ツール開発
    • フロントエンド関連
    • サーバサイド関連
    • WordPress関連
    • ソフトウェア設計
    • おすすめ技術書
  • 音楽
    • DTM
    • 楽器・機材
    • ピアノ
  • ラーメン日記
    • 四コマ漫画
      • その他
        • おすすめアイテム
        • おもしろコラム
      1. ホーム
      2. 20201105_01

      【Unity】第一回 ソーシャルゲームを作る 〜サーバの環境構築〜【AWS × Laravel】

      UnityLaravelサーバサイド関連AWSソーシャルゲーム
      2020-11-06

      マイケル
      マイケル
      さあソシャゲ作るぞ〜〜〜!!!
      エレキベア
      エレキベア
      相変わらず唐突クマね・・・。
      そもそもソシャゲって何クマか
      マイケル
      マイケル
      ソシャゲの定義も曖昧なところではあるけど、

      • クライアント、サーバで連携しDB管理を行なっている
      • ログイン、ガチャ等基本機能を備えている


      システムを作ってみようと思っているよ!

      エレキベア
      エレキベア
      なるほどクマ・・・。
      確かにそこまで作れたら楽しそうクマ
      マイケル
      マイケル
      サーバとの連携周りを習得したらいろいろと応用が効きそうだしね!
      さっそくやっていこう!!
      エレキベア
      エレキベア
      クマ〜〜〜〜〜〜

      参考書籍

      マイケル
      マイケル
      開発を進めるにあたって、
      参考にした書籍はこちらになります!

      エレキベア
      エレキベア
      ちょうどいいのがあったクマね
      マイケル
      マイケル
      うん!
      だけどレビュー見たら分かる通り、DB周りの話が多く、
      エンジニア向けの内容になっているので注意です・・・。
      エレキベア
      エレキベア
      ソシャゲの特性上仕方ないクマね〜〜
      マイケル
      マイケル
      しかし、これをクリアした頃にはかなりスキルの幅は広がっているはず!
      一緒にがんばっていきましょう!!
      エレキベア
      エレキベア
      なんでもかかってくるクマ!!

      全体構成

      マイケル
      マイケル
      ざっくりとした全体構成はこんな感じです!


      [サーバ側]
      フレームワーク:Laravel (PHP)
      データベース:MySQL


      [クライアント側]
      フレームワーク:Unity (C#)
      データベース:SQLite

      マイケル
      マイケル
      クライアントはお馴染みのUnity!
      サーバ側ではLaravelというPHPフレームワークを使用します!
      エレキベア
      エレキベア
      なんでクライアント側にもデータベースがあるクマ??
      マイケル
      マイケル
      ログイン情報や課金情報などゲーム全体に関わるデータはサーバ側
      ソート順などクライアントの依存する情報はクライアント側
      に保存するようなイメージだよ!
      エレキベア
      エレキベア
      なるほどクマ
      それぞれ管理するべきデータがあるクマね
      マイケル
      マイケル
      サーバに関しては、XServerロリポップ!などいろいろな種類があるけど、
      今回は書籍の例に沿ってAWS(Amazon Web Service)を使って環境を構築しようと思うよ!
      エレキベア
      エレキベア
      最近流行りのやつクマね
      マイケル
      マイケル
      仕事でもなかなか触る機会がないから使ってみたかったんだよね。
      PHPも書いたことないから初めてのことだらけだぜ!
      エレキベア
      エレキベア
      (書いたことなかったクマか・・・。)
      マイケル
      マイケル
      とにかく何事も挑戦あるのみだ!!
      さっそく環境を構築してみよう!
      エレキベア
      エレキベア
      クマ〜〜〜〜〜〜〜

      サーバサイド環境構築

      マイケル
      マイケル
      長編の企画になりそうですが、
      今回は第一回ということで、サーバ側の環境構築を行なっていきます!
      エレキベア
      エレキベア
      楽しみクマ〜〜〜〜〜
      マイケル
      マイケル
      まずはサーバを準備するために、下記よりAWSアカウントを作成しましょう!


      AWS 公式サイト


      Screenshot 2020 11 05 0 35 08

      ↑AWS公式サイト
      マイケル
      マイケル
      現在、12ヶ月間は無料で使用できる無料枠があるようなので、
      少なくとも個人で勉強する分には無料で使用できそうです。
      エレキベア
      エレキベア
      太っ腹クマね〜〜〜〜

      サーバ環境設定

      ・EC2インスタンスの作成
      マイケル
      マイケル
      アカウントを作成したら、サーバを準備していきましょう。
      EC2を選択して、インスタンスを起動よりEC2インスタンスを作成しましょう!

      ↑EC2インスタンスの作成
      マイケル
      マイケル
      無料枠の中から選んで、今回は下記の設定で作成しました!


      プラットフォーム:Amazon Linux
      インスタンスタイプ:t2.micro


      ↑インスタンスの設定
      マイケル
      マイケル
      なお、途中でキーペアの作成を促されますが
      後々SSH接続するために使用するため、忘れず保存しておきましょう!
      エレキベア
      エレキベア
      秘密鍵ってやつクマね
      マイケル
      マイケル
      そしてHTTP接続するために、
      セキュリティグループ -> インバウンドルール
      の設定よりポートを開けておきましょう!
      エレキベア
      エレキベア
      準備完了クマ〜〜〜〜〜〜
      ・SSH接続
      マイケル
      マイケル
      サーバを準備したらSSH接続ができるか試してみましょう!
      先ほど保存したキーペアを使用して下記コマンドを実行します!
      chmod 600 【SSH鍵のパス】
       ↑パーミッションの設定
      ssh -i 【SSH鍵のパス】 ec2-user@【EC2エンドポイント】
       ↑SSH接続
      マイケル
      マイケル
      こんな感じでログインできればOKです!
      エレキベア
      エレキベア
      簡単に準備できたクマ〜〜〜〜
      ・ライブラリのインストール
      マイケル
      マイケル
      SSHで接続した後、必要なライブラリを準備しておきましょう!
      マイケル
      マイケル
      下記コマンドで、ApacheMySQLをインストールしましょう!
      sudo yum -y install httpd
      sudo yum -y install mysql
      ↑ApacheとMySQLのインストール
      マイケル
      マイケル
      インストールしたら下記コマンドでApacheを起動後、
      http://【サーバのIPアドレス】
      にアクセスしてみましょう!
      sudo service httpd start
      ↑Apacheの起動
      マイケル
      マイケル
      上記のようなテストページが表示されれば導入はバッチリです!
      エレキベア
      エレキベア
      なんとかできたクマ〜〜〜〜〜

      DB環境設定

      ・RDSの作成
      マイケル
      マイケル
      サーバの環境設定が完了したら、次はDB環境の設定です!
      AWSのページでRDSを選択し、データベースを作成ボタンより
      DBの作成を行いましょう!

      ↑データベースの作成
      マイケル
      マイケル
      こちらも無料枠を使用し、作成情報は下記の通り!
      また途中で入力するユーザとパスワードはDBのログインに使用するので
      メモをしておきましょう!


      エンジン:MySQL Community

      マイケル
      マイケル
      DBを作成したら、サーバの時と同様
      セキュリティグループ -> インバウンドルール
      より、「MYSQL/Aurora」のポートを開けておきましょう!
      エレキベア
      エレキベア
      DBも完了クマ〜〜〜〜〜〜!!
      ・DBアクセス
      マイケル
      マイケル
      作成が完了したら下記コマンドで接続とデータベース作成を試してみましょう!
      mysql -h 【DBエンドポイント】 -P 3306 -u【ユーザ名】 -p
      ↑MySQL接続
      CREATE DATABASE 【データベース名】
      SHOW DATABASES;
      ↑データベース作成、表示
      マイケル
      マイケル
      こんな感じで実行できれば設定はオーケーです!
      エレキベア
      エレキベア
      なんとかDBまでできたクマね

      PHP環境設定

      マイケル
      マイケル
      最後にPHPとフレームワークの導入を行いましょう!
      エレキベア
      エレキベア
      あと一息クマね
      ・PHPの導入
      マイケル
      マイケル
      まずはPHPをインストールしましょう!
      ここではLTS版として提供されているバージョン7.2を
      「amazon-linux-extras」経由でインストールします!
      sudo amazon-linux-extras install php7.2
      マイケル
      マイケル
      これでPHPの導入は完了ですが、
      「php-mbstring」等、一部ライブラリが足りずにLaravelの実行ができないため、
      下記コマンドで不足ライブラリをインストールしましょう!
      yum list | grep php
      sudo yum install php-mbstring.x86_64
      sudo yum install php-xml
      マイケル
      マイケル
      インストール後は、サーバーを再起動させておきましょう!
      詳細は、下記のサイトがわかりやすくまとまっていたのでご参照ください。


      参考:
      Amazon linux2でphp-mbstring有効化

      エレキベア
      エレキベア
      次はLaravelクマ〜〜〜〜
      ・Laravelの導入
      マイケル
      マイケル
      PHPを導入したらフレームワークのLaravelを導入します!
      LaravelはPHP管理パッケージのComposer経由で使用するため、
      下記コマンドでComposerをインストールします!
      curl -sS https://getcomposer.org/installer | php
      sudo mv composer.phar /usr/local/bin/composer
       ↑Composerのインストール
      マイケル
      マイケル
      Composerをインストールしたら、下記コマンドでLaravelのプロジェクトを作成してみましょう!
      マイケル
      マイケル
      作成したいプロジェクト名と、Laravelのバージョン(例:5.5、6.0など)を指定しましょう。
      cd /var/www/html
      composer create-project --prefer-dist laravel/laravel 【プロジェクト名】 【Laravelバージョン】
       ↑Laravelプロジェクトの作成
      マイケル
      マイケル
      そしてHTTPでのデフォルトの接続をLaravelプロジェクトにするため、
      /etc/httpd/conf 配下にある、
      hotted.conf 内の下記部分を修正・追加しましょう!
      #DocumentRoot "/var/www/html"
      DocumentRoot "/var/www/html/【プロジェクト名】/public"
      <Directory "/var/www/html/【プロジェクト名】/public">
          AllowOverride All
      </Directory>
      マイケル
      マイケル
      それからもう一つ、プロジェクト配下に作成された「.env」ファイルの
      下記DB情報に、作成したDB名やユーザ・パスワードを設定しましょう!
      DB_CONNECTION=mysql
      DB_HOST=【DBエンドポイント】
      DB_PORT=3306
      DB_DATABASE=【DB名】
      DB_USERNAME=【ユーザ名】
      DB_PASSWORD=【パスワード】
      エレキベア
      エレキベア
      これでプロジェクトにつながるようになったクマね
      マイケル
      マイケル
      その通り!
      下記コマンドでApacheを再起動して
      http://【サーバのIPアドレス】
      にアクセスしてみましょう!
      sudo service httpd restart
       ↑Apacheの再起動
      マイケル
      マイケル
      上記のようなLaravelのページが表示されれば導入は完了です!
      エレキベア
      エレキベア
      ついにプロジェクトができたクマ〜〜〜!
      マイケル
      マイケル
      うまく表示されない場合はPHPのパッケージ周りや、httpd.confの設定を見直してみましょう!

      おわりに

      マイケル
      マイケル
      というわけで今回はサーバ側の環境構築だったけどどうだったかな?
      エレキベア
      エレキベア
      サーバと聞くと難しそうクマが、
      数クリックでサーバ立ち上げまでできて完了だったクマ!
      マイケル
      マイケル
      そのへんはさすがAWSだよね!
      個人だとなかなかサーバ環境まで設定したりしないから新鮮だったね!
      マイケル
      マイケル
      しかし続きはLaravelの基本的な使い方を勉強してから進めたいと思います・・・。
      エレキベア
      エレキベア
      PHPも触ったことないんじゃさすがに厳しいクマね
      でも何にせよ楽しみクマね
      マイケル
      マイケル
      まあ、気長にやっていこう!
      それでは今日はこの辺で!アデュー!!
      エレキベア
      エレキベア
      クマ〜〜〜〜〜

      【Unity】ソーシャルゲームを作る 〜サーバの環境構築〜【AWS × Laravel】 〜完〜


      UnityLaravelサーバサイド関連AWSソーシャルゲーム
      2020-11-06

      関連記事
      【Unity】Timeline × Excelでスライドショーを効率よく制作する
      2024-10-31
      【Unity】Boidsアルゴリズムを用いて魚の群集シミュレーションを実装する
      2024-05-28
      【Unity】GoでのランキングAPI実装とVPSへのデプロイ方法についてまとめる【Go言語】
      2024-04-14
      【Unity】第二回 Wwiseを使用したサウンド制御 〜インタラクティブミュージック編〜
      2024-03-30
      【Unity】第一回 Wwiseを使用したサウンド制御 〜基本動作編〜
      2024-03-30
      【Unity】第二回 CRI ADXを使用したサウンド制御 〜インタラクティブミュージック編〜
      2024-03-28
      【Unity】第一回 CRI ADXを使用したサウンド制御 〜基本動作、周波数解析編〜
      2024-03-28
      【Unity】サウンドミドルウェアに依存しない設計を考える【CRI ADX・Wwise】
      2024-03-27