Pesquisar
Projeto exclusivo

Ajustar multiplayer de simulador de TCG

hoje às 08:48

Descrição do Projeto:

Tenho um simulador de TCG (jogo de cartas) desenvolvido em HTML, CSS e JavaScript, com backend simples usando Node.js, Express e ws (WebSocket).
O modo single player e o modo “vs IA” estão funcionando normalmente.
O modo multiplayer (MP) já conecta, cria salas e envia mensagens, mas ainda não está sincronizando tudo corretamente.

O projeto está hospedado no Render e versionado no GitHub.

Preciso de um desenvolvedor para:

• Ajustar o modo multiplayer (P1 vs P2)
• Corrigir a sincronização de escolha de líder
• Sincronizar todos os estados iniciais e ações durante a partida
• Corrigir o funcionamento dos “fragmentos” (mana) no MP

---

Situação atual do multiplayer:

O que já funciona:

• P1 cria sala com código (ex: TESTE123)
• P2 entra com o mesmo código
• Ambos entram via URL MP (mp-game.html?room=XXXX&side=p1/p2&mode=mp)
• WebSocket conecta
• Algumas ações chegam em ambos os lados

O que está errado:

1. Escolha do líder:

• P2 escolhe o líder corretamente.
• No P1, o líder do P2 até aparece na mesa.
• Mas P1 continua com a mensagem “Aguardando ambos escolherem o líder”.
• Ou seja: o evento chega, mas a flag de “pronto” não é atualizada corretamente.

2. Fragmentos (mana) não sincronizam:

• Os fragmentos gerados/invocados por cada jogador aparecem só localmente.
• O outro jogador não vê a quantidade correta.
• Às vezes, fragmentos aparecem como valores aleatórios.
• A mudança de fragmentos durante a partida (gastar/receber mana) não chega do outro lado.

3. Espelhamento de ações incompleto:

• Algumas ações vão e voltam, outras não são aplicadas no cliente remoto.
• O estado de mesa fica inconsistente entre P1 e P2.

---

O que preciso exatamente:

1. Ajustar a sincronização do estado inicial:

• Escolha de líder
• Escolha de deck
• Flags de pronto (p1Ready/p2Ready)
• Remover corretamente a mensagem “aguardando ambos”

2. Sincronizar os fragmentos (mana):

• Os fragmentos são essenciais no jogo e precisam:
• Aparecer igual para P1 e P2
• Atualizar em tempo real quando são gastos
• Atualizar em tempo real quando são gerados
• Manter valores consistentes durante todo o turno
• Ser enviados e recebidos corretamente via WebSocket

3. Ajustar o pipeline multiplayer (client + server):

• Net.sendAction
• wsClient
• Dispatcher.apply
• applyX() das ações internas
• Estrutura do snapshot inicial da partida
• Replicar ações de forma simétrica para ambos os lados

4. Testar fluxo completo:

• Início da partida
• Compra de cartas
• Fragmentos funcionando
• Invocar aliados
• Ataques
• Mudança de fases

---

Requisitos técnicos:

• JavaScript (domínio)
• Node.js (Express + ws)
• Experiência com WebSocket e sincronização de estado
• Experiência com jogos em turno é diferencial

---

Entregáveis:

• Modo multiplayer 100% funcional:
• P1 x P2 com estado idêntico dos dois lados
• Fragmentos funcionando corretamente e sincronizados
• Escolha de líder funcionando
• Ações replicadas corretamente
• Comentários explicando o fluxo MP
• Pequena explicação textual de como manter o código

---

Critério de aceite:

Testarei abrindo dois navegadores:

1. P1 cria sala
2. P2 entra
3. Ambos escolhem o líder – partida começa sem travar
4. Fragmentos idênticos dos dois lados
5. Invocação, ataque e ações espelhando corretamente.

Atividades do cliente nesse projeto:

Última visualização: hoje às 18:43

Tem dúvidas? Faça uma pergunta.

ou

Enviar proposta

Informações adicionais

Categoria: Web, Mobile & Software
Subcategoria: Desenvolvimento de Games
Orçamento: Aberto
Nível de experiência: Intermediário
Visibilidade: Público
Propostas: 3
Interessados: 6
Tempo restante:
Valor Mínimo: R$ 50,00
Propostas (3)
  • Freelancer Premium Leven T.
    Talent
    Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

Nenhuma proposta foi encontrada.

Carregando...
Projetos semelhantes no 99Freelas

Transformar jogo singleplayer em multiplayer com Photon Fusion na Unity3D - Temos um projeto que utiliza 2 assets (JU TPS 3 e CHARACTER CUSTOMIZER). Precisamos tornar o jogo multiplayer utilizando o Photon Fusion 2, no modo shared. Parte já foi feita, mas há ...

Programador para UEFN - Preciso de um programador para se juntar à equipe em um jogo que estou construindo. É necessário ter alguma experiência com o UEFN ou com o Fortnite.

Conversão de modpack local para server pack - Preciso de alguém para pegar um modpack local e transformá-lo em um server pack para utilizar na Enxadahost. Não é nada profissional, é um modpack para jogar com ...

Desenvolvedor para jogo 2D (beat’em up / hack’n’slash) - Olá! Procuro um(a) desenvolvedor(a) para criar um jogo 2D simples no estilo beat’em up / hack’n’slash. O objetivo é montar um protótipo/jogo curto, com foco ...

Desenvolvimento de jogo de motociclismo - Desenvolvimento da física de movimento e controle de moto para jogo em Unity 3D. Projeto: Jogo de corrida/simulação de motos em Unity 3D. Escopo: Implementação ...

Carregando...

Carregando...

Pesquisar

FREELANCERS
PROJETOS
Ocorreu um erro inesperado. Caso o erro persista, entre em contato conosco através do e-mail suporte@99freelas.com.br.