Featherfilch

ایک میگ پائی رات کو میوزیم لوٹ رہی ہے، اور صرف روشنی ہی اسے پکڑ سکتی ہے۔ محافظوں کی لینٹرنز حقیقی سایہ ڈالنے والے Light2D کونز ہیں؛ ڈسپلے کیسز اور ستون LightOccluder2D پولیگونز رکھتے ہیں؛ اور شناخت کا ٹیسٹ اسی جیومیٹری پر ریکاسٹ کرتا ہے۔ جو کچھ آپ سایہ دار دیکھتے ہیں وہ واقعی چوری کی حالت ہے — روشنی روکنے والے کیس کے پیچھے چلے جائیں تو آپ نے محافظ کی نظر بھی روک دی ہے۔

ابھی کھیلیں

چلنے کے لیے تیر / WASD · چھپ کر چلنے کے لیے Shift · کیس کھولنے کے لیے E · فلٹر-ڈیش کے لیے X (محافظ اسے سنتے ہیں) · P روکنا · M کم حرکت۔ پانچ جواہرات کو تین بار پکڑے جانے سے پہلے گھونسلے تک پہنچائیں۔

▶ کھیلیں

تصور ہی معاہدہ ہے

کوڈ کی ایک لائن سے پہلے تین کانسیپٹ شیٹس بنائی گئیں: رات کی کی آرٹ، ایک میگ پائی کریکٹر شیٹ، اور ایک میوزیم پراپ کالآؤٹ بورڈ۔ ان شیٹس پر ہر نامزد چیز شپ شدہ گیم میں ایک حقیقی تخلیق شدہ اثاثہ ہے — 24 قطاریں، کوئی نہیں چھوڑی گئی۔ کی آرٹ کے ساتھ انجن فریم لائیو بلڈ ہے، کوئی نمونہ نہیں۔

فیدرفلچ کانسیپٹ کی آرٹ
کانسیپٹ کی آرٹ — وہ معاہدہ جس کے خلاف اس پیس کا آڈٹ کیا جاتا ہے
فیدرفلچ انجن میں براہ راست
وہی ہال انجن میں براہ راست: لینٹرن کون، آکلوڈر سایہ، کیس کے پیچھے اندھیرے میں میگ پائی

آرٹ سے پہلے سرمئی باکس

پورا ڈاکہ پہلے خاکستری مستطیلوں کے طور پر چلا — گشت کے راستے، کون جیومیٹری، آکلوڈر ریکاسٹس، کھولنے کا ہولڈ، لے جانا، تیسرے جواہر کے بعد تیسرے محافظ کی آمد، صبح کا دوبارہ آغاز۔ تین بلاک آؤٹ راؤنڈز؛ راؤنڈ 1 ناکام ہوا کیونکہ آٹو پائلٹ نے کیس سے 118 پکسل دور پارک کیا، جو 78 پکسل کے کھولنے کے دائرے سے باہر تھا، اور اصلاح یہ تھی کہ کیس کے مرکز کی طرف راستہ بنایا جائے اور 62 پکسل پر رکا جائے۔ تب ہی کوئی آرٹ بنایا گیا۔

بلاک آؤٹ خاکستری خانے
بلاک آؤٹ: ہال مستطیلوں کی شکل میں — کون لائٹس اور آکلوڈرز پہلے سے حقیقی ہیں
وہی ہال اپنے آرٹ کے ساتھ
وہی ہال اپنے بلینڈر آرٹ کے ساتھ

ہر اسپرائٹ ایک بلینڈر رینڈر ہے — دو بار

اس ٹکڑے میں کوئی کھینچے ہوئے سپرائٹس نہیں ہیں۔ میگ پائی اور گارڈز کو Blender میں مقررہ 64 px/میٹر پر بنایا، ریگ کیا اور رینڈر کیا گیا ہے، اور ہر ایک فریم رینڈر کیا جاتا ہے دو بار: ایک بار رنگ کے لیے اور ایک بار کیمرا-اسپیس نارمل شیڈر کے ذریعے۔ انجن دونوں حصے ایک CanvasTextureمیں فیڈ کرتا ہے، تاکہ گزرتی ہوئی لالٹین واقعی پرندے کی پیٹھ اور پارکیٹ کے بیولز کو دوبارہ روشن کرے۔ سمتیں کبھی آئینہ نہیں کی جاتیں — flip_h نارمل میپ کے X چینل کو دوبارہ سائن نہیں کرتا، لہٰذا چاروں سمتیں حقیقی معنوں میں رینڈر کی جاتی ہیں۔

