WebGL+Node.js+socket.ioで3Dマルチプレイ開発の課題に取り組みました。

 暑さが近づいてきたと感じる今日この頃、皆様、どうお過ごしでしょうか?
チーム・タンドリーの北山です。

本日、社内研修にて
  • WebGL
  • Node.js
  • socket.io
上記を用いて、3D空間内でマルチプレイを行う課題に取り組みました。

今回の「マルチプレイ」とは複数のユーザーが同時に、そのアプリやソフトに対して別々のブラウザや端末で表示して、操作する事ができるものを指します。

そして今回はローカルサーバーをNode.jsとsocket.ioで準備し、そこでプレイヤーを管理する仕組みの開発に取り組みました。

JavaScriptはクライアント側で機能する言語ですが、これをサーバサイドで機能するようにしたものがNode.jsで、JavaScriptでサーバ開発などに用いられます。

そしてsocket.ioは、リアルタイムなWebアプリケーションを開発する為に用いられるJavaScriptのライブラリで、socket.ioはリアルタイムなチャットアプリなどの開発に用いられています。

それらをWebGLに活用する事で複数名のプレイヤーが各々のアバターを操作しつつ、それが画面上に同時に描画される状況を作るのが今回の課題です。

現時点での完成度は以下の画像の状態になります。




今回のアバターはカプセルです。

赤色が、自分自身が操作しているアバターです。
そして青色が他人が操作しているアバターです。

別々のブラウザに課題を出力し、そして並べて撮影しています。
この状態で移動させることができます。

以下は動画になります。



ただ、現時点では再読み込みをしたり、ブラウザを閉じてもアバターの情報が消えずに残ったままになっています。
右下のカプセルが残ったままのアバターです。

次回はF5キーを押した後に再読み込みした後や、ブラウザを閉じたら、自分が操作しているアバターを削除する機能を実装する予定です。

ここまでご一読いただきまして誠にありがとうございました。
是非、次回もご一読いただけますと幸いです。



現在
株式会社チョモランマ
株式会社シェルパ
3Dmodeljapan株式会社
ではスタッフを大募集しております!!
UNITY、Unreal Engine4、AI、プログラミングや建築パースに興味がある方!
ぜひご応募下さい!!
初心者の方、未経験の方やインターンを受けてみたい方々でも大歓迎です!!


〔企画運営〕株式会社シェルパ 
公式HP https://sherpa-cg.com/
〒810-0042
福岡県福岡市中央区赤坂1丁目13-10赤坂有楽ビル7F
tel 092-717-6800 / fax092-717-6801 




コメント