
Circuit Artist — это игра для рисования и симуляции цифровых схем.
🔧 Я переработал симуляционный движок, используя событийно-управляемую симуляцию с переменной задержкой, учитывающую топологию проводов для создания карты расстояний/задержек распространения на основе расчёта задержки Элмора для деревьев. Также учитывается разветвление по выходу NAND, так что, например, чем больше разветвление, тем больше задержка, деревья распространяются иначе, чем «линии», и т.д., для более «точной» симуляции, чтобы игроки могли играть и развивать интуицию в реальном проектировании схем (в некотором роде).
🔍 Расстояния отображаются в пикселях, чтобы игроки могли визуализировать «распространение» проводов с помощью свечения, что, по моему мнению, круто и помогает понять, как всё работает. Рендеринг выполняется в реальном времени с использованием шейдеров.
🕤 Я также добавил дельта-ориентированный дизайн симуляции, позволяющий приостанавливать симуляцию и управлять ей вперёд-назад, чтобы игроки могли с ней взаимодействовать. Это особенно полезно для отладки «циклических» схем.
🍰 Игроки также могут добавлять слои, как в Photoshop (до 3 слоёв), и провода слоёв могут соединяться с соседними слоями, хотя NAND разрешены только на нижнем слое. Провода на верхних слоях имеют более высокую скорость «распространения».
🏆 Добавлена кампания с более низким темпом, чтобы новые пользователи могли решать задачи постепенно, изучая концепции, тестируя/уточняя решения и отслеживая прогресс. Пока на ранней стадии, планирую добавить больше контента позже.
👜 Добавлен интерфейс, похожий на инвентарь, для размещения чертежей, чтобы игроки могли собирать свою библиотеку и повторно использовать их, что также добавляет новое измерение прогрессии в игру.
🔉 Добавлено немного звука для схем: когда они симулируют, они «пищат» в зависимости от активности схемы.
:godmode: Симуляция больше не «мгновенна»; игроки могут создавать собственные тактовые генераторы в режиме песочницы, просто исследуя механизм задержки. Тактируемые/синхронные компоненты не будут работать бесплатно; нужно сделать их эффективными, что добавляет дополнительный вызов и веселье в игру.
🚧 Также добавлена упрощённая формула/метрика расчёта энергии для исследования энергоэффективности схемы по сравнению со скоростью (хотя в игре это ещё не полностью реализовано).
Ознакомьтесь с документом по физике для получения дополнительной информации (работа в процессе)
Для Windows можно использовать 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
|
|
|
|
|
|
|
|
|