質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

3648閲覧

ゲームの通信について

miiichat

総合スコア72

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

2クリップ

投稿2019/07/24 06:14

###初めに
いつもお世話になってます!!!

ちょっと前、オセロゲームのようなものを作ってみようと思ってやってたのですが難しくて断念。一か月放置してました。

ちょっとモチベーションが出てきたので質問。

私は通信制高校に通う17歳で、プログラミングは14歳から独学でやってます。

###わからないこと
オセロはunityで作ってwebsocketで通信しようとしてました。
サーバはnodeで作って自分のパソコンで遊んでました。
通信周りのことはほんとに何もわかりません。

socket.ioを使おうと思ってたんですけどunityじゃ使えなくて
WebSocketSharpとnpmのwsでやってました。

何の知識もない私が考えたやり方は

・1ルームふたり。
・とりあえず早い順で部屋を作る。このとき先攻後攻を決める。
・行動がサーバに届いたら結果をルーム全体に配る。

です。

###質問
・wsで特定のユーザだけにデータを送ることってできますか?

・ルームはどのようにすれば作れますか?
socket.ioだとたしかroomを作るやつがあったと思うんですが、wsじゃないみたいなので一か月前の自分は、
ルームメンバーに共通のidを持たせて、id+データを全員に渡すやり方で頑張ってました。
自分に関係するデータだけを拾うのってこれ以外にありますか?

・rails
apiサーバとnodeサーバがあり、
railsでルームを作って、その後の通信はwebsocketでするみたいなのをどこかで見ました。
これも試してみたいんですけど、作るとしたらどんな感じになりますか?

・2dアクションゲーム
一か月前に2dアクションをunityのLAN内通信機能でスマホとパソコンで同期するのも試してみて、
ものすごいカクカクしましたがちょっとできました。
これをインターネットを介して実現するにはどうすればいいですか?
私の浅薄な知識ではwebsocketとtcp通信とudp通信しか知りません。
websocket以外の二つはやったこともないです。

###コード
一か月前のルームを頑張って作ってた時のコード。
リンク内容

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

socket.ioを使おうと思ってたんですけどunityじゃ使えなくて

socket.io を Unity で使うためのライブラリがいくつかあるようです。

socket.io-unity
https://github.com/floatinghotpot/socket.io-unity

・wsで特定のユーザだけにデータを送ることってできますか?

ソケット ID を指定して、データを送信するというようなことは可能だと思います。

・ルームはどのようにすれば作れますか?
socket.ioだとたしかroomを作るやつがあったと思うんですが、wsじゃないみたいなので一か月前の自分は、
ルームメンバーに共通のidを持たせて、id+データを全員に渡すやり方で頑張ってました。
自分に関係するデータだけを拾うのってこれ以外にありますか?

ルームを作成するためのロビーサーバーを用意して、ルームメンバーを管理すれば良いかと思います。

・rails
apiサーバとnodeサーバがあり、
railsでルームを作って、その後の通信はwebsocketでするみたいなのをどこかで見ました。
これも試してみたいんですけど、作るとしたらどんな感じになりますか?

私もその情報を見てないので回答しづらいですが、ルームの作成やマッチングなどのロビー機能は Ruby on Rails で作って、それ以外のクライアント同士の通信は WebSocket でやるという感じではないでしょうか。

・2dアクションゲーム
一か月前に2dアクションをunityのLAN内通信機能でスマホとパソコンで同期するのも試してみて、
ものすごいカクカクしましたがちょっとできました。
これをインターネットを介して実現するにはどうすればいいですか?

通信自体は相手のIPアドレスさえ分かっていれば、LAN内通信と同様にできます。

一般的なオンラインゲームでは、通信相手を探す必要があるので、ロビーサーバーをインターネット上で公開していますね。

私の浅薄な知識ではwebsocketとtcp通信とudp通信しか知りません。
websocket以外の二つはやったこともないです。

WebSocket は TCP や UDP とは別レイヤーのプロトコルですので、比較するのはちょっとおかしい気がします。
WebSocket も内部では TCP を使っていますので。

投稿2019/07/27 07:44

nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問