Come funzionano i nostri mondi ospitati
Un mondo tutto tuo su internet, in cui gli amici possono entrare quando vogliono, senza che nessuno debba configurare un server. È questa l'idea dietro i nostri Mondi ospitati, e in questo articolo ti mostro che cosa succede davvero dietro il pulsante «Gioca» del portale.
Il cuore di tutto è il WorldHost: un piccolo servizio sul nostro server che gestisce i mondi. Ogni mondo gira nel proprio container Docker, completamente isolato, con il suo file di salvataggio, il suo limite di memoria e il suo tetto di CPU. Quando nessuno gioca, non gira niente: il mondo dorme, il container è fermo e non consuma risorse.
Quando qualcuno clicca su «Gioca» nel portale, succede questo: il WorldHost controlla prima di tutto se hai il permesso di entrare; per i mondi protetti da password, la password viene verificata prima di svegliare il mondo, così nessuno può far partire il mondo di qualcun altro solo provando a entrare. Solo dopo il container viene avviato, il mondo carica il suo salvataggio e tu ricevi un token d'ingresso di breve durata valido proprio per quel mondo. Nel frattempo il portale ti mostra lo stato «Risveglio del mondo in corso…».
Quando tutti i giocatori lasciano il mondo, dopo un po' torna a dormire: il salvataggio viene scritto e il container si ferma. E se preferisci continuare a giocare il tuo mondo in locale, puoi scaricare il salvataggio e ricaricarlo più tardi: il salvataggio di un mondo ospitato è identico a quello di una partita locale.
Il tutto è costruito volutamente in piccolo: niente Kubernetes, niente magie del cloud, ma un server, Docker e un servizio che avvia e ferma container. Per un progetto di famiglia, porta sorprendentemente lontano. Quanto lontano esattamente, e quanto costa un server così, è una storia per l'articolo sul nostro VPS.
Commenti