FutComp: un compagno gratuito per EA FC 27, costruito a partire dai dati
Un sito gratuito e senza account che risponde alle domande che i giocatori di FC 27 Ultimate Team si pongono ogni volta che aprono il mercato trasferimenti o costruiscono una squadra. Cosa fa, come è costruito e quali parti si sono rivelate difficili.
FutComp (futcomp.site) è un sito gratuito per i giocatori di EA SPORTS FC 27 Ultimate Team. Risponde alle domande che sorgono ogni volta che si apre il mercato trasferimenti o si costruisce una squadra: Quale di queste due carte è davvero migliore? Esiste una carta più economica con le stesse statistiche? Qual è la formazione migliore per i giocatori che ho già? Qual è il modo più economico per completare questo set della Galleria?
È gratuito, non richiede account né registrazione e funziona su qualsiasi telefono. Questo articolo spiega cosa fa il sito, come è costruito, le parti difficili e gli strumenti dietro di esso.
I principi
Alcune regole hanno guidato ogni decisione:
- Gratuito e senza account. Squadre salvate, carte personalizzate e set della Galleria completati restano nel vostro browser. Nessuna registrazione, nessuna password.
- Suggerire, mai agire. FutComp vi dice cosa comprare o quali carte usare. Non compra, vende, mette in vendita né invia mai nulla sul vostro account EA, e l’estensione Chrome legge solo ciò che la Web App di EA ha già caricato.
- Prima il telefono. Circa due terzi dei visitatori usano il telefono, quindi ogni pagina è progettata e testata prima in larghezza mobile.
- Semplice anziché ingegnoso. Ogni strumento parte dalla risposta (il miglior grado raggiungibile, le carte necessarie, quanto costa) e lascia i dettagli sotto.
Cosa fa
Ogni carta, consultabile
La home page è l’elenco di tutte le carte di FC 27, poco più di 20’000. Ogni riga mostra le statistiche principali, le skill, il piede debole, il piede preferito, l’AcceleRATE, l’altezza e i prezzi in crediti aggiornati per console e PC.
- Ordinate qualsiasi colonna toccando l’intestazione.
- Filtrate per ruolo, campionato, nazione, club e genere.
- Aprite Filtri per impostare minimo e massimo su qualsiasi statistica principale o su una delle 29 statistiche dettagliate. Per esempio: «attaccanti con 90+ di agilità sotto i 20K, ordinati per velocità».
- Aggiungete fino a otto statistiche dettagliate come colonne extra.
- Ogni ricerca è contenuta nell’indirizzo della pagina, quindi si può salvare o condividere.
Se preferite le immagini, la vista a carte è a un tocco, e il sito ricorda la vista che preferite.
Confronta
Scegliete due carte e FutComp le mette una accanto all’altra su un grafico radar, con ogni statistica principale e dettagliata, la differenza di prezzo e una modalità EVO in cui modificare le statistiche per vedere in anteprima un’Evoluzione. Potete salvare quell’Evo e usarla in tutto il sito.
Ogni confronto chiede anche «Chi sceglieresti?» Dopo il voto vedete come hanno votato gli altri utenti di FutComp.
Trova simili
Scegliete una carta e FutComp trova carte con statistiche vicine, la più economica per prima. Le regole le decidete voi: qualsiasi statistica principale o dettagliata, quanto deve essere vicina (entro ±N, oppure «almeno così buona»), la fascia di valutazione e il ruolo. Un risultato tipico: una carta da 650 crediti con quasi le stesse statistiche principali di una da 20K.
Costruttore di squadra e Chemarize
Il costruttore di squadra è un campo su cui costruire:
- Scegliete una formazione e toccate un ruolo per aggiungere un giocatore.
- Trascinate i giocatori da un ruolo all’altro per spostarli o scambiarli.
- Intesa, valutazione della squadra e prezzo si aggiornano man mano.
Ogni ruolo offre suggerimenti in tre modi: Migliore intesa (giocatori che si collegano alla squadra che avete già, con quanto aggiungerebbero al totale), Valutazione più alta e Più economici. Ci sono anche un campo per il prezzo massimo e una ricerca.
Chemarize ribalta la prospettiva. Con 11 giocatori schierati, prova tutte le 29 formazioni e ogni modo di disporvi i giocatori, poi mostra la formazione con più intesa. Suggerisce anche un allenatore se ne esiste uno che la aumenterebbe ancora.
Le squadre si possono salvare, condividere con un link o come immagine pronta per X, WhatsApp o Instagram.
Carte personalizzate
Le Evoluzioni cambiano valutazione, statistiche e ruoli di un giocatore, e la sua vecchia carta non corrisponde più. Il creatore di carte la ricostruisce a partire da un catalogo di design vuoti (Oro, TOTW, Future Stars, Icon e altri), dal volto del giocatore e dai vostri dati: valutazione, ruoli, statistiche, skill e piede debole. La vostra carta appare poi nella squadra e nell’immagine che condividete.
Pianificatore della Galleria
La Galleria di FC 27 premia la raccolta di set di carte. Ognuno dei 128 set ha gradi da D a S, ciascuno con un obiettivo di punti. I giocatori facevano sempre le stesse domande, quindi ogni pagina di set parte da tre risposte:
- Il miglior grado raggiungibile e quanto costa su console o PC.
- Esattamente le carte necessarie. Se aggiungete carte trovate da voi («First Owner»), l’elenco si divide in Le hai e Da comprare.
- Il costo reale. Le carte restano nella Galleria anche dopo averle vendute: se comprate, inserite e rivendete ogni carta, un grado costa all’incirca la tassa di vendita del 5 % di EA invece del prezzo pieno. La pagina mostra questa cifra e quanti crediti servono in un dato momento.
La home della Galleria ordina i set per crediti per Gettone della Galleria, permette di cercarli e di nascondere quelli completati.
Guide, pagine giocatore e community
- Guide: liste dei «migliori» come i giocatori più veloci, i migliori finalizzatori e i tecnici a 5 stelle, aggiornate ogni giorno.
- Pagine giocatore: ogni carta ne ha una, con tutte le statistiche, carte simili e una valutazione della community su 10 con tag come Sembra veloce o Vale i crediti.
L’app e l’estensione Chrome
- L’app: FutComp si installa sul telefono come un’app (una Progressive Web App), senza passare da uno store.
- L’estensione Chrome: aggiunge un confronto rapido alla barra del browser e lavora insieme alla Web App di EA:
- legge la vostra squadra attuale e la «Chemarizza» nel popup
- pianifica ogni set della Galleria attorno alle carte del vostro club
- legge soltanto; non invia mai nulla a EA
L’architettura
FutComp è volutamente essenziale: un’applicazione web in Python, un database MySQL, job pianificati che mantengono aggiornati i dati e JavaScript scritto a mano nel browser, senza framework front-end.
Mantenere i dati aggiornati
FutComp costruisce il suo database a partire da dati pubblici su carte e mercato di FC 27. Job pianificati lo tengono aggiornato:
| Quando | Job | Cosa fa |
|---|---|---|
| Ogni giorno 18:30 | Sync giocatori | Nuove carte e statistiche aggiornate |
| Ogni giorno 19:45 | Sync intesa e grafica | Ruoli, club, campionati, nazioni, indicatori di intesa, volti e catalogo dei design vuoti |
| Ogni giorno 20:05 | Sync Galleria | Ogni set della Galleria con regole, gradi e ricompense |
| Ogni 30 min | Sync prezzi | Prezzi console e PC di ogni carta, più una riga di storico a ogni variazione di prezzo |
| Ogni 30 min | Piani della Galleria | Ricalcola il percorso più economico verso ogni grado di ogni set, su entrambe le piattaforme |
| Ogni notte | Manutenzione | Sfoltisce lo storico prezzi più vecchio, elimina i dati scaduti |
Ogni job gira con un lock, così un’esecuzione lenta non si sovrappone mai alla successiva.
Il server
- L’app: un’applicazione Flask in Python dietro Apache, eseguita con mod_wsgi in processi propri e di lunga durata.
- Pagine renderizzate sul server: le pagine importanti sono renderizzate sul server con template Jinja, così i motori di ricerca vedono contenuti reali. Poi il browser si occupa di ordinare, filtrare e costruire.
- Il database: MySQL contiene carte, statistiche, dati di intesa, prezzi e storico, elementi della Galleria, grafiche delle carte, voti della community e messaggi di contatto.
- Immagini: le immagini delle carte e gli elementi grafici vengono scaricati una volta, messi in cache su disco e serviti dal dominio di FutComp.
La cache, più importante del previsto
I dati più richiesti sono tenuti in memoria dall’app stessa:
- le statistiche di ogni carta
- i dati di intesa usati per i suggerimenti di squadra
- le statistiche in cui cerca Trova simili
- i piani della Galleria precalcolati
Trova simili, per esempio, compatta le statistiche di ogni carta in un blocco di byte (circa 1,3 MB per tutte le carte), così una ricerca personalizzata su 20’000 carte richiede millisecondi.
Il front-end
JavaScript e CSS puri, con un tema condiviso. Il grafico radar, il campo, l’immagine della squadra da condividere e le carte personalizzate sono tutti disegnati su un canvas HTML. Ogni elemento interattivo è progettato e testato sia per il touch sia per il mouse.
L’estensione Chrome
L’estensione usa Manifest V3. Un content script sulla Web App di EA osserva le risposte che la Web App riceve già (la vostra squadra, le carte del club) e conserva solo ciò che serve a FutComp: ID delle carte, valutazioni, ruoli e un contatore dei proprietari per riconoscere le carte First Owner. Ignora il mercato trasferimenti e la lista osservati, perché quelle carte non sono vostre. Non invia mai richieste a EA.
Le parti difficili
L’intesa è un problema di ricerca
L’intesa di FC 27 sembra semplice: collegamenti di club, campionato e nazione, più un bonus dell’allenatore. Ciò che la rende difficile è che un giocatore ottiene intesa — e conta per i collegamenti degli altri — solo se gioca in uno dei suoi ruoli. La formazione migliore dipende quindi da quali giocatori sono nel loro ruolo, e questo dipende dalla formazione.
Chemarize affronta il problema formazione per formazione:
- Usa maschere di bit per rappresentare quali dei vostri 11 giocatori sono nel loro ruolo.
- Per ogni gruppo verifica con un matching bipartito se il gruppo può davvero occupare posizioni diverse che tutti sanno coprire.
- Tiene solo i gruppi a cui non si può aggiungere un altro giocatore e li valuta con le regole dell’intesa.
- Sulle 29 formazioni ordina i risultati, preferendo le disposizioni con i giocatori nel loro ruolo principale.
Tutto questo gira nel browser in una frazione di secondo. I suggerimenti del costruttore riusano lo stesso motore: per ogni candidato calcola l’intesa dell’intera squadra con quel giocatore in quella posizione.
La Galleria è un problema di ottimizzazione
Trovare la combinazione di carte più economica per un grado sembra «comprare le carte con il miglior rapporto». I tag bonus lo impediscono, perché molti si attivano solo a partire da un certo numero di carte:
- «5+ carte Argento: +15 %»
- «due versioni dello stesso giocatore: +10 %»
- «First Owner: +150 % a 5, +300 % a 10, +500 % a 20»
Una formazione più economica che attiva un tag può battere una più costosa che non lo fa.
Il pianificatore procede per fasi:
- Scelta crediti per punto: parte dalla migliore formazione in crediti per punto, regolando un unico parametro di compromesso finché si raggiunge l’obiettivo.
- Passaggio al ribasso: sostituisce le carte costose con altre più economiche finché il set raggiunge ancora il grado, tag inclusi.
- Hill-climbing: quando solo una combinazione di tag permette di raggiungere un grado, una ricerca la trova.
- Varianti First Owner: con carte First Owner prova anche a fissarne 5, 10 o 20 e tiene il piano più economico.
Un problema di due secondi che era in realtà un problema del server
Al lancio della vista elenco, le ricerche richiedevano quasi due secondi, anche se la ricerca in sé durava 25-65 millisecondi. L’app girava in ognuno dei processi worker di Apache, ciascuno con la propria cache vuota, quindi la maggior parte delle richieste doveva ricostruirla. Spostare FutComp in un piccolo gruppo di processi dedicati e di lunga durata ha portato le risposte a circa 70 millisecondi. Trova simili, il pianificatore della Galleria e l’estensione ne hanno beneficiato tutti.
Le carte personalizzate richiedono il proprio dominio
Un canvas può esportare un’immagine solo se tutte le immagini disegnate su di esso provengono dallo stesso dominio. Le grafiche del creatore di carte (design vuoti, volti, stemmi) passano quindi da una piccola route di immagini di FutComp, che accetta solo percorsi di grafiche delle carte e mette in cache ogni immagine su disco. Il colore del testo viene scelto misurando quanto è chiaro il design dietro nome e statistiche.
Mobile e motori di ricerca
La maggior parte dei visitatori arriva dal telefono, spesso da un link di un motore di ricerca o dalla risposta di un assistente IA. Questo ha significato:
- Nessuno scorrimento laterale, tranne nelle tabelle volutamente larghe.
- Layout mobili per i dati larghi: sul telefono le tabelle diventano schede e i filtri passano in un pannello a schermo intero.
- Barre fisse: la barra di confronto è fissata in fondo allo schermo e compare solo dopo aver scelto una carta.
- Un indirizzo per pagina, con reindirizzamenti per le alternative, una sitemap pulita di circa 20’000 pagine e un
llms.txtin testo semplice che descrive il sito ai crawler IA. - Prima lo strumento: il testo descrittivo che vogliono i motori di ricerca sta sotto ogni strumento, così la pagina si legge come uno strumento e non come un articolo di blog.
Privacy senza account
Non ci sono account, quindi i dati personali restano nel browser. I voti della community vanno comunque protetti dalle manipolazioni:
- ogni browser riceve un cookie anonimo casuale, salvato solo come codice cifrato
- i voti vengono accettati solo dal sito stesso
- c’è un limite orario per connessione, basato su un codice cifrato ricavato dall’indirizzo IP, che viene cancellato dopo 30 giorni
Come lo usano i giocatori
- «Questa carta vale la pena?» Cercate la carta nell’elenco, toccate + su di essa e sull’alternativa e confrontate statistiche e prezzo fianco a fianco.
- «Stesse statistiche, meno crediti.» Aprite una carta nella vista a carte, scegliete Trova simili, allentate le regole se serve e ordinate per prezzo.
- «La formazione migliore per la mia squadra.» Aprite Chemarize, aggiungete i vostri 11 (o lasciate che l’estensione Chrome li carichi dalla Web App) e toccate Chemarize.
- «Costruire attorno a un giocatore.» Mettetelo in campo, poi toccate ogni ruolo libero e scegliete da Migliore intesa.
- «Mostrare la mia Evo.» Salvate l’Evo, toccate Personalizza carta, scegliete un design e condividete l’immagine della squadra.
- «Quale set della Galleria ora?» Aprite la Galleria, guardate Miglior rapporto del momento, aprite un set e seguite il suo elenco di carte. Segnatelo come completato quando avete finito.
Strumenti e stack
- Linguaggio e server: Python 3, Flask, Jinja2, Apache 2.4 con mod_wsgi
- Dati: MySQL,
mysql-connector-python,requestsper i job di sincronizzazione, Pillow per misurare i design delle carte - Pianificazione: cron, con
flockperché i job non si sovrappongano mai - Front-end: JavaScript puro, custom property CSS per il tema, API Canvas per grafici, campi, immagini da condividere e carte personalizzate
- App: una Progressive Web App (manifest web e service worker)
- Estensione del browser: Chrome Manifest V3, content script in sola lettura
- Test: Playwright, che pilota un vero Chromium in formato mobile e desktop, incluso touch e drag-and-drop
- Hosting e sicurezza: certificati Let’s Encrypt, SSH solo con chiave, un firewall e fail2ban
- Statistiche: Google Analytics, per capire quali funzioni vengono usate
- Sviluppo: costruito con Claude Code come partner di programmazione
Cosa viene dopo
- Trading: FutComp registra ogni variazione di prezzo da metà ottobre. Quando si saranno accumulate alcune settimane di storico, diventeranno grafici dei prezzi su ogni pagina giocatore e una sezione Trading con rialzi e ribassi.
- Soluzioni SBC, nello stesso spirito della Galleria: il modo più economico per completare ogni Squad Building Challenge, usando prima le vostre carte. Solo suggerimenti, mai invii.
Cosa dice del nostro modo di lavorare
FutComp sembra un sito di fan ed è in realtà un prodotto di dati: pipeline pianificate, cache in memoria, un motore combinatorio per l’intesa, un ottimizzatore dei costi e un’estensione del browser, tutto pensato per il telefono. È lo stesso approccio che applichiamo ai progetti dei clienti: trovare la parte difficile, risolverla bene e mantenere semplice tutto il resto.
Se il vostro progetto ha una parte difficile come questa, ci piacerebbe sentirne parlare.
FutComp è un progetto indipendente di fan, non affiliato né approvato da Electronic Arts. EA SPORTS FC, FC 27 e Ultimate Team sono marchi di Electronic Arts Inc.