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, то закидывать в следующую комнату.

И один вопрос не по теме. Надо ли как-то распределять нагрузку на сервер? Потоки и т.д?
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы