Skip to content

Repository files navigation

⚽ Futbobo

Um jogo de carreira no futebol feito para transformar números em histórias.

Futbobo começou como uma experiência rápida de carreira pensada primeiro para celular e cresceu para um pequeno universo de futebol: formação na base, transferências, Seleção, mercado, imprensa, vida pessoal, rivalidades, títulos, recordes, jogadores persistentes e modos jogáveis separados.

Você começa aos 12 anos, escolhe posição e caminho de formação, é revelado entre os 16 e 18 e segue até a aposentadoria. Uma carreira pode durar poucos minutos ou virar uma saga atravessando clubes, países, continentes e gerações de jogadores.

O objetivo não é reproduzir Football Manager ou EA FC em escala menor. A ideia é comprimir uma carreira inteira em decisões rápidas, consequências claras e acontecimentos que façam cada save contar uma história diferente.


🎮 Modos

Carreira de Jogador

O coração do Futbobo.

  • Categorias de base dos 12 aos 16–18 anos.
  • 12 posições e quatro caminhos de formação.
  • 733 clubes distribuídos por 41 ligas.
  • Evolução de OVR, potencial, atributos, moral, forma, reputação e condicionamento.
  • Contratos, salários, transferências, empréstimos e pedidos de saída.
  • Seleções de base, Olímpica e principal.
  • Brasileirão, Copa do Brasil, Libertadores, competições europeias, asiáticas e Mundial de Clubes.
  • Segundas divisões jogáveis no Brasil, Inglaterra, Espanha, Itália, Alemanha, França e Portugal.
  • Promoção em ligas compatíveis, com acessos diretos e playoffs específicos de cada campeonato.
  • Lesões, suspensões, fadiga, aposentadoria e declínio.
  • Bola de Ouro, premiações, artilharias, títulos e recordes.
  • Seguidores, imprensa, patrocinadores, torcida e vida extracampo.
  • Eventos narrativos, escolhas e consequências que permanecem no save.
  • Rivais pessoais, reencontros com ex-clubes e reações a transferências.
  • Aba Time com companheiros persistentes, titulares, banco e vagas de mercado.
  • Traição entre clubes rivais, foco de país do empresário e novas coletivas de repercussão.
  • Histórico completo por temporada, clube e competição.
  • Hall da Fama local e cartão final compartilhável.

🌍 Mundo da carreira

A carreira possui uma camada persistente além do protagonista.

  • World Players com idade, OVR, potencial, reputação e carreira própria.
  • Transferências e empréstimos entre clubes.
  • Histórico de clubes, estatísticas, honrarias e aposentadoria.
  • Rivais e candidatos a prêmios podem continuar existindo durante anos.
  • O sistema foi construído para permitir que o mundo ganhe cada vez mais vida sem transformar todo jogador irrelevante em uma entidade pesada no save.

🏆 Copa do Mundo

Modo separado para entrar direto na competição e jogar uma Copa sem precisar iniciar uma carreira inteira.

🔘 Futebol de Botão

Um jogo dentro do jogo, com física própria.

  • Partidas completas.
  • IA adversária.
  • Formações.
  • Pênaltis.
  • Física de bola e peças.
  • Integração com partes da carreira.

O modo ainda funciona como laboratório para futuras ideias de torneios, multiplayer local, customização e desafios.

⚡ Arena

Protótipo experimental de futebol arcade em tempo real. É uma área de laboratório do projeto e não representa o modo principal do Futbobo.


🧠 Filosofia do projeto

O Futbobo tenta evitar a sensação de que toda carreira acaba convergindo para a mesma coisa.

