Preview
Open Original
Circuit Artist is a digital logic circuit drawing game.
Changes in 1.1 💪
🔧 I’ve reworked the simulation engine to use a variable-delay event-driven simulation taking into account the topology of the wires to create a distance / propagation delay map based on elmore delay calculation for trees. It also takes into account fanout nands, so you have things like the higher the fanout the higher the delay, trees propagating differently then "lines" etc, to a have a more "accurate" simulation so players can play/develop intuition for real circuit design (sort of).
🔍 The distances are mapped to pixels so players can visualize the wires "propagating" with glow, which I find cool and helps understand how things work. Rendering is done in real time with some shaders.
🕤 I’v…
Circuit Artist is a digital logic circuit drawing game.
Changes in 1.1 💪
🔧 I’ve reworked the simulation engine to use a variable-delay event-driven simulation taking into account the topology of the wires to create a distance / propagation delay map based on elmore delay calculation for trees. It also takes into account fanout nands, so you have things like the higher the fanout the higher the delay, trees propagating differently then "lines" etc, to a have a more "accurate" simulation so players can play/develop intuition for real circuit design (sort of).
🔍 The distances are mapped to pixels so players can visualize the wires "propagating" with glow, which I find cool and helps understand how things work. Rendering is done in real time with some shaders.
🕤 I’ve also added a delta-based design on the simulation to allow simulation to be paused and controlled back and forth so players can interact with it. Particularly useful for debugging "cyclic" circuits.
🍰 Players can also add layers as in photoshop, (up to 3 layers), and layer wires can connect with neighboor layers, although NANDs are only allowed on the bottom layer. Wires on upper layers have a higher "propagation" speed.
🏆 Added a lower-pace campaign system so new users can solve problems little by little and learn concepts gradually, testing/refining solutions and tracking progress. It’s still on early days, plan to put more stuff later.
👜 I’ve added an inventory-like UI for placing blueprints so players can build it’s library and re-use it, which also adds a new progression dimension to the game.
🔉 Added a bit of sound to circuits, so when they simulate they will "beep" in function of the circuit activity.
The simulation also is no longer "immediate", players can build their own clocks on sandbox mode by just exploring the delay mechanism. Clocked/Synchronous components won’t work for free, need to make them efficient, adding an extra challenge/fun dimension to the game.
🚧 There’s also a simplified energy calculation formula/metric to explore circuit energy efficiency vs speed (even though its still not fully developed yet in the game).
Links
Gifs 👀
Game Rules
- Little pixel triangles are NANDs.
- Black pixels are background.
- Everything else is a wire.
Clone, compile, run on Linux/MacOS
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
Made with raylib.
License
GPLv3. See LICENSE file. For dependencies, see third_party folder.