میگ پائی اسپرائٹ شیٹ اپنے نارمل-میپ پاس کے ساتھ
میگ پائی کی 56-فریم شیٹ (idle / walk-hop / sneak / dash / pry × 4 سمتیں) اپنے مماثل نارمل-میپ پاس کے ساتھ

پہرے دار حقیقی موشن کیپچر پر چلتے ہیں

پہرے داروں کی چال ہاتھ سے پوز نہیں کی گئی: CMU کلپ 02_01 کو پلیٹ فارم کی موکیپ کٹ کے ذریعے گارڈ رگ پر ری ٹارگٹ کیا گیا ہے اور ہر سمت کے چھ فریموں میں سیمپل کیا گیا ہے، جبکہ لمبے ساکن کلپ 15_04 کو idle کے لیے استعمال کیا گیا ہے۔ لالٹین والا بازو واحد دستی طور پر تیار کردہ استثنا ہے — ایک رات کا پہرے دار لیمپ کو اٹھائے رکھتا ہے، اسے آزاد ہاتھ کی طرح نہیں جھلاتا، اس لیے اس بازو کے بیک شدہ curves کو ہٹا کر ہاتھ سے سیٹ کیا گیا ہے، جبکہ باقی پورا جسم اب بھی موکیپ سے چلتا ہے۔

محافظ کے چلنے کے فریمز، چار سمتیں
گارڈ: CMU 02_01 چال، چار سمتیں، لالٹین ہاتھ میں اٹھائے ہوئے
چہرے کی اوورلے شیٹ
چہرے تاثرات دیتے ہیں: آنکھیں، ابرو اور منہ سر کے pivot کے تحت الگ حصے ہیں، جو اپنی علیحدہ اوورلے شیٹ کے طور پر رینڈر ہوتے ہیں — نیوٹرل، چوکنا، غصیلا اور دو مرحلوں والا جھپکنا

اٹھایا ہوا روشنی کھینچی گئی لالٹین اور

ایک اٹھائی ہوئی روشنی جو لالٹین کے قریب تیرتی ہے اس کے بجائے آن یہ ایک خرابی کی قسم ہے جس کی قیمت یہ لیب پہلے ہی ادا کر چکی ہے۔ یہاں لالٹین-شیشے کا پکسل Blender میں ہر سمت کے ہر فریم کے لیے ماپا جاتا ہے اور char.jsonمیں لکھا جاتا ہے؛ انجن میں گرم پول دونوں پتہ لگانے والے مخروط سے پن لگی ہوئی ہے ہر فریم اس اینکر پر دوبارہ پن کیے جاتے ہیں۔ وہ مخروط جو رینڈرر کھینچتا ہے اور وہ کرن جو پتہ لگانے کا ٹیسٹ کاسٹ کرتا ہے، دونوں ایک ہی نقطے سے شروع ہوتے ہیں — کوئی دوسری، پوشیدہ جیومیٹری نہیں ہے۔

چار سمتوں میں لینٹرن اینکرز
چاروں سمتوں میں وہی اینکر — شیشے پر روشنی، ہر سمت میں

ایمانداری سے ناپا گیا

لیب اس ہوسٹ کے سافٹ ویئر رینڈرر پر Playwright کے ساتھ آڈٹ کرتی ہے — کوئی GPU نہیں — لہٰذا نیچے دی گئی فریم ریٹ فرش ہے، چھت نہیں۔ غیر خوشنما قطاریں بھی شامل ہیں۔

