Sigildream Tech Blog

Tech · Piattaforma Sigilwake

La sala macchine dietro un RPG multiplayer a turni.

Sigilwake sembra un duello disegnato a mano tra due campioni — e nella sua forma più semplice è esattamente questo. Due giocatori scelgono ciascuno un campione da un cast originale e si scambiano mosse una alla volta: lanciare un'abilità, difendersi, spezzare il ritmo dell'altro, finché uno cade. Niente riflessi, niente scatti — ogni partita è una piccola partita a scacchi travestita da rissa fantasy disegnata a mano, giocabile su telefono, browser e desktop, dal vivo o come replay.

Sotto, l'architettura gestisce diecimila giocatori insieme, porta un giocatore dalla coda a un match dal vivo in circa quattro secondi in qualsiasi parte del mondo, e fa girare ogni scontro a pieno frame-rate dal telefono al desktop. Il gioco è arbitrato interamente sui nostri server; il combattimento dal vivo si accende su istanze cloud che compaiono e spariscono con la domanda; e ogni partita conclusa diventa carburante per una Neural AI che impara da sola a giocare. Il resto di questa pagina la attraversa, strato dopo strato.

10 000 giocatori insieme Telefono · browser · desktop Self-hosted · cloud multi-regione Neural AI
L'arena su desktop
L'arena su desktop — 238 fps. Ogni numero sullo schermo è calcolato lato server dal motore di combattimento; il client si limita a disegnare.
Lo stesso match su telefono a 120 fps
Lo stesso match su telefono a 120 fps — un solo codebase Flutter, ogni piattaforma.
La progressione del personaggio: cinque statistiche, affinità elementali, curve di crescita
La progressione del personaggio: cinque statistiche, affinità elementali, curve di crescita — tutto dati lato server.
L'economia del roster: i personaggi si sbloccano con valuta di gioco, prezzata dal server, mai hardcoded
L'economia del roster: i personaggi si sbloccano con valuta di gioco, prezzata dal server, mai hardcoded.

Panoramica

Perche un RPG a turni ha bisogno di tutto questo backend.

A prima vista Sigilwake sembra semplice — due campioni, una mossa per turno, zero riflessi. Verrebbe da pensare che si potrebbe pubblicarlo nel modo economico e preconfezionato. È esattamente la strada che imbocca la maggior parte dei giochi indie, ed è esattamente il motivo per cui così tanti vengono invasi dai cheater, dissanguati dalle frodi sui rimborsi e abbandonati nel giro di un anno. Sigilwake è costruito nel modo opposto — ed ecco cosa comporta.

Autoritativo sul server dal primo giorno

Il dispositivo del giocatore è uno schermo, non un arbitro. Ogni punto di vita, ogni risorsa, ogni tiro di dado, ogni ricompensa è deciso dalla nostra parte — l'app mostra soltanto il risultato. Un giocatore non può modificarsi la vita, assegnarsi un premio o proclamarsi vincitore. È l'unico progetto che regge nel momento in cui entrano in gioco denaro vero e competizione vera.

Un backend costruito a due velocità

Non tutto ciò che fa un gioco ha la stessa urgenza. Accedere, salvare i progressi, gestire il negozio e le classifiche può prendersi un momento con calma. Risolvere un duello dal vivo, turno dopo turno, no. Così abbiamo costruito il backend a due velocità — uno strato tranquillo per la quotidianità e uno strato veloce pensato solo per il vivo di una partita — ognuno capace di crescere per conto suo insieme al pubblico.

Combattimento che scala su richiesta

Una partita dal vivo non ha bisogno di una macchina ferma ad aspettarla. Le nostre istanze di combattimento sono usa-e-getta: una viene richiamata nell'istante in cui due giocatori vengono abbinati, gestisce lo scontro e viene dismessa appena finisce. La capacità segue la domanda in automatico, in tutto il mondo — così paghiamo solo i minuti in cui i giocatori stanno davvero combattendo, mai le poltrone vuote.

Un'AI che impara da ogni partita

Ogni scontro mai giocato viene registrato in silenzio e restituito a un'AI che impara da sola. Notte dopo notte il sistema gioca milioni di partite contro se stesso, trova dove il gioco è ingiusto e affina sia l'equilibrio sia l'avversario. Il traguardo è una mente artificiale compatta — abbastanza piccola da vivere dentro il gioco stesso — che già batte la maggior parte dei tester umani e un giorno combatterà a un livello che nessuna persona può raggiungere.

Giocatori simultanei 10 000

Dimostrato end-to-end a pieno carico — nessun hardware specializzato o esotico.

Dal tap al match ~4 sec

Dalla coda a un avversario dal vivo — in qualsiasi parte del mondo.

Giocatori per macchina 7 000

Sostenuti su una singola istanza.

L'AI del gioco ~454k parametri

Un cervello abbastanza piccolo da stare nell'app — batte già la maggior parte dei tester umani.

Mappa dell'architettura

L'intera piattaforma in un colpo d'occhio.

Due nodi fisici. Nove microservizi. Un motore di combattimento canonico, compilato sia nel client (per anteprime locali e PvE) sia nel server (come fonte di verita per ogni match PvP).

Topologia della piattaforma Sigilwake Sei livelli. Colonna uno: il livello client — client web, mobile, desktop e macOS, tutti connessi su TLS 1.3. Colonna due: il livello edge — CDN e WAF, terminazione TLS, un gateway WebSocket, il matchmaker con motore di rating e un firewall con rilevamento delle intrusioni. Colonna tre: il livello core — il backend di gioco per stato, portafogli e progressione, il servizio di autenticazione che emette JWT, il motore di combattimento autoritativo lato server, database SQL, cache in memoria, router di eventi, motore di streaming, proxy media, un paywall per negozio e diritti d'uso, SSO amministrativo e osservabilità. Colonna quattro: il game cloud — server per singola partita in regioni globali, un autoscaler a warm-pool e object storage per asset e replay. Due bande a tutta larghezza chiudono la mappa. La prima è la fucina AI: una flotta di self-play, un motore di bilanciamento e un trainer neurale che chiudono un ciclo di apprendimento verso il motore di combattimento. La seconda è la fucina creativa, la pipeline media con supervisione umana: generazione di sprite, generazione di colonne sonore e generazione di cinematiche, tutte convogliate in un cancello di revisione umana dove ogni asset generato viene approvato a mano. Ogni collegamento è etichettato con lo standard aperto che lo protegge: TLS 1.3, JWT, HMAC, mTLS. CLIENTS web · mobile · desktop WEB CLIENT browser · WebGL MOBILE CLIENT iOS / Android DESKTOP CLIENT Steam MACOS CLIENT desktop app EDGE public entry · hardened CDN + WAF static edge · filtering TLS TERMINATION public certificates EDGE GATEWAY WebSocket · realtime MATCHMAKER rating engine BOT DEFENSE rate limits · fingerprinting CORE private backbone GAME BACKEND state · wallets · progression COMBAT ENGINE server-authoritative sim AUTH SERVICE JWT / OAuth CORE DATABASE durable state IN-MEMORY CACHE sessions / nonces EVENT ROUTER pub / sub STREAM ENGINE HLS live + replay MEDIA PROXY resize · cache PAYWALL store · entitlements ADMIN SSO 2FA · policies OBSERVABILITY metrics / alerts GAME CLOUD elastic session fleet MATCH SERVERS per-match · global regions WARM-POOL AUTOSCALER pre-warmed · scale-to-zero OBJECT STORAGE assets / replays regions on demand AI FORGE self-improving loop · runs nightly SELF-PLAY FLEET thousands of matches nightly BALANCE ENGINE autonomous tuning NEURAL TRAINER policy + value nets CREATIVE FORGE human-in-the-loop media pipeline SPRITE GENERATION character art SOUNDTRACK GENERATION music CINEMATIC GENERATION combat animation HUMAN REVIEW every asset approved by hand TLS 1.3 JWT HMAC mTLS mTLS match result telemetry training data DATA FLOW request path async result / feedback learning loop media pipeline