VRMMOゲームが作りたい!
私はVRMMOゲームを制作しています。
現在は仕様を練っている所です。
今回の記事が、私と同様VRMMOゲームを作ろうとする人の役に立つ事を願います。
制作環境
まず、ゲーム制作環境ですが、Unityにて開発、steamへアップロードを想定しています。
これは、OpenVR SDKやsteamVR pluginを初めとした外部技術導入の容易さからです。
以下に私の使用する外部技術を挙げます。
OpenVR SDK:UnityゲームをVR対応にする為に用います。情報が少ないです。
steamVR Plugin:ゲームをVR対応にする為に用います。こちらはカメラや各種コントローラ入力を扱います。
steamworks SDK,API:課金やアップロードなどを扱います。クライアント・自分のサーバ・steam WEB APIサーバでやり取りします。
随時記事を更新作成します。
ログイン
次に、ログイン機能についてです。
ログインにおいてはクライアント、サーバ間のやり取りが必要となります。
参考までに、
クライアントから、IDとパスワード、アバター情報をサーバに送信します。
VRM-FBX-JSONは相互変換可能です。アバター情報をJSON形式化します。
-
クライアント:Unity及びPHPを用いてテキストデータ及びJSON形式データをHTTPにて送信
-
サーバ:nginxにてテキストデータを取得、PHPを介してテキストデータをMySQLへ格納
2.1 PHPにてアバターデータを取得、PHPを介してJSON形式データをMySQLへ格納
3.サーバ内でデータを照合します。ハッシュ化された値が正しいか確認。暗号化はダメです。復号されてしまうので。
4.データが正しい場合、PHPを介してサーバからクライアントへ照合完了を伝え、ログイン完了となります。
情報照合方法は改めて検討します。
また、細かな手続きについては都度記事を更新作成します。
アバター生成
JsonUtilityを用いて、MySQLから取り出したJSONをアバターに復元します。
90fpsの維持
1.クライアントは、Unity,C++を用いて、常時アバターの位置情報とアクション内容情報をJSON形式でUDPにてサーバに送信します。
同時に、サーバから情報を受け取った場合、空間情報を全て更新します。
2.サーバは、クライアントから受け取ったJSON情報を元に、各々、位置、アクション情報を更新します。
その後、更新したJSON情報をサーバ間で同期します。
最後に、同期された情報をクライアントへUDPにてJSON情報を送信します。
3.クライアントは受け取ったJSONデータを元に空間を再構成します。
これを1秒間に180回行います。UDP通信なので半分の通信は失敗する想定です。
細かな手続きは随時記事を作成更新します。
実験してみないと分からない事が多いです。
最後に
VRMMOゲームのシステムについて考えてみました。
一緒に作りたいという方は連絡下さい。作りましょう。
ご意見のある方がいらっしゃいましたら、アドバイスを下さい。
分からない事が多い為、情報提供頂けると助かります。
よろしくお願いします。