
Circuit Artist هي لعبة رسم ومحاكاة للدوائر الرقمية.
|
|
|
|
|
|
|
|
|
🔧 أعدت تصميم محرك المحاكاة لاستخدام محاكاة قائمة على الأحداث ذات تأخير متغير، مع مراعاة طوبولوجيا الأسلاك لإنشاء خريطة مسافة / تأخير انتشار بناءً على حساب تأخير Elmore للأشجار. كما يأخذ في الاعتبار بوابات NAND ذات التفرع، بحيث تحصل على أشياء مثل: كلما زاد التفرع زاد التأخير، والأشجار تنتشر بشكل مختلف عن "الخطوط" وما إلى ذلك، للحصول على محاكاة أكثر "دقة" حتى يتمكن اللاعبون من اللعب/تطوير الحدس لتصميم الدوائر الحقيقي (نوعًا ما).
🔍 يتم تعيين المسافات إلى بكسلات حتى يتمكن اللاعبون من تصور الأسلاك وهي "تنتشر" مع توهج، وهو ما أجده رائعًا ويساعد على فهم كيفية عمل الأشياء. يتم العرض في الوقت الفعلي باستخدام بعض الـ shaders.
🕤 أضفت أيضًا تصميمًا قائمًا على الدلتا في المحاكاة للسماح بإيقاف المحاكاة والتحكم بها للأمام والخلف حتى يتمكن اللاعبون من التفاعل معها. مفيد بشكل خاص لتصحيح الدوائر "الدورية".
🍰 يمكن للاعبين أيضًا إضافة طبقات كما في Photoshop، (حتى 3 طبقات)، ويمكن لأسلاك الطبقات الاتصال بالطبقات المجاورة، على الرغم من أن بوابات NAND مسموح بها فقط في الطبقة السفلية. أسلاك الطبقات العليا لديها سرعة "انتشار" أعلى.
🏆 أضفت نظام حملة بوتيرة أبطأ حتى يتمكن المستخدمون الجدد من حل المشكلات شيئًا فشيئًا وتعلم المفاهيم تدريجيًا، واختبار/تحسين الحلول وتتبع التقدم. لا يزال في أيامه الأولى، وأخطط لإضافة المزيد من الأشياء لاحقًا.
👜 أضفت واجهة مستخدم تشبه المخزون لوضع المخططات (blueprints) حتى يتمكن اللاعبون من بناء مكتبتهم وإعادة استخدامها، مما يضيف أيضًا بُعدًا جديدًا للتقدم في اللعبة.
🔉 أضفت القليل من الصوت للدوائر، بحيث عندما تحاكي ستصدر "صفيرًا" بناءً على نشاط الدائرة.
: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 على سبيل المثال.