node.js と socket.io を使用してマルチプレイヤー HTML5 セミリアルタイム ゲームを作成したいと考えています。フレームレートは3fps。プレイヤーは矢印キーを使用して移動します。すべてのゲーム オブジェクトは直線で移動します (プレイヤーは水平または垂直に移動します)。プレイヤーは Page Up/Down を押して加速/減速します。これは私の最初のアニメーション化された HTML5 ゲームであり、最初の負荷の高い JavaScript プロジェクトです。
「Creating a real-time multiplayer game with WebSockets and Node.js」(ここをクリック) というチュートリアルを実行しました。このチュートリアルでは、矢印キーの動きで各プレーヤーに黒い四角が表示されます。残念ながら、1 台のコンピューターでしか機能しません (ただし、複数のブラウザー タブ)。ブラウザで public/index.html ファイルを指定する必要があります。ブラウザで 192.168.1.4:8000 を指定して、LAN 上の他のコンピュータからゲームに参加できるように変更したいと思います。最終的には、myquadrawebsite.com にアクセスして弟に参加してもらいたいと思っています。Apache のポート フォワーディングの方法は知っていますが、node.js は知りません。チュートリアルの要約された高レベル コードの 3 つのスニペットを次に示します。
// public/index.html
<script src="http://localhost:8000/socket.io/socket.io.js"></script>
<script src="js/game.js"></script>
<script> // Initialise the game
init();
animate();
</script>
// game.js
var io = require("socket.io");
var socket, players;
function init() {
players = [];
socket = io.listen(8000);
setEventHandlers();
};
var setEventHandlers = function() {
socket.sockets.on("connection", onSocketConnection);
};
function onSocketConnection(client) {
util.log("New player has connected: "+client.id);
client.on("new player", onNewPlayer);
};
// public/js/game.js
var remotePlayers, localPlayer, socket;
function init() {
localPlayer = new Player(startX, startY);
socket = io.connect("http://localhost", {port: 8000, transports: ["websocket"]});
remotePlayers = [];
setEventHandlers();
};
var setEventHandlers = function() {
socket.on("connect", onSocketConnected);
socket.on("new player", onNewPlayer);
};
node.js と socket.io に関する他のチュートリアルを高低で検索しましたが、これまでのところどれも役に立ちませんでした。(私の長期的な目標は、HTML5 ゲーム開発フレームワークを作成することです。) 誰かが私を正しい方向に向けることができれば、感謝します。ありがとう。