Oi pessoal!
Alguns anos atrás, escrevi um aplicativo JavaFX, chamado CoachJ, que simula uma partida de basquete saída de uma descrição textual de todas as jogadas do jogo. Além disso, o simulador também armazena as estatísticas das equipas e dos jogadores, o que lhe permite gerir uma liga básica. O usuário desempenha o papel de proprietário da franquia, escolhendo o gerente geral e o treinador principal. A partir deste ponto, todos os
as decisões são tomadas pelo aplicativo.
No início, o simulador basicamente controlava como os jogadores se moviam pela quadra, e as decisões tomadas pelo jogador com a bola. As decisões foram baseadas nos atributos do jogador (como habilidades de tiro, passe e direção), além de um fator aleatório para evitar muita repetição das ações.
Ao longo dos anos, melhorei o simulador para incluir outros recursos:
- Fator de fadiga em jogo, que interfere em todas as ações realizadas pelos jogadores em quadra;
- Lesões dentro e fora do jogo, que afetam o desempenho dos jogadores durante os jogos. Dependendo do tipo de lesão, o jogador pode não estar disponível para vários jogos;
- Momento no jogo, que afeta o padrão de substituição do treinador como jogadores reservas que estão tendo um bom jogo ficam mais tempo em quadra;
- Momento da temporada, que pode fazer o técnico mudar o time titular entre
jogos como reservas registram bons jogos ao longo da temporada. Até agora, todas as substituições e as mudanças nas escalações iniciais são completamente automáticas, o dono da equipe não interfere nisso;
- Desenvolvimento de jogadores fora da temporada, quando os atributos de cada jogador são alterados para a próxima temporada. Os atributos são aumentados/diminuídos por um algoritmo que considera fatores como a
a idade do jogador, o técnico com quem trabalhou na temporada e um fator aleatório;
- Jogadores com habilidades de jogo mais altas podem encontrar companheiros de equipe em bons locais para arremessar, configurar
olhares abertos ou continuar a dar a bola a um jogador que está quente;
- Melhoria das decisões no final do jogo, forçando as equipes que estão atrás a apressar as posses e/ou cometer faltas intencionais.
Acredito que o simulador no jogo faz um bom trabalho, mas reconheço que pode ser melhorado, especialmente pela adição de jogadas coordenadas e marcação dupla, entre outros elementos. No entanto, o que eu realmente estou procurando agora é ajuda para:
- Criar uma interface de frontend baseada em navegador, onde os usuários podem gerenciar sua franquia e jogar o papel não apenas de proprietário, mas também de gerente geral e treinador principal;
- Permitir o gerenciamento de várias ligas, com jogadores, treinadores e gerentes compartilhados através de todos eles;
- Permitir que usuários que não possuem uma franquia sejam repórteres, escrevendo análises de jogos, artigos sobre jogadores e equipes, entrevistas e assim por diante;
- Criar um sistema de transmissão de jogos frontend, que lerá os arquivos de jogos serializados em JSON e jogue-os como se fossem um jogo ao vivo;
- Desenvolver um modelo de negócios para o site, para monetizá-lo taxando cada franqueado, e/ou através de publicidade, e/ou outra forma adequada.
Eu carreguei o frontend estático que construí em PHP para o endereço
http://www.eduardo.rodrigues.nom.br/coachj/index.php, onde você pode ter um vislumbre dos dados gerados pelo aplicativo. Como os logs passo a passo crescem rapidamente, acabei de enviar um poucos, pois simulei 3 temporadas inteiras até agora.
Estou aberto a ouvir ideias de todos para encontrar uma maneira de financiar o desenvolvimento e impulsionar o aplicativo ao vivo.
Atenciosamente,
Eduardo M. Rodrigues
eduardo@eduardo.rodrigues.nom.br