Aos poucos ta ganhando forma sim, puxado viu.
To tentando fazer isso mesmo jogando algumas coisas, mas fico sem saber poder onde ir na complexidade sabe, pensar como algo pode funcionar, exemplo os que você deu, não ter ideia por onde começar.
Mas aos poucos estou indo e melhorando ,trazendo funcionalidades, melhorei a barra de hotkeys colocando os cooldown's, porém preciso otimizar muito o código.
E como poderia faze a parte do combate ser do lado do servidor, eu fico meio confuso.
Não conheço o contexto do seu código. Mas imagino que até o momento você tem apenas o Client (Game) não tem API's para gerenciar, criação de conta, login, compra de itens, NPC's e etc.
Não sei o tamanho do escopo que você irá determinar, mas se for dispor isso de alguma forma MP, PVP, PVE, imagino que terá que ter não somente o lado do game, mas alocar lógicas no server side.
Ex: Player, ele tem um level, esse level tem que armazenar em algum local. Redis é apenas para camada de caching, um banco como Firebase ou MongoDb seria o suficiente para resolver o sua necessidade, banco de dados NoSQL, que permite armazenamento de documentos.