رفتن به محتوای اصلی
یوسف فرحمند
در حال توسعهبازی · چندسکویی

Mini Sumo

یک بازی پارتی سومو سه‌بعدی و بامزه برای ۲ تا ۴ بازیکن: دوستانتان را از رینگ بیرون بیندازید. روی مرورگر، ویندوز، macOS، لینوکس و اندروید اجرا می‌شود و یک سرور معتبر Colyseus و حالت تمرین آفلاین دارد.

مهر ۱۴۰۵ – تاکنون

معرفی

مشکل

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

راه‌حل

Mini Sumo را به‌صورت مونوریپو با کلاینت React Three Fiber و سرور Colyseus ساختم؛ سرور تک‌تک هل‌ها، خروج از رینگ و برنده را تعیین می‌کند و کلاینت فقط ورودی می‌فرستد. همین Game Session درون کلاینت هم اجرا می‌شود و وقتی سرور در دسترس نباشد، یک حالت آفلاین کاملاً قابل‌بازی در برابر بات‌ها فراهم می‌کند. مچ‌میکینگ سریع با پر شدن جای خالی توسط بات پس از ۳۰ ثانیه، اتاق خصوصی با لینک دعوت، کنترل کیبورد و لمسی، کمد لباس برای مو و صورت و لباس، و اقتصاد سکه‌ی مجازی سمت سرور با آرنا، دفتر کل فقط‌افزودنی و فروشگاه ظاهری اضافه شد. نسخه‌های وب، ویندوز، macOS، لینوکس و اندروید به‌صورت خودکار با GitHub Actions ساخته و منتشر می‌شوند.

مخاطبان هدف
دوستان و خانواده‌هایی که یک بازی پارتی سریع و بدون حساب کاربری روی هر دستگاهی می‌خواهند، و توسعه‌دهندگانی که نمونهٔ متن‌باز و خوانایی از یک بازی چندنفرهٔ معتبر می‌خواهند.
نقش من
سازنده و توسعه‌دهندهٔ اصلی — طراحی بازی، کلاینت سه‌بعدی، سرور و شبیه‌ساز معتبر، اقتصاد مجازی، پکیج‌سازی دسکتاپ و اندروید، و پایپ‌لاین CI/CD انتشار.
مدت زمان
< ۱ ماه

تیم

پروژه شخصی

فناوری‌ها

  • React
  • React Three Fiber
  • Three.js
  • TypeScript
  • Colyseus
  • Node.js
  • Vite
  • Electron
  • Capacitor
  • Multiplayer Networking
  • GitHub Actions

ویژگی‌های کلیدی

چندنفرهٔ منصفانه با سرور معتبر

سرور Colyseus تک‌تک هل‌ها، خروج از رینگ و برنده را تعیین می‌کند و کلاینت فقط ورودی می‌فرستد. مچ‌میکینگ سریع و اتاق خصوصی با لینک دعوت برای ۲ تا ۴ بازیکن.

حالت تمرین آفلاین

همان Game Session به‌صورت محلی در برنامه اجرا می‌شود؛ بازی بدون سرور و در برابر بات‌ها کاملاً قابل‌بازی است و در صورت قطع بودن سرور خودکار به آفلاین برمی‌گردد.

کمد لباس و سکه‌های سومو

ظاهر کشتی‌گیر را با مو، صورت و لباس شخصی کنید و در آرناها سکه‌ی مجازی بگیرید یا خرج کنید. ظاهر هرگز روی گیم‌پلی اثر ندارد.

اجرا روی هر دستگاه، انتشار خودکار

نسخه‌های وب، ویندوز، macOS، لینوکس و اندروید با کنترل کیبورد و لمسی که توسط یک پایپ‌لاین CI به‌صورت GitHub Release منتشر می‌شوند.

گالری

آموخته‌ها

داشتن یک Game Session معتبر و استفاده‌ی مجدد از آن در سرور و کلاینت، حالت آفلاین را تقریباً رایگان کرد و همهٔ قوانین را در یک جای تست‌شده نگه داشت. ساختن اقتصاد از همان ابتدا سمت سرور، با کلیدهای idempotency و بازپرداخت، خیلی ساده‌تر از اضافه‌کردن انصاف در مراحل بعدی بود.