Задать вопрос
Egorian
@Egorian

Как реализовать игровые комнаты в игре?

Сейчас у меня есть 2D tds шутер для браузера. На сервере нода, для физики использую 2D движок MatterJs. Сейчас реализованы простые механики: синхронизация движений игроков, стрельба, магазин.
На данный момент код сервера имеет такую структуру:
var gameObjects={players:{},walls:{},bases:{}}; // здесь хранится инфа о игроках и других объектах
// launch game cycle
    setInterval(function(){
        Matter.Engine.update(engine, engine.timing.delta); //обновление физики
    },1000/60)
io.on('connection', function (socket) {
socket.player=createPlayer(socket);
socket.on("....",function(){});
socket.on("....",function(data){});
socket.on("....",function(data){});
socket.on("....",function(data){});
socket.on("....",function(data){});
socket.on("....",function(data){});
});

И вот вопрос. Как реализовать комнаты(сессии)? Придумал такой вариант:
var rooms=[
    {players:{},walls:{},bases:{},engine:setInterval(...,1000/60)},
    {players:{},walls:{},bases:{},engine:setInterval(...,1000/60)},
    {players:{},walls:{},bases:{},engine:setInterval(...,1000/60)}
]

Допустим, что в одной комнате может быть maxN игроков, если N игроков > maxN, то закидывать в следующую комнату.

И один вопрос не по теме. Надо ли как-то распределять нагрузку на сервер? Потоки и т.д?
  • Вопрос задан
  • 54 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Бэкенд на Node.js для фронтенд-разработчиков
    3 месяца
    Далее
  • Skillbox
    Node.js
    2 месяца
    Далее
  • Stepik
    Microservices - паттерны и практика построения микросервисов
    1 неделя
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы