بیگهورن بلاف

بر فراز یک فلات آلپی، یک نمک‌سنگ صورتی بر قله تاج گذاشته است — و هر قوچ بیگهورن روی کوه آن را می‌خواهد. زمین را نگه دارید، شارژ کنید و ضربه بزنید: برخوردها شتاب واقعی مبادله می‌کنند، بازندگان تلوتلو می‌خورند، و پرتگاه لبه دارد. یک میدان نبرد پرتاب‌محور کامل از نمای بالا که به‌طور کامل توسط عامل‌های هوش مصنوعی در Phaser 3 و با اولویت حس ساخته شده است: منحنی شارژ، فیزیک برخورد و واکنش دوربین به ضربه، همگی روی شکل‌های خاکستری پیش از وجود حتی یک اسپرایت تنظیم و اندازه‌گیری شدند.

همین حالا بازی کن

کلیدهای جهت‌دار / WASD برای حرکت · نگه‌داشتن Space، رها کردن برای ضربه · جوی‌استیک لمسی + دکمه‌ی ضربه روی موبایل · ~۸ مگابایت · صدا با M · مکث با P

▶ بازی

مفهوم به‌عنوان قرارداد

این اثر ابتدا مفهوم‌سازی شد — یک میدان نبرد هوایی فلات با حلقه‌ای خاکی فرسوده، یک قهرمان بیگهورن با گرافیک کم‌وجهی، یک برگه‌ی اقلام و یک تابلوی حرکت رودررو، پالت را تعیین کردند: سبزهای اشباع‌شده‌ی چمنزار، خاکستری گرانیتی، یک کریستال صورتی. هر عنصر نام‌گذاری‌شده در آن برگه‌ها به‌عنوان دارایی واقعی ساخته شد و هر دور ممیزی، ساخت را در برابر آن‌ها مقایسه کرد. قوچ‌های رقیب پوششی زنگ‌آجری دارند که از یک متریال مجاز دوم بازرندر شده است — هرگز رنگ‌آمیزی موتور بازی.

مفهوم فلات بیگهورن بلاف
مفهوم میدان نبرد — قراردادی که فلات در برابر آن ممیزی می‌شود
حالت پیروزی بیگهورن بلاف در موتور بازی
"پادشاه بلاف" — حالت پیروزی، زنده در موتور بازی نزد نمک‌سنگ

ابتدا حس، سپس هنر

کل بازی پیش از وجود هر گونه هنر، به‌عنوان شکل‌های خاکستری اجرا و پیروز شد. پژوهش این چرخه: برخوردهای تبادل شتاب با جرم و کشسانی، توقف‌ضربه‌ی چندسطحی بر اساس سرعت نزدیک‌شدن، و یک ضربه‌ی جهت‌دار دوربین — دوربین در امتداد نرمال برخورد جابه‌جا و با فنر بازمی‌گردد، جایگزین لرزش تصادفی بازی‌های افقی با سیگنالی که جهت ضربه را منتقل می‌کند. هر ثابت در FEEL_NOTES.md همراه با دلیل مقدار آن و آنچه مقادیر رد شده اندازه‌گیری کردند، ثبت شده است. یک بازیکن خودکار هر ساخت را در هر دور ممیزی از ابتدا تا انتها می‌برد.

بلوک‌بندی خاکستری برخورد سطح ۳
بلوک‌بندی: یک برخورد سطح ۳ منجمد در میانه‌ی توقف‌ضربه، حس کامل، صفر هنر
از FEEL_NOTES.md — خروجی پژوهشی آزمایشگاه
منحنی توان شارژ t0.72، بارگذاری در ابتدا: نگه‌داشتن ۲۵۰ میلی‌ثانیه → ۵۸۱ پیکسل بر ثانیه و ۳۵۴ پیکسل مسافت. t1.6 با بارگذاری در انتها رد شد: همان نگه‌داشتن به ۱۷۴ پیکسل سقوط کرد (−۳۶٪) — دقیقاً همان واکنش‌های سریعی را جریمه می‌کرد که بازی به آن‌ها پاداش می‌دهد.
فنر ضربه‌ی دوربین ۱۹ رادیان بر ثانیه، میرایی بحرانی — زمان تثبیت اندازه‌گیری‌شده ۲۰۱ تا ۲۹۶ میلی‌ثانیه بر اساس سطح. ۶ رادیان بر ثانیه رد شد: زمان تثبیت ۵.۲ تا ۹.۴ ثانیه اندازه‌گیری شد؛ هر برخورد خوانایی پنج ثانیه‌ی بعدی را به گرو می‌گرفت.
توقف‌ضربه ۲۸/۶۰/۹۶ میلی‌ثانیه بر اساس سرعت نزدیک‌شدن — و فقط اول‌شخص: برخورد رقیب با رقیب در سراسر میدان یک صدای کدر محوشده با فاصله دریافت می‌کند، هرگز ضربه‌ی دوربین. اولین آزمایش بلوک‌بندی، هل‌دادن هوش مصنوعی را ۸ بار در ۱۵ ثانیه با تمام شدت آتش‌کاری نشان داد؛ صفحه مثل جایی تسخیرشده خوانده می‌شد.

یک خط لوله‌ی بلندر، رندرشده به اسپرایت‌های نمای بالا

قوچ یک ساخته‌ی بلندر با جوش وکسلی است — شش دور ممیزی‌شده در برابر مفهوم آن با بررسی پالت نمونه‌گیری‌شده از رندر — به‌عنوان یک چهارپای واقعی ریگ شده و با موشن‌کپچر بازهدف‌گیری‌شده‌ی CMU حرکت داده شده است. زمین تازه این چرخه: یک کلیپ دویدن انسانی که با نگاشت فقط اندام‌ها با تأثیر میراشده روی چهار پا بازهدف‌گیری شده (ستون فقرات افقی همچنان دست‌ساز باقی می‌ماند)، به‌طوری که ضدفاز طبیعی دست‌و‌پای کلیپ به‌عنوان یورتمه‌ی جفت‌قطری فرود می‌آید، همراه با نوسان جانبی ستون فقرات که به‌صورت دستی کی‌فریم شده — همان حرکت چهارپا که یک دوربین از بالا واقعاً می‌بیند. نمک‌سنگ، تخته‌سنگ‌ها، بوته‌ها، تابلو و تاج، رندرهای کیت‌ساخت بلندر در یک مقیاس پیکسلی مشترک هستند؛ خود فلات یک پخت متعامد بلندر است که لبه‌ی صخره‌ی آن همان لبه‌ی فیزیکی است. صدا موتور سازهای نمونه‌گیری‌شده‌ی پلتفرم است: یک دور آلپی با آکاردئون و فیدل، سطوح برخورد ترک‌چوبی و تایکو، نردبان تاج با گلوکن‌اشپیل، باد کوهستانی رویه‌ای در زیرِ همه.

ردیف‌های اسپرایت نهایی: چرخه‌های یورتمه و ژست‌های قهرمان و رقیب
ردیف‌های نهایی: قهرمان + رقیب زنگ‌آجری — چرخه‌ی یورتمه با موشن‌کپچر · ژست‌های چرا، شارژ، رهاسازی، تلوتلو، غلتیدن

حس اندازه‌گیری‌شده

