Я хотел бы создать многопользовательскую игру HTML5 полу-реального времени, используя node.js и socket.io. Частота кадров составляет 3 кадра в секунду. Игроки используют клавиши со стрелками для перемещения. Все игровые объекты перемещаются по прямым линиям (игроки перемещаются горизонтально или вертикально). Игроки нажимают Page Up/Down для ускорения/замедления. Это моя первая анимированная игра HTML5, и мой первый проект JavaScript с тяжелой нагрузкой.Многопользовательская игра HTML5 полу-реального времени, node.js/socket.io
Я прошел учебник под названием «Создание многопользовательской игры в режиме реального времени с помощью 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.) Если кто-то может указать мне в правильном направлении, я был бы признателен. Благодарю.
Могу я предложить посмотреть в движок Unity Game? Повторное создание того, что уже создано, часто может быть легкой ошибкой. –