پیمائشویلیو
ایکسپورٹ پے لوڈ (pck)1.67 MB
انجن رن ٹائم (wasm، فکسڈ)33.7 MB
پے لوڈ میں تیار کردہ آرٹ1.29 MB
آڈیو اسٹیمز0.46 MB
بلاک آؤٹ راؤنڈز3 (r1 ناکام: آٹوپائلٹ پرائی ریڈیس سے باہر پارک ہوا)
آرٹ آڈٹ راؤنڈز7 — r1-r5 نے 10 بصری خرابیاں پائیں، r6 صاف، r7 تصدیق کر رہا ہے
رینڈر شدہ سپرائٹ فریمز152 (76 ڈفیوز + 76 کیمرا-اسپیس نارمل)
استعمال شدہ موکیپ کلپسCMU 02_01 چال، 15_04 بیکار (گارڈز)؛ میگ پائی پروسیجرل ہے
سیلف ٹیسٹ پلے تھرو5/5 جواہرات، جیت t=126 s پر
آڈٹ میں فریم ریٹسافٹ ویئر رینڈرر، کوئی GPU نہیں - فی سیکنڈ فریم کا ایک حصہ
معلوم ماحولیاتی خرابیمسلسل ~5 منٹ کھیلنے کے بعد سافٹ ویئر ریسٹرائزر دنیا کا کینوس دکھانا بند کر دیتا ہے؛ HUD قائم رہتا ہے۔ سائیکل 1 میں تحقیق کی گئی، یہ سین-گراف کی خرابی نہیں ہے۔

حقیقی انجن خصوصیات، حاصل شدہ

سایہ ڈالنے والا Light2D

ہر گارڈ کی لالٹین ایک ٹیکسچر-ماسکڈ مخروط PointLight2D ہے جس میں سائے آن ہیں۔ کیسز اور ستون LightOccluder2D ہیں — جو سائے آپ دیکھتے ہیں وہی چھپنے کی جگہیں ہیں۔

نارمل-میپڈ سپرائٹس

ہر فریم CanvasTexture کے ذریعے ایک مماثل کیمرا-اسپیس نارمل پاس بھیجتا ہے، تاکہ پرندہ، گارڈز، پارکیٹ اور کیس بیول سب لالٹین کی روشنی لے سکیں۔

پتہ لگانا = وہی جیومیٹری

روشن ہونے کا مطلب ہے: مخروط کے زاویے کے اندر، رینج کے اندر، اور اوکلوڈر لیئر پر صاف ریکاسٹ — جو کھینچی گئی لالٹین کے شیشے سے کاسٹ ہو۔

TileMapLayer فرش

بلاک-پارکیٹ، قالین رنر اور ماربل بارڈر ٹائلز، ہر ایک Blender میں اوپر سے نیچے رینڈر شدہ حقیقی ریلیف نارمل میپ کے ساتھ۔

AStarGrid2D

گارڈ گشت اور سیلف ٹیسٹ آٹوپائلٹ راستہ وہی گرڈ استعمال کرتے ہیں، جو اصل کولائیڈر فُٹ پرنٹس سے بنا ہے۔

GPUParticles2D

ڈیش پر اور کیچ پر پروں کے پھٹنے کے اثرات، اسکائی لائٹ کی چاندنی کرنوں کے اندر تیرتے دھول کے ذرات۔

ٹیون شدہ مستقلات

چلنا 240 px/s دبے پاؤں 130 px/s — پتہ لگانا آدھا کر دیتا ہے فلٹر-ڈیش 620 px/s برائے 0.22 s، 1.4 s کول ڈاؤن لالٹین مخروط 330 px، نصف-زاویہ 0.42 rad Light2D توانائی 1.25 (1.65 نارمل میپس پر اوور ایکسپوز ہو گئی) Light2D اونچائی 72 — نارملز 0 پر سیاہ ہو جاتے ہیں پتہ لگانا 1.10 s میں بھرتا ہے، 0.9/s پر کم ہوتا ہے پرائی ہولڈ 1.6 s، ریڈیس 78 px شور ریڈیس 380 px — ڈیش شور مچاتا ہے CanvasModulate 0.47 / 0.48 / 0.56 3 کیچز رات ختم کر دیتی ہیں؛ پہلی مفت ہے ہر 3–8 s میں جھپکنا، دو مرحلوں والا پپوٹا 64 px فی میٹر، ہر جگہ ایک PPU max_physics_steps_per_frame 30