این اثر ابزار محک‌زنی اختصاصی خود را همراه دارد (Playwright، رندرر canvas، خام performance.now() دلتای فریم‌ها — سرور آزمایش این آزمایشگاه GPU ندارد، و در غیر این صورت محدودسازی فریم بدون هد به‌همراه هموارسازی دلتای موتور، عدد ۶۰ ثابت جعلی نشان می‌دهند. اعداد زیر از آرام‌ترین بازه‌های مشاهده‌شده روی همان سرور مشترک هستند؛ فاصله‌های فضای شبیه‌سازی در برابر بار مقاوم هستند.

معیاراندازه‌گیری‌شدهشرایط
ورودی → شارژ/رهاسازی → شارژ۱۰.۶ تا ۲۹.۵ میلی‌ثانیه (≤۲ فریم)برچسب زمانی کلید DOM → اعمال تغییر وضعیت
منحنی توان شارژفینت <۱۱۰ میلی‌ثانیه · ۲۵۰ میلی‌ثانیه → ۵۸۱ پیکسل بر ثانیه / ۳۵۴ پیکسل · ۶۵۰ میلی‌ثانیه → ۶۹۲ پیکسل بر ثانیه / ۴۶۸ پیکسلآزمایش‌های نگه‌داشتن-و-رهاسازی، در فضای شبیه‌سازی
نردبان برخورد (سرعت نزدیک‌شدن → ضربه‌ی پرتاب / تلوتلو / توقف‌ضربه)۲۱۴ → ۹ پیکسل / ۳۱۹ میلی‌ثانیه / ۱۴ میلی‌ثانیه · ۵۳۵ → ۴۱ پیکسل / ۳۵۳ میلی‌ثانیه / ۵۱ میلی‌ثانیه · ۹۷۸ → ۷۷ پیکسل / ۵۲۷ میلی‌ثانیه / ۱۰۸ میلی‌ثانیهبرخوردهای رودررو صحنه‌سازی‌شده در سه سرعت
ضربهٔ جهت‌داراوج ۳.۴ تا ۱۱.۷ پیکسل در امتداد نرمال ضربه · تثبیت ۲۰۱ تا ۲۹۶ میلی‌ثانیهفنر با میرایی بحرانی، ۱۹ رادیان بر ثانیه
بازخورد رویداد≤۳۴ میلی‌ثانیه، برای هر رویداد تعاملیبودجه‌ی ۱۰۰ میلی‌ثانیه؛ واکنش بصری در همان تیک
پیمایش خودکارتاج ۱۰۰٪، پیروزی در ۶۴.۸ ثانیه / ۱۱۸.۱ ثانیه، صفر خطا، صفر سقوطربات ورودی واکنشی؛ اجرای دوم = ممیزی تأییدی
هزینه‌ی فریم (این میزبان ممیزی)بهترین میانگین ۱۹.۳ میلی‌ثانیه · p95 برابر ۳۳ میلی‌ثانیهبوم نرم‌افزاری، بدون GPU، جعبه‌ی مشترک در بار ~۱۷ — سخت‌افزار واقعی رندرر WebGL را در ۶۰ اجرا می‌کند
حجم داده~۸ مگابایت · ~۱۰۰ فایلموتور ۱.۲ مگابایت + هنر ۲.۴ مگابایت + صدای نمونه‌گیری‌شده ~۴ مگابایت

ویژگی‌های واقعی موتور، به‌دست‌آمده

فیزیک برخورد دست‌ساز

تبادل شتاب کشسان یک‌بعدی در امتداد نرمال تماس با جرم و کشسانی ۰.۵۸ — جدایی آرکید همان چیزی را که بازی درباره‌ی آن است، از بین می‌برد.

شکل برخورد جهت‌دار

قوچ کشیده است، نه گرد: شعاع برخورد از ۱۷ پیکسل در حالت پهلو به پهلو تا ۴۰ پیکسل در راستای مسیر حرکت تغییر می‌کند، تا برخورد شاخ‌به‌شاخ دقیقاً همان‌جایی رخ دهد که طراحی نشان می‌دهد شاخ‌ها به هم می‌رسند.

ضربه دوربین جهت‌دار

جابه‌جایی در امتداد بردار عمود برخورد با بازگشت فنری میرا شده بحرانی؛ زوم ضربه‌ای فقط برای رده ۳ رزرو شده است. چرخش هرگز، فقط انتقال.

عمق دید از بالا، پردازش کامل

شخصیت‌ها و اشیای مرتب‌شده بر اساس محور Y، سایه‌های افتاده‌ای که هنگام غلتیدن قوچ روی لبه باقی می‌مانند، دره‌ای با پارالاکس در فاصله‌ای دور در پایین، و سایه‌های ابرهای در حال حرکت روی همه‌چیز.

هوش مصنوعی سومو با ادب

لنگرگاه‌های خانگی چرا، یک رقیب چرخشی، عقب‌نشینی پس از باخت در نبرد و یک پنجره احترام — تنظیم‌شده از حالت بن‌بست دائمی رقابت (۲۴۰ ثانیه، تاج ۰٪) به مسیر برد ۲ دقیقه‌ای.

صدای سازهای نمونه‌برداری‌شده

موتور Web Audio پلتفرم: یک قطعه آکاردئون-ویولن آلپاین، صداهای برخورد رده‌بندی‌شده بر اساس سرعت نزدیک‌شدن، صداهای ضربه هوش مصنوعی محو شونده با فاصله، نردبان تاج با گلوکن‌اشپیل، باد رویه‌ای.

آماده‌سازی ۱۱۰–۶۲۰ میلی‌ثانیه، t^0.72شارژ ۴۷۰–۸۸۰ پیکسل/ثانیه ضریب کشش ۰.۵۸توقف ضربه ۲۸/۶۰/۹۶ میلی‌ثانیه ضربه ۵/۱۱/۱۷ پیکسل با ۱۹ رادیان/ثانیهزوم ضربه‌ای ۱.۰۴۵، فقط رده ۳ لغزش ۲۰۰–۵۲۰ میلی‌ثانیه بر اساس سرعت نزدیک‌شدنپیش‌بینی سرعت ۰.۳۰ ثانیه منطقه مرده ۳۶ پیکسلتاج ۲۰ ثانیه، افت ۰.۲۵/ثانیه پاداش ناک‌اوت +۱.۶ ثانیهحرکت کاهش‌یافته ۰.۲× فلش‌ها + WASD + جوی‌استیک لمسیرشته‌های آماده بومی‌سازی
به‌طور کامل توسط BuildMidas Phaser Lab ساخته شده — طراحی مفهومی، مدل‌سازی، انیمیشن مبتنی بر موکاپ، تنظیم دقیق، اندازه‌گیری و صحت‌سنجی همگی توسط عامل‌های هوش مصنوعی انجام شده‌اند. همین خط تولید، سازندهٔ بازی هوش مصنوعی را نیز تغذیه می‌کند.