Alguns princípios usados no desenvolvimento:

  • Consequências antes de quantidade: uma decisão boa deve afetar outros sistemas.
  • Mundo persistente: jogadores, clubes e relações devem sobreviver à temporada atual.
  • Carreiras imperfeitas são mais interessantes: lesões, temporadas ruins, banco e propostas estranhas fazem parte da história.
  • Mobile first: a interface precisa funcionar bem em uma tela pequena sem virar uma planilha de Football Manager.
  • Saves longos importam: vários sistemas são deterministicamente reproduzíveis e pensados para carreiras de muitas temporadas.
  • O jogo pode ser absurdo sem perder coerência: há espaço tanto para futebol sério quanto para eventos extremamente improváveis.

🏗️ Estrutura técnica

O projeto usa:

  • Next.js 16
  • React 19
  • TypeScript
  • Exportação estática
  • GitHub Pages
  • Capacitor para a versão Android

A lógica da carreira vem sendo gradualmente separada da interface. Sistemas como mercado, World Players, simulação, patrocinadores, coletivas, progressão e divisões adicionais vivem em módulos próprios dentro de app/career/.

Isso também facilita a expansão futura para outros modos sem duplicar as regras do universo.


🚀 Rodar localmente

Requer Node.js 22.13 ou superior.

npm install
npm run dev

Depois abra:

http://localhost:3000

Build

npm run build

Verificações

npm run lint
npm test

npm test executa o build e também valida o HTML exportado.


🧪 Laboratório Monte Carlo

O Futbobo possui um simulador headless para medir o balanceamento de carreiras completas.

Com o servidor local aberto:

http://localhost:3000/?montecarlo=100&seed=20260723
  • montecarlo define a quantidade de carreiras simuladas.
  • seed torna o lote reproduzível.

O laboratório reutiliza as mesmas regras de evolução, eventos, mercado, transferências e premiações do jogo normal. Ele é usado para encontrar extremos de balanceamento que seriam difíceis de perceber jogando apenas uma ou duas carreiras manualmente.


📱 Android

O projeto também possui estrutura Capacitor para Android.

Comandos disponíveis:

npm run android:prepare
npm run android:open
npm run android:apk

Consulte ANDROID.md para detalhes específicos.


📦 Dados do futebol

A maior parte dos clubes, ligas, países, posições e parâmetros básicos fica centralizada em:

app/game-data.ts

Expansões de catálogo que possuem regras próprias podem viver em módulos separados. As segundas divisões adicionais, seus clubes e suas regras de acesso ficam em:

app/career/second-divisions.ts

Cada clube possui informações como:

  • ID
  • nome e nome curto
  • abreviação
  • cidade
  • país
  • liga
  • cores
  • reputação
  • força

A separação permite aumentar bastante o banco de clubes sem transformar um único arquivo em responsável por toda a lógica de competições do jogo.


🗂️ Algumas áreas importantes

app/career/                       regras e sistemas da carreira
app/career/second-divisions.ts    segundas divisões e regras de acesso adicionais
app/components/                   interface reutilizável
app/botao/                        futebol de botão
app/copa/                         modo Copa do Mundo
app/arena/                        protótipo arcade experimental
app/game-data.ts                  clubes, países, ligas e dados-base

🌐 Deploy

A versão web é gerada como site estático e publicada automaticamente pelo GitHub Actions / GitHub Pages a cada push na branch main.

O workflow de deploy executa o build antes da publicação; uma main que não compila não deve chegar ao site.


🎨 Créditos visuais

Os escudos e emblemas de competições são sincronizados pela API do TheSportsDB e usados sem alteração.

As bandeiras são fornecidas pelo FlagCDN, com alguns emblemas adicionais vindos do FCLogo e Football Logos.

Marcas, escudos e demais identidades visuais pertencem aos seus respectivos titulares.


🛠️ Status

Futbobo é um projeto em desenvolvimento ativo. Sistemas podem mudar bastante entre versões e alguns modos funcionam deliberadamente como laboratórios experimentais.

A regra principal do projeto continua a mesma desde o começo:

uma carreira precisa gerar uma história que dê vontade de contar para alguém depois.

About

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages