LoginSignup
4
4

More than 3 years have passed since last update.

VRMMOゲーム開発:要点

Last updated at Posted at 2019-07-27

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形式化します。

  1. クライアント:Unity及びPHPを用いてテキストデータ及びJSON形式データをHTTPにて送信

  2. サーバ: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ゲームのシステムについて考えてみました。

一緒に作りたいという方は連絡下さい。作りましょう。

ご意見のある方がいらっしゃいましたら、アドバイスを下さい。

分からない事が多い為、情報提供頂けると助かります。

よろしくお願いします。

4
4
2

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
4
4