
Circuit Artist — это игра для рисования и симуляции цифровых схем.
|
|
|
|
|
|
|
|
|
🔧 Я переработал движок симуляции, чтобы использовать событийно-управляемую симуляцию с переменной задержкой, учитывающую топологию проводов для создания карты расстояний / задержек распространения на основе расчёта задержки Элмора для деревьев. Она также учитывает NAND-элементы с разветвлением, так что чем выше разветвление, тем выше задержка, деревья распространяются иначе, чем «линии», и т. д., чтобы симуляция была более «точной» и игроки могли играть / развивать интуицию для реального проектирования схем (вроде того).
🔍 Расстояния отображаются на пиксели, чтобы игроки могли визуализировать «распространение» проводов со свечением, что, по-моему, круто и помогает понять, как всё работает. Рендеринг выполняется в реальном времени с помощью шейдеров.
🕤 Я также добавил дельта-ориентированный подход к симуляции, позволяющий ставить симуляцию на паузу и управлять ею вперёд и назад, чтобы игроки могли с ней взаимодействовать. Особенно полезно для отладки «циклических» схем.
🍰 Игроки также могут добавлять слои, как в Photoshop (до 3 слоёв), и провода слоёв могут соединяться с соседними слоями, хотя NAND-элементы разрешены только на нижнем слое. Провода на верхних слоях имеют более высокую «скорость распространения».
🏆 Добавлена кампания в более медленном темпе, чтобы новые пользователи могли решать задачи понемногу и постепенно изучать концепции, тестируя / совершенствуя решения и отслеживая прогресс. Это всё ещё ранняя стадия, планирую добавить больше позже.
👜 Я добавил UI, похожий на инвентарь, для размещения чертежей, чтобы игроки могли собирать свою библиотеку и повторно её использовать, что также добавляет новое измерение прогрессии в игру.
🔉 Добавлено немного звука для схем, так что при симуляции они будут «пищать» в зависимости от активности схемы.
: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
Сначала нужно установить emsdk:
cd path/to/emsdk
./emsdk install latest # only needed the first time
./emsdk activate latest
source ./emsdk_env.sh # Windows: emsdk_env.bat
Затем:
mkdir b_wasm && cd b_wasm
emcmake cmake .. -DPLATFORM=Web
emmake make
После этого html генерируется в папке b_wasm, вы можете раздавать его, например, через python -m http.server.