
|
|
|
|
|
|
|
|
|
🔧 シミュレーションエンジンを、可変遅延のイベント駆動型シミュレーションに作り直しました。配線のトポロジーを考慮し、ツリーに対するエルモア遅延計算に基づいて距離/伝播遅延マップを作成します。ファンアウト 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
その後、b_wasm フォルダに html が生成されるので、例えば python -m http.server で配信できます。