
Circuit Artist ist ein digitales Spiel zum Zeichnen und Simulieren von Schaltkreisen.
|
|
|
|
|
|
|
|
|
🔧 Ich habe die Simulations-Engine überarbeitet, um eine ereignisgesteuerte Simulation mit variabler Verzögerung zu verwenden, die die Topologie der Drähte berücksichtigt, um eine Distanz-/Ausbreitungsverzögerungskarte basierend auf der Elmore-Delay-Berechnung für Bäume zu erstellen. Sie berücksichtigt auch Fanout-NANDs, sodass Dinge wie „je höher der Fanout, desto höher die Verzögerung“, Bäume, die sich anders ausbreiten als „Linien“ usw. entstehen, um eine „genauere“ Simulation zu haben, damit Spieler spielen/eine Intuition für echtes Schaltungsdesign entwickeln können (sozusagen).
🔍 Die Distanzen werden auf Pixel abgebildet, sodass Spieler visualisieren können, wie sich die Drähte mit einem Leuchten „ausbreiten“, was ich cool finde und hilft zu verstehen, wie die Dinge funktionieren. Das Rendering erfolgt in Echtzeit mit einigen Shadern.
🕤 Ich habe auch ein Delta-basiertes Design in die Simulation eingefügt, damit die Simulation pausiert und vor- und zurückgesteuert werden kann, sodass Spieler damit interagieren können. Besonders nützlich zum Debuggen „zyklischer“ Schaltkreise.
🍰 Spieler können auch Ebenen wie in Photoshop hinzufügen (bis zu 3 Ebenen), und Drähte einer Ebene können sich mit benachbarten Ebenen verbinden, obwohl NANDs nur auf der untersten Ebene erlaubt sind. Drähte auf oberen Ebenen haben eine höhere „Ausbreitungs“-Geschwindigkeit.
🏆 Ein langsameres Kampagnensystem hinzugefügt, damit neue Benutzer Probleme nach und nach lösen und Konzepte schrittweise lernen können, Lösungen testen/verfeinern und den Fortschritt verfolgen können. Es ist noch in den Anfängen, ich plane, später mehr Inhalte hinzuzufügen.
👜 Ich habe eine inventarähnliche Benutzeroberfläche zum Platzieren von Bauplänen hinzugefügt, damit Spieler ihre Bibliothek aufbauen und wiederverwenden können, was auch eine neue Progressionsdimension zum Spiel hinzufügt.
🔉 Ein wenig Sound zu Schaltkreisen hinzugefügt, sodass sie beim Simulieren je nach Schaltkreisaktivität „piepen“.
:godmode: Die Simulation ist auch nicht mehr „sofort“, Spieler können im Sandbox-Modus ihre eigenen Takte bauen, indem sie einfach den Verzögerungsmechanismus erkunden. Getaktete/synchrone Komponenten funktionieren nicht umsonst, man muss sie effizient machen, was eine zusätzliche Herausforderung/Unterhaltungsdimension zum Spiel hinzufügt.
🚧 Es gibt auch eine vereinfachte Energieberechnungsformel/-metrik, um die Energieeffizienz von Schaltkreisen im Vergleich zur Geschwindigkeit zu erkunden (obwohl sie im Spiel noch nicht vollständig entwickelt ist).
Weitere Informationen im Physik-Dokument (in Arbeit)
Für Windows können Sie CMake + Visual Studio verwenden.
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
Zuerst muss emsdk installiert werden:
cd path/to/emsdk
./emsdk install latest # only needed the first time
./emsdk activate latest
source ./emsdk_env.sh # Windows: emsdk_env.bat
Dann:
mkdir b_wasm && cd b_wasm
emcmake cmake .. -DPLATFORM=Web
emmake make
Dann wird die HTML im Ordner b_wasm generiert, die Sie beispielsweise über python -m http.server bereitstellen können.