NextFoot: um jogo de futebol construído a partir do motor
Simulação de partidas, modelagem de jogadores e times, estado em tempo real e uma arquitetura pronta para multiplayer, em que latência e consistência são decididas por projeto, não por sorte. Construído por Felipe Guedes como o sistema mais difícil que ele sabe fazer parecer simples.
Por que um jogo de futebol
Uma simulação em tempo real é o sistema mais difícil de fazer parecer simples. Vinte e dois agentes, uma bola, uma física que precisa parecer certa a sessenta quadros por segundo, e um estado que vários jogadores precisam ver do mesmo jeito ao mesmo tempo, em redes que perdem pacotes e somam latência sem avisar.
Toda fronteira que eu audito nos sistemas dos outros aparece aqui de uma vez: idempotência das entradas, ordenação, timeouts, reconciliação, a diferença entre o que aconteceu e o que o cliente acha que aconteceu. O NextFoot é onde essas decisões são tomadas às claras, com um jogo que as pessoas queiram jogar como prova.
O que está sendo construído
- Motor de partida determinísticoUma simulação que produz a mesma partida a partir das mesmas entradas, para poder ser testada, reproduzida e reconciliada entre clientes.
- Jogadores, times e táticasAtributos que importam em campo: velocidade, posicionamento, latência de decisão, resistência, e instruções táticas que mudam como o time se move como um todo.
- Estado em tempo realUma única fonte de verdade para a partida, atualizada a um tick fixo, com predição no cliente e correção do servidor.
- Netcode multiplayerRede baseada em entradas, com reconciliação de estado e tolerância a latência e perda de pacotes. Desenhado antes da primeira linha de gameplay, não remendado depois.
- Renderização WebGLRoda no navegador. Sem instalar, sem loja, um link.
- StackTypeScript, motor de jogo próprio, Node.js no servidor, PostgreSQL para contas, temporadas e resultados.
Status
O NextFoot está em desenvolvimento. Ainda não há build pública nem data de lançamento. Esta página existe para o projeto ter uma casa e para as decisões por trás dele serem registradas conforme são tomadas.
Quando houver algo para jogar, será anunciado aqui, no fgxdev.com e nos perfis do autor.
Perguntas frequentes
O que é o NextFoot?
O NextFoot é um jogo de futebol construído a partir do motor por Felipe Guedes: simulação de partida determinística, modelagem de jogadores e times, estado em tempo real e arquitetura pronta para multiplayer, renderizado em WebGL no navegador. Está em desenvolvimento.
Já dá para jogar o NextFoot?
Ainda não. Não há build pública nem data de lançamento. A página do projeto e os perfis do autor vão anunciar uma versão jogável quando ela existir.
Qual é a tecnologia por trás do NextFoot?
TypeScript, um motor próprio em tempo real com simulação determinística, netcode multiplayer com predição no cliente e reconciliação no servidor, renderização WebGL no navegador, Node.js no servidor e PostgreSQL para contas, temporadas e resultados.
Quem está construindo o NextFoot?
Felipe Guedes, Engenheiro de Software e Arquiteto de Sistemas em Toledo, Paraná, criador do Faultline e fundador da ELUCENIA, depois de mais de 600 sistemas construídos, revisados ou auditados em 19 países.
Relacionados
- /pt/projects/Todos os projetos atuais
- /pt/faultline/Faultline, o auditor de código open source
- /pt/elucenia/ELUCENIA, a rede científica com uma missão: o câncer
Construindo um sistema em tempo real?
Latência, consistência, idempotência e reconciliação são os mesmos problemas em um jogo, em um fluxo de pagamento e em uma plataforma multi-tenant. É isso que eu projeto e audito.
Arquitetura e System Design