Robert.Torna al playground08 / 10

Playground · Monopoly

Monopoly sembrava semplice. Finché non ho dovuto programmarlo.

Una ricostruzione completa di Monopoly: mondo 3D, fisica autentica, tutte le regole, multiplayer online e perfino un editor per costruire il tabellone.

Tabellone Monopoly tridimensionale con due dadi in volo
Due dadi, fisica reale e un tabellone che doveva reagire a ogni risultato.

01 · Prima del codice

Non una tech demo. Il gioco da tavolo che amavo, interamente nel browser.

Il pretesto era imparare Three.js divertendomi. Il risultato è diventato un gioco completo: turni, pedine, proprietà, carte, scambi, prigione, aste, edifici e vittoria.

Tutte le regole
Il flusso del gioco, comprese le eccezioni che si scoprono soltanto implementandole.
Un tabellone vivo
Scena 3D, animazioni e logica applicativa dovevano restare sincronizzate.
Fino a quattro
Partite locali oppure online, con una stanza condivisa.

02 · La fisica

I dadi non fingono. Cadono, rimbalzano e decidono davvero il turno.

Cannon.js applica forze casuali a due corpi fisici. Il numero non viene scelto prima: viene letto dall’orientamento finale dei dadi e diventa il punto di partenza della logica di gioco.

Dadi tridimensionali lanciati sul tabellone Monopoly
Il lancio dentro la scena 3D.
  1. 01

    Forze e rotazioni vengono applicate casualmente.

  2. 02

    Cannon.js simula caduta, urti e rimbalzi.

  3. 03

    Il risultato finale viene tradotto nella somma del turno.

  4. 04

    La pedina avanza rispettando angoli e perimetro.

03 · Multiplayer

Una stanza, quattro giocatori e un solo client che decide cosa è successo.

Chi crea la stanza diventa il client principale. Ogni azione viene trasformata in un evento e sincronizzata con Firebase Realtime Database; gli altri giocatori riproducono lo stesso evento in locale.

Lobby multiplayer Monopoly con tre giocatori e relative pedine
Stanza condivisa, pedine scelte e un massimo di quattro partecipanti.
01 · Crea la stanza
Un codice identifica la partita nel database realtime.
02 · Entra con il codice
Ogni giocatore sceglie nome e pedina.
03 · Inizia la partita
Il creatore avvia e viene sorteggiato il primo turno.
04 · Replica gli eventi
Ogni client ricostruisce in locale ciò che è successo.

04 · L’editor

Poi ho reso modificabile anche Monopoly.

Tipologie di casella predefinite, ma nomi, colori, prezzi, rendite, edifici, probabilità ed eventi personalizzabili. Una mappa completa può essere costruita e salvata nel database.

Editor del tabellone Monopoly
Struttura della mappa.
Editor dei valori di una proprietà Monopoly
Regole economiche della casella.

05 · Dentro il gioco

La parte visibile era il 3D. Sotto, dovevano funzionare tutte le regole.

Ogni casella modifica denaro, proprietà, posizione o possibilità del giocatore. La scena mostra ciò che accade; il motore mantiene coerente lo stato della partita.

Scheda di una proprietà Monopoly con prezzi e rendite
Proprietà, case e hotel.
Finestra di scambio proprietà tra giocatori
Scambi tra giocatori.
Carta probabilità aperta durante una partita
Imprevisti e probabilità.
Movimento
Passaggio dal via, angoli e calcolo della posizione.
Economia
Acquisti, affitti, mutui, case, hotel e bancarotta.
Eventi
Probabilità, imprevisti, tasse e prigione.
Turni
Doppi, rilanci, scambi e condizioni di fine partita.

06 · Atmosfere

Ogni refresh può cambiare atmosfera. Le regole, fortunatamente, restano le stesse.

Il tema visuale viene scelto casualmente e modifica scena, palette e particelle senza cambiare il motore sottostante.

Tema verde del tabellone Monopoly
Forest.
Tema azzurro del tabellone Monopoly
Sky.
Tema notturno del tabellone Monopoly
Night.

Il risultato

Un progetto del 2022 che ha smesso presto di comportarsi come un esercizio.

Lo sviluppo è proseguito, a più riprese, fino a novembre 2023. Oggi mostra inevitabilmente la sua età, ma resta un gioco completo e una fotografia molto onesta di quanto volessi capire.

2022 → 2023
Più iterazioni, non una demo di un weekend.
Fino a 4
Giocatori locali oppure connessi alla stessa stanza.
Completo
Regole, fisica, personalizzazione e sincronizzazione.

Oggi

Lo rifarei completamente diverso. Ma rifarei esattamente la scelta di costruirlo.

Molte decisioni sarebbero altre. Il motivo sarebbe lo stesso: fisica, realtime, stato, multiplayer e tutte quelle cose che non volevo soltanto capire a parole.