Добавить мультиплеер к уже написанному javascript самолету против астероидов
Поэтому я хочу спросить, как начать добавлять многопользовательскую опцию для игры, в которую я могу играть только для себя на localhost. Я хочу сделать так, чтобы можно было играть 2-3-4-5 игроков на локальном сервере (собственный частный сервер, который я могу получить) и отслеживать очки. У меня есть игра, но скучно, если вы играете в нее самостоятельно (это был академический проект, и я хочу сделать его больше и добавить многопользовательскую опцию, чтобы мы все могли играть:))
Дело в том, что я хочу, чтобы это был чистый код javascript + узел js.... Это всего лишь проект, в котором я хочу научиться создавать код самостоятельно, чтобы я мог разрабатывать дальнейшие приложения.
Мне нужно, чтобы вы сказали мне: -Где начать -Что делать:)
-А как этого добиться:D
Итак: я хочу добавить мультиплеер (без анти-читов или какой-либо защиты)= минимальный мультиплеер для игры 1 раз только в классе (я думаю, это будет 1 раз)
-Заранее спасибо
1 ответ
Быстро и грязно
Игра будет разделена на две части. Клиент и сервер.
Клиент (общедоступный JS на стороне клиента) будет:
- Отправить данные на сервер о ваших действиях (кнопки)
- Получайте с сервера сообщения о состоянии игры и применяйте их к дисплею
Сервер (private / node.js / socket.io) будет:
- Управление клиентами
- Управление состоянием игры
- Трансляция игрового состояния клиентам
Вы можете думать об игре как о чате. Сервер принимает сообщения от клиентов и передает эти сообщения другим клиентам.
Когда вы загружаете игру, сервер принимает ваше соединение и добавляет вас в "комнату" в качестве клиента.
Когда вы выполняете действие от клиента, он отправляет запрос этого действия на сервер. Сервер проверяет, является ли запрос действительным, производит соответствующие обновления состояния игры и отправляет соответствующие данные обратно соответствующим клиентам.
Например, вы нажимаете кнопку, чтобы двигаться вверх. Ваш клиент отправляет запрос на сервер для продвижения вверх. Сервер проверяет вашу позицию и подтверждает, что вы можете двигаться вверх. Сервер обновляет ваши данные о местоположении. Сервер проверяет, какие другие клиенты будут затронуты вашими действиями (включая вашего клиента). Сервер отправляет эти данные указанным клиентам. Эти клиенты читают данные и применяют обновление дисплея (что ваш игрок переместился вверх).