
Circuit Artist는 디지털 회로 그리기 및 시뮬레이션 게임입니다.
|
|
|
|
|
|
|
|
|
🔧 시뮬레이션 엔진을 가변 지연 이벤트 기반 시뮬레이션으로 재작업했습니다. 와이어의 토폴로지를 고려하여 트리에 대한 엘모어 지연(Elmore delay) 계산을 기반으로 거리/전파 지연 맵을 생성합니다. 또한 팬아웃 NAND도 고려하여, 팬아웃이 높을수록 지연이 커지고, 트리가 "라인"과 다르게 전파되는 등의 동작을 구현하여 플레이어가 실제 회로 설계에 대한 직관을 기를 수 있도록 보다 "정확한" 시뮬레이션을 제공합니다(어느 정도까지는).
🔍 거리가 픽셀에 매핑되어 플레이어가 와이어가 빛나며 "전파"되는 모습을 시각화할 수 있습니다. 이는 흥미롭고 동작 원리를 이해하는 데 도움이 됩니다. 렌더링은 일부 셰이더를 사용하여 실시간으로 이루어집니다.
🕤 또한 시뮬레이션에 델타 기반 설계를 추가하여 시뮬레이션을 일시 정지하고 앞뒤로 제어할 수 있게 하여 플레이어가 상호작용할 수 있도록 했습니다. 특히 "순환" 회로를 디버깅할 때 유용합니다.
🍰 플레이어는 포토샵처럼 레이어를 추가할 수 있으며(최대 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
그러면 b_wasm 폴더에 html이 생성되며, 예를 들어 python -m http.server를 통해 서빙할 수 있습니다.