پرش به محتوا
۸ اوت ۲۰۲۶ · بازی‌ها

بازی‌هایی که مردم واقعاً می‌توانند با هم بازی کنند

این مقاله محصول را در زمان انتشار توصیف می‌کند. برای قابلیت‌های فعلی به AI Builder و Agent Teams مراجعه کنید.

بازی‌هایی که مردم واقعاً می‌توانند با هم بازی کنند

سه راهی که دیدم پروژه‌های بازی‌سازی آماتور از مسیر خارج می‌شوند، و هرکدام با به‌جا گذاشتن یک آشفتگی، به شما نشان می‌دهند تنظیمات درست واقعاً چه شکلی است.

اشتباه اول: اعتماد به مرورگر برای نگه‌داری امتیاز

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

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

اشتباه دوم: یک عنصر canvas و یک بوق، به اسم بازی

این نوع بازی در دمو خیلی خوب به نظر می‌رسد و در نود ثانیه بازی واقعی از هم می‌پاشد. چند ترنزیشن CSS، یک بررسی برخورد، یک موج سینوسی به‌جای صدای مشت — در ضبط صفحه خوب دیده می‌شود، اما اولین بازیکن واقعی می‌گوید حرکت حس درستی ندارد و نمی‌تواند دلیلش را توضیح دهد. مشکل از فیزیک است. کد دستی‌نویس «اگر برخورد داشت، برگرد» هرگز جرم، اصطکاک و واکنش برخورد را درست شبیه‌سازی نمی‌کند، و بازیکنان حتی اگر نتوانند نامش را بگذارند، این خلأ را حس می‌کنند.

پروژه‌های بازی‌سازی اینجا به‌جای آن، از رندرینگ واقعی موتور استفاده می‌کنند:

  • فیزیک و رندرینگ — three.js با شبیه‌سازی فیزیک واقعی برای پروژه‌های وب، و برای هر چیز سنگین‌تر، یونیتی ۶ واقعی در آزمایشگاه.
  • هنر — از سوی مدیر طراحی تأمین می‌شود، نه یک بسته اسِت آماده.
  • صدا — سازهای نمونه‌برداری‌شده، نه یک اسیلاتور که تلاش می‌کند صدای قدم را تقلید کند.

توضیح مفصل‌تر اینکه چرا این موضوع اختیاری نیست، در موتورهای واقعی، پروژه‌های واقعی آمده است.

زنجیره اعتبارسنج، خطاهایی را می‌گیرد که یک اسکرین‌شات نمی‌تواند:

  • کلیدها را فشار می‌دهد.
  • بررسی می‌کند که امتیاز واقعاً تغییر می‌کند.
  • به خروجی صدا گوش می‌دهد.

به‌نظر خیلی ابتدایی می‌آید تا اینکه متوجه شوید چند پروژه اولین فریم را کامل رندر می‌کنند و بعد بی‌سروصدا قفل می‌شوند چون یک event listener هرگز متصل نشده. یک تصویر ثابت این را نشان نمی‌دهد. اما اعتبارسنجی‌ای که باید سه دور بازی را دوام بیاورد، می‌تواند.

اشتباه سوم: مجبور کردن دوستتان به راه‌اندازی یک سرور برای بازی کردن

نمونه‌های اولیه خوب چندنفره دائماً در همین مرحله می‌میرند — نه به این خاطر که بازی بد است، بلکه چون «اول npm install سرور را بزن، بعد این سه متغیر محیطی را تنظیم کن» برای یک نفر در یک سه‌شنبه‌شب زیادی است. شما چیز جذابی ساخته‌اید و آن را زیر یک راهنمای نصب دفن کرده‌اید.

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

چیزی که این تضاد نشانتان می‌دهد

توجه کنید چه چیزی از هر سه اشتباه بالا غایب است: دو‌نفره محلی. یک صفحه‌کلید، دو نفر، معمولاً WASD در برابر کلیدهای جهت‌دار، آرنج‌ها به هم می‌خورند — این حالتی است که مردم دستِ‌کم می‌گیرند چون هیچ مشکل توزیعی ندارد. نه لینکی، نه سروری، نه دوستی که ساعت ۱۱ شب باید روی چیزی کلیک کند. فقط کسی که کنارتان نشسته و سی ثانیه «نه صبر کن، تو بازیکن دوم هستی، از فلش‌ها استفاده کن».

دو‌نفره محلیچندنفره‌ی آنلاین
آموزش شروع«نه صبر کن، تو بازیکن دوم هستی، از فلش‌ها استفاده کن» — سی ثانیهپیدا کردن حریف، صفحه‌های خالی «در انتظار حریف»
توزیعصفر — نه لینکی، نه سروری، لازم نیست کسی ساعت ۱۱ شب روی چیزی کلیک کندبه یک صفحه‌ی بازی عمومی و حضور همزمان یک نفر دیگر آنلاین نیاز دارد
تبدیلتقریباً ۱۰۰٪ — تنها اصطکاک، «صندلی‌ات را بچرخان» استدر انتظار حریف، ریزش کاربر رخ می‌دهد

ساخته‌های هاکی روی هوا و نبرد در آرنا در نمایشگاه دقیقاً روی همین نکته تکیه دارند.

این سه راه‌حل را کنار هم بگذارید — اقتدار سمت سرور، موتورهای واقعی، صفحات بازی عمومی میزبانی‌شده — به‌علاوه‌ی مزیت ذاتی حالت دو‌نفره‌ی محلی، و به دامنه‌ی واقعی توانایی این ابزار می‌رسید:

  • تک‌نفره — خط پایه.
  • دو‌نفره‌ی محلی — پیروزی رایگان.
  • چندنفره‌ی آنلاین — طوری ساخته شده که در برابر یک نوجوان بی‌حوصله با DevTools باز هم دوام بیاورد.

هر بازی در کتابخانه‌ی «بازی‌های من» جمع می‌شود، همراه با وضعیت انتشار هر بازی، بنابراین لازم نیست در میان پیام‌های قدیمی چت بگردید تا بفهمید کدام نسخه خوب بوده است. و اگر چیزی را برای اندروید بسته‌بندی کرده باشید، مستقیم به مسیر فروشگاه ادامه پیدا می‌کند، به‌جای آنکه فرایندی جداگانه از صفر شروع شود.

یک هشدار از روی تجربه: ساخته‌های دو‌نفره‌ی محلی خیلی بیشتر از حد لازم برای تأیید، «برای بررسی» تست می‌شوند. خودم دیده‌ام یک تست پانزده‌دقیقه‌ای تبدیل به یک سری چهل‌دقیقه‌ای مسابقه‌ی هاکی روی هوا شده است. برای این موضوع بودجه‌بندی کنید — هم زمانش، و هم این واقعیت که داوطلبان تست شما حالا نظرات جدی درباره‌ی سرعت راکت خواهند داشت.
بازی‌ها
اشتراک‌گذاریXLinkedInFacebookRedditQuoraواتساپتلگرامایمیل
← همه مطالب