オンライン対戦ゲームを作る ( Node.js + Socket.io )
Node.js と Socket.io を用いて、オンライン対戦ゲームを作成する方法を解説します。
ゲームとしては、戦車対戦ゲームを作ります。
使用開発環境は、以下です。
Node.js : version 8.12.0
Express : version 4.16.4
Socket.io : version 2.2.0
01.ゲームの骨格を作る | |
オンライン対戦のタンクゲームを作っていきます。まず、オンライン対戦ゲームの骨格を作ります。 デモ(Google App Engine):https://online-battle-tanks.an.r.appspot.com/index01.html デモ(Heroku):https://online-battle-tanks-22-cf6589d25849.herokuapp.com/index01.html |
02.プレーヤの操作で移動するタンクの追加 | |
プレーヤーの操作で移動するタンクを追加します。 デモ(Google App Engine):https://online-battle-tanks.an.r.appspot.com/index02.html デモ(Heroku):https://online-battle-tanks-22-cf6589d25849.herokuapp.com/index02.html |
03.タンクの移動を妨げる壁の追加 | |
タンクの移動を妨げる壁を追加します。また、タンクがフィールドの外へ移動できないようにもします。 デモ(Google App Engine):https://online-battle-tanks.an.r.appspot.com/index03.html デモ(Heroku):https://online-battle-tanks-22-cf6589d25849.herokuapp.com/index03.html |
04.プレーヤーの操作でタンクから発射される弾丸の追加 | |
プレーヤーの操作でタンクから発射される弾丸を追加します。 デモ(Google App Engine):https://online-battle-tanks.an.r.appspot.com/index04.html デモ(Heroku):https://online-battle-tanks-22-cf6589d25849.herokuapp.com/index04.html |
05.弾丸を当てられたタンクはライフが減り、当てたタンクは得点を得る | |
弾丸を当てられたタンクはライフが減り、当てたタンクは得点を得るようにします。 デモ(Google App Engine):https://online-battle-tanks.an.r.appspot.com/index05.html デモ(Heroku):https://online-battle-tanks-22-cf6589d25849.herokuapp.com/index05.html |
06.ニックネームを入力するスタート画面の追加 | |
ニックネームを入力するスタート画面を追加します。 デモ(Google App Engine):https://online-battle-tanks.an.r.appspot.com/index06.html デモ(Heroku):https://online-battle-tanks-22-cf6589d25849.herokuapp.com/index06.html |
07.自動で動くボットタンクの追加 | |
自動で動くボットタンクを追加します。 デモ(Google App Engine):https://online-battle-tanks.an.r.appspot.com/index07.html デモ(Heroku):https://online-battle-tanks-22-cf6589d25849.herokuapp.com/index07.html |
08.自タンクを常に画面中央に表示 | |
自タンクが画面中央に来るように表示します。 デモ(Google App Engine):https://online-battle-tanks.an.r.appspot.com/index08.html デモ(Heroku):https://online-battle-tanks-22-cf6589d25849.herokuapp.com/index08.html |
09.ゲームフィールドの全部ではなく一部を表示 | |
ゲームフィールドの全部ではなく一部を表示するようにします。 ゲームフィールドの全部ではなく一部を表示するときには、サーバーからクライアントへの「ゲーム内に存在しているもの」の送信は、すべてではなく、「各クライアントの画面内に位置するもの」を送信します。 デモ(Google App Engine):https://online-battle-tanks.an.r.appspot.com/index09.html デモ(Heroku):https://online-battle-tanks-22-cf6589d25849.herokuapp.com/index09.html |
10.スマートフォンへの対応 | |
スマートフォンに対応します。 タッチ操作でも操作できるようにします。 デモ(Google App Engine):https://online-battle-tanks.an.r.appspot.com/index10.html デモ(Heroku):https://online-battle-tanks-22-cf6589d25849.herokuapp.com/index10.html |
参考
- 使うのはJavaScriptとNode.jsだけ!30分で3Dオンライン対戦ゲームを作って公開してみた - paiza開発日誌
- How To Build A Multiplayer Browser Game (Part 1) – Hacker Noon