Делаю игру на pixijs+socketio. И возникла проблема, что игра очень уязвима.
Сначала приведу самые уязвимые места в коде, а потом обьясню.
# создание игрока и как я его перемещаю по карте
class Player{
constructor(){...}
move(x,y){
player.setTransform(x,y)
}
}
##########################
##########################
$("#move").on("click",function(){
self.player.move(transformpos.x,transformpos.y)
# эта функция выделяет создает поле радиусом 3х3 на карте(пошаговая игра) по которому игрок может передвигаться
# притом функция создает
#кликабельные( rectangle.on("mousedown",function(){...... self.player.move() } ) ) квадраты,
#при нажатии на которые игрок перемещается к нему
actionzones= calcualteAviableZones("move",zone,3,map);
}
#########################
## отправка данных о перемещении игрока
$("#apply").on("click",function(){
self.socket.emit('playerMovement', {
x:self.player.circle.transform.position.x,
y: self.player.circle.transform.position.y,
prevPos:self.player.prevPos
});
}
});
При помощи утилиты как Resource Override клиент может изменить код. Какие меры можно принять для того чтобы код был безопаснее?
И вот не могу выделить основные действия для достижения цели.
Можно было бы перенести просчет зон на сервер, но ведь всё равно надо будет создавать кликабельные квадраты где будет self.player.move() и снова можно будет применить Resource Override.
Самой главной проблемой мне кажется перемещение игрока, но ведь при перемещении игрока по любому клиент может получить эти данные. Тогда нужно реализовать перемещение с помощью сервера или как?
Знаю что, возможно, спрашиваю про элементарные вещи, но делаю проект такого рода впервые