Disseram que Lies of P nunca teria modo online… então nós fizemos um.
Transformamos Lies of P em Multiplayer!

Gostaria de compartilhar um dos maiores projetos que já fiz!
Eu e meu amigo SIL3NCE (também brasileiro) estamos há praticamente um ano desenvolvendo um mod que adiciona modo cooperativo ao jogo Lies of P, um soulslike incrível que conta a história de Pinóquio.
Nós já exploramos engenharia reversa há algum tempo, e queríamos um desafio maior. Como Lies of P foi feito na Unreal Engine, vimos nele uma ótima oportunidade de aprender mais sobre como uma das engines mais populares do mundo realmente funciona.
Além disso, o jogo não possui qualquer recurso ou arquitetura online, é totalmente singleplayer, diferente de outros jogos como Elden Ring ou Dark Souls.
Esse detalhe tornou o desafio ainda mais interessante.
Tivemos que arquitetar do zero toda a estrutura do nosso servidor online, de modo que ele pudesse ser hospedado na nuvem, e começamos a desenvolver um SDK próprio para o jogo, permitindo invocar funções, eventos e modificar comportamentos internos.
Um exemplo prático foi a implementação de uma barra de vida funcional para o outro jogador, além de mudanças no comportamento da IA dos inimigos.
Originalmente, a IA seguia um timer de 12 segundos para trocar de alvo.
Nós substituímos esse sistema por um modelo baseado em pontuação, levando em conta fatores como:
- distância entre os jogadores,
- dano total causado,
- tempo que o jogador está como alvo, entre outros.
Aqui está um vídeo do nosso primeiro progresso, há cerca de um ano (perdoem a qualidade 😅): 
E hoje o projeto está muito mais avançado e estável!
O mod está sendo desenvolvido em C++ e atualmente estamos em fase alpha fechada, testando com alguns membros do Patreon, mas em breve lançaremos uma versão pública no Nexus!
Também fizemos um vídeo mostrando o estado atual do mod e respondendo algumas dúvidas:
https://www.youtube.com/watch?v=dbuROQ5LG5g
(Lá dá pra ver a healthbar funcionando e outras mecânicas)
E como o jogo fica bem mais fácil em coop, já que foi feito pensando em ser singleplayer, também criamos um Loader que além de inicializar o servidor e aplicar as alterações no processo do jogo, também é possível customizar algumas coisas para deixar o jogo mais dificil (ou fácil), como aumentar/diminuir a vida e dano dos NPCs, bosses e dos jogadores.

Temos um servidor no Discord pra quem quiser acompanhar o desenvolvimento: discord.gg/lopcoop
Enfim, é impressionante como a programação abre portas pra tantas áreas diferentes.
É surreal entrar no jogo com meu amigo pra testar e ver outro jogador ali dentro de um mundo que.. não deveria estar lá
Se tiverem dúvidas ou curiosidades, técnicas ou não, fiquem à vontade pra perguntar que tentarei responder :)