
Circuit Artist è un gioco di disegno e simulazione di circuiti digitali.
🔧 Ho rielaborato il motore di simulazione per utilizzare una simulazione a eventi con ritardo variabile, tenendo conto della topologia dei fili per creare una mappa di distanza/ritardo di propagazione basata sul calcolo del ritardo di Elmore per gli alberi. Tiene anche conto dei NAND di fanout, quindi si hanno cose come: più alto è il fanout, maggiore è il ritardo, alberi che si propagano diversamente rispetto a "linee" ecc., per avere una simulazione più "accurata" in modo che i giocatori possano giocare/sviluppare intuizione per la progettazione di circuiti reali (più o meno).
🔍 Le distanze sono mappate ai pixel in modo che i giocatori possano visualizzare i fili che si "propagano" con un bagliore, cosa che trovo interessante e aiuta a capire come funzionano le cose. Il rendering viene eseguito in tempo reale con alcuni shader.
🕤 Ho anche aggiunto un design basato su delta per la simulazione per permettere di mettere in pausa e controllare la simulazione avanti e indietro, così i giocatori possono interagire con essa. Particolarmente utile per il debug di circuiti "ciclici".
🍰 I giocatori possono anche aggiungere livelli come in Photoshop (fino a 3 livelli), e i fili dei livelli possono connettersi con i livelli vicini, anche se i NAND sono consentiti solo sul livello inferiore. I fili sui livelli superiori hanno una velocità di "propagazione" maggiore.
🏆 Aggiunto un sistema di campagna a ritmo più lento in modo che i nuovi utenti possano risolvere problemi poco a poco e apprendere i concetti gradualmente, testando/affinando le soluzioni e tenendo traccia dei progressi. È ancora agli inizi, prevedo di aggiungere altro materiale in seguito.
👜 Ho aggiunto un'interfaccia utente simile a un inventario per posizionare progetti, così i giocatori possono costruire la propria libreria e riutilizzarla, aggiungendo anche una nuova dimensione di progressione al gioco.
🔉 Aggiunto un po' di suono ai circuiti, così quando simulano emettono un "bip" in base all'attività del circuito.
:godmode: La simulazione non è più "immediata"; i giocatori possono costruire i propri clock in modalità sandbox semplicemente esplorando il meccanismo di ritardo. I componenti sincroni/clockati non funzioneranno gratuitamente, bisogna renderli efficienti, aggiungendo una dimensione di sfida/divertimento extra al gioco.
🚧 C'è anche una formula/metodo semplificato di calcolo dell'energia per esplorare l'efficienza energetica del circuito rispetto alla velocità (anche se non è ancora completamente sviluppato nel gioco).
Consulta il documento di fisica per maggiori informazioni (in lavorazione)
Per Windows, puoi usare CMake + Visual Studio.
git clone https://github.com/lets-all-be-stupid-forever/circuit-artist.git
cd circuit-artist/
git submodule init
git submodule update
mkdir build
cd build/
cmake ..
make
|
|
|
|
|
|
|
|
|