Сокеты, node.js - как реализовать состояние комнаты
Пытаюсь сделать небольшую онлайн игру в браузере. Коротко: играют живые люди между собой, в игре несколько комнат на 2 и более человек. Самое очевидное, что приходит в голову: создать объект, в котором хранить состояние всех комнат и когда игрок совершает действие - менять состояние. Миллион раз слышал, что нельзя создавать глобальные переменные. Это понятно, но непонятно как иначе можно реализовать то, что мне нужно.
Ответы (2 шт):
Очень интересно
объект, в котором хранить состояние всех комнат и когда игрок совершает действие - менять состояние. (это состояние должно быть у всех обновлено, если объект один то должен быть оговорен доступ к нему всем учасникам). Одним словом писать многопользовательскую игру с глобальным состоянием не самая простая задача. Начните с двух игроков одного состояния. Думаю вы увидите очевидные проблемы
Если список комнат у вас не статический а динамический, лучше сделать каждую комнату отдельным объектом в БД со своим состоянием. Скорей всего пользователю список комнат нужен не всегда и не весь полностью. Соответственное можно его частично подгружать по необходимости.