Как заставить двух игроков двигаться синхронно? javascript

Нужно сделать небольшую игру, где два игрока гоняются друг за другом. Игра без канвас и фреймворкаов. Есть вот такой код, но когда один движется, второй не может. Как сделать чтоб они могли двигаться синхронно.
ИГровое поле 800 н 800, как сделать чтоб они за него не заезжали?

'use strict'

let firstSquare = document.querySelector('.firstSquare');
let secondSquare = document.querySelector('.secondSquare');
let gameArea = document.querySelector(".game");

function buttonClicked() {

  let firstSquareParameters = document.querySelector("#firstPlayer").value;
  let secondSquareParameters = document.querySelector("#secondPlayer").value;
  
  document.querySelector(".form").classList.add("disabled");
  gameArea.classList.add("active");
  
  firstSquare.style.height = +firstSquareParameters + 'px';
  firstSquare.style.width = +firstSquareParameters + 'px';
  
  secondSquare.style.height = +secondSquareParameters + 'px';
  secondSquare.style.width = +secondSquareParameters + 'px';
}


window.addEventListener('keydown', function(e){

  if(e.keyCode == 38){
    let goUp = firstSquare.offsetTop;
    firstSquare.style.top = goUp - 10 + "px";
  }
  if(e.keyCode == 40){
    let goDown = firstSquare.offsetTop
    firstSquare.style.top = goDown + 10 + "px"
  }
  if(e.keyCode == 37){
    let goLeft = firstSquare.offsetLeft
    firstSquare.style.left = goLeft - 10 + "px"
  }
  if(e.keyCode == 39){
    let goRight = firstSquare.offsetLeft
    firstSquare.style.left = goRight + 10 + "px"
  }

  if(e.keyCode == 87){
    let moveUp = secondSquare.offsetTop;
    secondSquare.style.top = moveUp - 10 + "px";
  }
  if(e.keyCode == 83){
    let moveDown = secondSquare.offsetTop
    secondSquare.style.top = moveDown + 10 + "px"
  }
  if(e.keyCode == 65){
    let moveLeft = secondSquare.offsetLeft
    secondSquare.style.left = moveLeft - 10 + "px"
  }
  if(e.keyCode == 68){
    let moveRight = secondSquare.offsetLeft
    secondSquare.style.left = moveRight + 10 + "px"
  }
})

Это как? Два человека за одной клавиатурой что ли?

да, верно. управление стрелками и wasd

Наверно надо запоминать что было в keydown, и считать кнопку нажатой пока не было keyup с ней.

Спасибо, буду искать как это сделать

как мне удалить этот вопрос?

Зачем?) Вдруг он кому-то еще поможет.

Как я могу удалить его

Так а для чего, почему просто не оставить его для других новичков, которые могут наткнуться на эту тему?

Даже комент добавлю.
Глупо тратить время на разработку подобного алгоритма. В реальной жизни два игрока за одной клавой не играют.

это задание

Ну примерно то же самое всё равно ж нужно, чтобы например можно было зажать W + D и двигаться вперед и направо или поворачивать машину и т.д.

Так то примерно…
Но не то же самое.
Я к тому что нет смысла тратить время на разработку алгоритма который никогда не будет применен на практике.
Разрабатывать так уже работу с двумя джойстиками на двух игроков.

Так а в чем отличие?)
Так же надо запоминать список нажатых кнопок, и потом смотреть что сейчас нажато.

А то что 2 персонажа, ну так никто не мешает потом сделать второго онлайн или ботом. Для тестирования во время разработки может быть удобно управлять обоими сразу.

Да ты не понял.
Хотел сказать. Зачем тратить время на разработку алгоритма, где один игрок нажимает w, s, a, d а второй up, down, left, right на одной клаве.
В реале то такого не бывает.
Я не гейм-разработчик, но на мой взгляд данная методика приведет начинающего вникуда.