
Circuit Artist es un juego de dibujo y simulación de circuitos digitales.
|
|
|
|
|
|
|
|
|
🔧 He rediseñado el motor de simulación para usar una simulación dirigida por eventos con retardo variable, teniendo en cuenta la topología de los cables para crear un mapa de distancia/retardo de propagación basado en el cálculo de retardo de Elmore para árboles. También considera los NANDs de abanico de salida, de modo que a mayor abanico, mayor retardo, los árboles se propagan de forma diferente a las "líneas", etc., para tener una simulación más "precisa" que permita a los jugadores desarrollar intuición para el diseño de circuitos reales (más o menos).
🔍 Las distancias se asignan a píxeles para que los jugadores puedan visualizar los cables "propagándose" con un brillo, lo que me parece genial y ayuda a entender cómo funcionan las cosas. El renderizado se hace en tiempo real con algunos shaders.
🕤 También he añadido un diseño basado en delta para la simulación, permitiendo pausarla y controlarla hacia adelante y atrás para que los jugadores puedan interactuar con ella. Particularmente útil para depurar circuitos "cíclicos".
🍰 Los jugadores pueden añadir capas como en Photoshop (hasta 3 capas), y los cables de las capas pueden conectarse con capas vecinas, aunque los NANDs solo están permitidos en la capa inferior. Los cables en las capas superiores tienen una velocidad de "propagación" mayor.
🏆 Añadí un sistema de campaña de ritmo más lento para que los nuevos usuarios puedan resolver problemas poco a poco y aprender conceptos gradualmente, probando/refinando soluciones y haciendo seguimiento del progreso. Todavía está en sus inicios, planeo agregar más contenido después.
👜 He añadido una interfaz tipo inventario para colocar planos, de modo que los jugadores puedan construir su biblioteca y reutilizarlos, lo que añade una nueva dimensión de progresión al juego.
🔉 Añadí un poco de sonido a los circuitos, de modo que cuando simulan, "pitan" en función de la actividad del circuito.
:godmode: La simulación ya no es "inmediata"; los jugadores pueden construir sus propios relojes en el modo sandbox simplemente explorando el mecanismo de retardo. Los componentes sincrónicos/reloj no funcionan gratis, hay que hacerlos eficientes, añadiendo una dimensión extra de desafío/diversión al juego.
🚧 También hay una fórmula/métrica simplificada de cálculo de energía para explorar la eficiencia energética vs velocidad del circuito (aunque todavía no está completamente desarrollada en el juego).
Consulta el documento de física para más información (en progreso)
Para Windows, puedes usar 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