Я хотел бы создать многопользовательскую HTML5-игру в режиме полуреального времени, используя node.js и socket.io. Частота кадров составляет 3 кадра в секунду. Игроки используют клавиши со стрелками для перемещения. Все игровые объекты движутся по прямым линиям (игроки перемещаются по горизонтали или вертикали). Игроки нажимают Page Up / Down для ускорения / замедления. Это моя первая анимированная игра HTML5 и мой первый тяжелый проект на JavaScript.
Я прошел через руководство под названием «Создание многопользовательской игры в реальном времени с помощью WebSockets и Node.js» (щелкните здесь). В этом руководстве для каждого игрока отображается черный квадрат с перемещением клавиш со стрелками. К сожалению, он работает только на одном компьютере (но с несколькими вкладками браузера). Вы должны указать в своем браузере (ах) на файл public / index.html. Я хотел бы изменить его, чтобы я мог присоединиться к игре с другого компьютера в моей локальной сети, указав в моем браузере адрес 192.168.1.4:8000. В конце концов, я хотел бы, чтобы мой брат присоединился к нам, посетив 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.) Если кто-нибудь может указать мне правильное направление, я буду признателен. Спасибо.