- 第1回:レンタルサーバーからデータベース作成
- 第2回:PHPでデータベースを呼び出す
- 第3回:UnityからPHPを介して、データベースを表示する
近年のゲームは、オフラインゲームは減少しており、インターネットサーバーを使った、オンライン対戦ゲームが主流です。
オンライン対戦のみを追求するのであれば、「Photon」というアセットがUnityで使用できます。
※無料のプランでは20人までしか同時に接続できません。
Photon Unity Networking Classic – FREE
しかし、ゲームをオンラインにつなぐのは、ネット対戦だけではなく、サーバー上にあるデータベースをゲーム上で要求する機会もあるでしょう。
本記事では、サーバー上にあるデータをPHPで取得して、Unityと連携する方法を紹介します。
- UnityとPHPを連携したい。
- SQLクエリについて知りたい。
- phpMyAdminの使い方を知りたい。
- データベースの作り方を知りたい。
MySQL
MySQL(Structured Query Language)は、オープンソースのリレーショナルデータベース管理システム(RDBMS)です。
身近な使用例は、ブログ作成する「WordPress」や「YouTube」や「Twitter」、「Netflix (ネットフリックス)」など多くのデータベース駆動型アプリケーションで使用されています。
MySQLでは、データベースを作成、テーブル(表)を作成します。また、作成したテーブルにデータを挿入、更新、削除することができます。
これらの操作をするためには、次のようなコードを記入する必要があります。
・データベースの作成
CREATE DATABASE データベース名;
・データの挿入
CREATE TABLE テーブル名 (
列名1 データ型1,
列名2 データ型2,
...
);
・データの更新
UPDATE テーブル名
SET 列名 = 新しい値
WHERE 条件;
・データの削除
DELETE FROM テーブル名
WHERE 条件;
これらはあくまで基本的な操作なので、データベースを本格的に扱うのであれば、より高度なクエリやデータベース管理の操作が必要になります。
また、SQLはデータベース言語で、UnityやPHP、Pythonなどとは異なる言語なので、あまり馴染みがなくとっつきにくい言語でしょう。
データベース言語とは、データベースを操作するための言語です。SQLは、データベースに指示・操作を行うための言語であり、基本構文を組み合わせて処理を実行します。SQLの構文は国際標準化機構によって規格が標準化されています。
参考:SQLとは何か?IT初心者向けにわかりやすく解説します!
PHPAdmin
phpMyAdminは、MySQLデータベースをWebブラウザを通じて操作および管理するためのWebアプリケーションです。PHPで開発されており、オープンソースのプロジェクトとして提供されています。
phpMyAdminを使用すると、MySQLで行えるデータベースおよびテーブルの作成と管理をWebブラウザから実行することができます。同様にデータベースやテーブルの作成、変更、削除、コピーなどの操作が可能です。
最大の魅力は、MySQLのように、データベースやテーブルの作成、変更、削除の操作にプログラミングコードは不要で、インターフェースを介して行われます。
また、phpMyAdminはSQLクエリの実行もサポートしています。クエリエディタを使用してSQLクエリを作成し実行することで、データベースへのカスタムな操作やデータの抽出が可能です。
クエリについて紹介します。
クエリ(query)は引用にあるように、質問する、問い合わせるという意味です。
あまり聞きなれない単語かもしれませんが、質問を意味するクエッション(quetion)に関連する単語でしょう。(あくまで、私の見解)
また、クエリについて調べていると、同時に「クリエ」という言葉も目にします。
しかし、「クリエ」という言葉は存在しません。間違えやすいので、注意してください。上記のクエッションと同じと考えれば間違えることもないでしょう。
クエリとは、質問(する)、照会(する)、問い合わせ(る)、尋ねる、疑問、疑問符などの意味を持つ英単語。IT分野では、ソフトウェアに対するデータの問い合わせや要求などを一定の形式で文字に表したものを指すことが多い。
クエリ 【query】 クエリー
その他にも、MySQLデータベースにアクセスするためのユーザーアカウントを作成したり、既存のアカウントの権限を管理したりすること。
データベースのエクスポート(バックアップ)やインポート(復元)を行うことができます。
このように、phpMyAdminはWebブラウザを介して直感的にMySQLデータベースを操作および管理するための便利なツールとなっています。
ただし、phpMyAdminのセキュリティ設定に注意し、適切な認証やアクセス制御を行うことが重要です。
参考:「phpMyAdminとは何か?使い方やMySQLとの関係を学ぼう!」
思い通りのゲームが作れない
Unityでゲーム開発しているけど完成しない。
技術的な壁や知識不足が原因で、思い描いたゲームを実現するのは難しいです。
しかし、Udemyは動画で実践的なゲーム開発を解説していて、
購入した講座は再生・停止・スキップなどが可能なオンデマンド形式なので、
専門的な内容を自分のペースで学習できます。
Unityの機能を網羅したいや作りたいゲームがある人はUdemy学習を取り入れましょう。
数多くある講座の中から特におすすめな講座を3つ紹介します。
夏のビックセール開催中(9月17日まで)
対象のコースが1500円から(最大95%OFF)
Unityのはじめの一歩としておすすめ。開発例に物理挙動やアニメーションを使用しているので、今後の開発が円滑になる。
トランプを題材にした講座。カードゲームやボードゲーム開発に応用可能
UnityエンジンのインストールやC#の文法に加えて、App StoreとGoogle Playにゲームをリリース方法を解説。
容量不足を解消
Unityのプロジェクトは1.5GB~3.5GBと大きく、クリエイターはHDD・SSD増設が必要です。
価格 | 耐久性 | 静音性 | 読み書き | サイズ | |
HDD | 低 | 低 | 低 | 遅 | 大 |
SSD | 高 | 高 | 高 | 速 | 小 |
注目点は、HDDは安価だけど壊れやすい。SSDは丈夫だけど高価。
したがって、データの持ち運びをしない場合はHDD、持ち運びする場合はSSDがおすすめです。
- 据え置きHDD
- 外付けSDD
- 内蔵SSD
ぜひ、あなたのクリエイティブな作業環境に兼ね備えたストレージをお役立てください。
レンタルサーバーからデータベース作成
ここまで、SQLの紹介をしてきました。
ここからは、データベースを作成していきます。
前述したようにデータベース、テーブルの作成は、通常PCにMySQLをインストールして構成していきます。
しかし、レンタルサーバーからPHPAdminにアクセスすれば、プログラミングコードを使う必要なく、データベースを作成することができます。
レンタルサーバーは、インターネット上にWebサイトを公開するために必要なサーバーをレンタルするサービスです。
レンタルサーバーの利用は月額1000円程度料金が発生しますが、自分でサーバーを用意する手間が省けて、手軽にWebサイトを公開することができるので、ブログやウェブサイト運営には必要なものになります。
自分でサーバーを作成、管理することもできますが、電気を常に通電する必要があるので、月に数千円以上の電気代がかかります。
自分だけの小規模でサーバーを管理するならば、自力でサーバーを運営するよりもレンタルサーバーを契約する方がコスパは高いです。
さらに、1年契約、3年契約と年数を増やせば、月額600円程度で利用できてお得になります。
おすすめは1年間(1万円程度)運用して、続ける意志があれば長期契約をしてみてください。
レンタルサーバー
本記事で紹介する際に使用するレンタルサーバーは、「Conoha WING」です。
「ConoHa WING」は、東証一部上場企業であるGMOが運営するレンタルサーバーで、非常に信頼性も高いので、おすすめです。
当ウェブサイトも本レンタルサーバーで運営をしています。
ただし、このサーバーではなくてもPHPAdminやMySQLでデータベースを作成できます。
各レンタルサーバーで画面が違いますが、同じような操作ができると思います。
データベース作成
初めに、契約しているレンタルサーバーの管理画面にログインしてください。
ログイン後、データベースにアクセスしてください。
「ConoHa」の場合は、サイト管理内、データベースを選択してください。
データベースを作成していきます。
「+ データベース」を選択します。
それぞれ、「データベース名」と「ネームタグ」を指定します。
赤枠で囲ったところが次回のPHPから呼び出すときに必要になる情報です。
この情報が流出すると、乗っ取りやユーザーの情報を知られてしまうので、厳重に保管してください。
つづいて、「+ユーザー」で接続先のデータベースを連動させます。
接続先データベースを「Unity_Test」と先ほど作成したデータベースにしてください。
ユーザー名とパスワードが「phpMyAdimin」にログインするために必要な情報です。先ほど同様に大切に管理してください。
パスワードは「Al&&icIAiNg?」みたいな感じで「小文字、大文字、記号」を複雑に混ぜあわせて特定されないようにしてください。
ただし、例に出したパスワードは、あまりに複雑にしすぎて自分も分からなくなってしまうのは、本末転倒ですので、自分のみが分かる法則で設定するのが良いでしょう。
※例では自分のハンドルネームを入れていますが、入れない方が得策です。
phpMyAdiminでテーブル作成
ユーザーを保存後、管理ツールの外部リンク「phpMyAdmin」にアクセスしてください。
ログインには、ユーザ名とパスワードを要求されますので、先ほど設定したものを入力してください。
ログイン後、データベース名「xxx_alicia_unity」をクリックすると、テーブルを作成できます。
名前「test」を入力し、カラム数「3」と各自で設定してください。
実行後、テキストボックスが表示されますので、入力していきます。
カラムを3つと設定しましたが、全て入力しなくてもよいです。入力されなかった場合は自動的にカラムを削除してくれます。
今記事では、以下のテーブル(表)のように作成しました。
名前 | データ型 | 長さ | デフォルト値 |
name | VARCHAR(文字列) | 100 | – |
number | INT(整数) | – | 0 |
「VARCHAR」とは、データベースのフィールド定義などで用いられるデータ型の一つで、可変長の文字列を意味するデータ型です。
VARCHARカラム内の値は可変長の文字列で、長さは0から65535までの値で指定できます。指定された分だけメモリに格納されるため、効率が良いですが、値ごとに違うため、処理は遅く不定です。
同じ文字列関係のデータ型「Char型」がありますが、文字数が固定のため、処理が早く一定ですが、文字数が必ず定まった分格納されてメモリを圧迫しやすいです。
値を入力
作成したテーブルを保存しましたら、値を入力していきます。
値のテキストボックスに、「Apple」、「Banana」と入力します。
入力し、実行するとコードのような画面に移動します。
これは、データベーステーブルであるtestに新しい行を挿入するSQLクエリです。
nameとnumberの2つの列を持つtestテーブルに、2つの行を挿入します。
INSERT INTO `test` (`name`, `number`) VALUES ('Apple', '0'), ('Banana', '0');
MySQLを作成するときは、このクエリを自分自身で書く必要がありますが、「phpMyAdmin」を使えば、簡単に挿入できます。
GUI(グラフィカルユーザーインターフェース)を使用して行を挿入して操作しましたが、これぐらいなら自分で書いた方が早いと考える人もいるかと思います。
この場合でも、phpMyAdminは対応しています。
SQL項目にて、クエリを入力すれば、挿入することができます。
INSERT INTO `test` (`name`, `number`) VALUES ('Grape', '0');
このクエリを実行すると、追従して行を追加できます。
表示の項目を確認すると、「Apple」・「Banana」・「Grape」の行が作成されます。
まとめ
今回は、WordPressでおなじみのレンタルサーバー(当サイトで使用中)の「Conoha」から「phpMyAdmin」にアクセスしてデータベースを作成しました。
本来、データベースを作成するにはSQLクリエを書く必要があります。
しかし、「phpMyAdmin」を使用すれば、データベースをGUI操作でノーコード構築できます。
また、GUIを使用せずとも、自分自身でSQLを書くことができます。
次回>>PHPからデータベースを呼び出す
本記事で、データベースの作成まで完了しました。
次回は、PHPを使用してデータベースと接続して数値と名前を表示します。
次々回>>Unityでデータベースを呼び出す
第1回(本記事)では、PHPAdminでデータベースのテーブルを作成しました。
第2回では、FTPソフトで自身のサーバーにPHPをアップロードして、データベースにアクセスしました。
第3回では、URLからアクセス可能になったデータベースを使って、Unityからデータベースを呼び出します。