ماژول مسابقات و ماموریت: رویدادها، رتبه بندی ها، جوایز
1) اهداف کسب و کار و انواع فعالیت
اهداف: نگه داشتن رشد (D1/D7)، ARPPU، افزایش عمق جلسه، ترویج بازی ها و بازارهای جدید.
فرمت ها:- مسابقات: با مقدار امتیاز/برنده/ضرب، سرعت (30-60 دقیقه)، روز، فصلی.
- ماموریت/ماموریت: توالی کار (بازی N چرخش، برنده X، سعی کنید Y ارائه دهنده)، با پیشرفت و مرحله پاداش.
- مدیران: جهانی، توسط بازار/بازی/شرط، خصوصی (دوستان/VIP).
- Jackpots/رده بندی استودیو: «ارائه دهندگان برتر هفته»، «شکار برای چند برابر».
KPI: مشارکت ≥ 12-25٪ از مخاطبان فعال، سهم درآمد حاصل از تبلیغات 10-20٪، شکایات <0. 5٪ از شرکت کنندگان، استخر جایزه ≤ طرح صادر شده است.
2) معماری و جریان داده
اجزای سازنده
1. رویدادها دروازه → دریافت رویدادهای بازی (چرخش، شرط بندی، پیروزی، round_end) از بازی دروازه/ارائه دهندگان.
2. قوانین موتور → مسابقات حوادث در قوانین مسابقات/ماموریت, جوایز امتیاز (idempoint).
3. خدمات رهبری → جمع نقاط، فروشگاه تاپس/برش، پشتیبانی از مرتب سازی و کراوات استراحت.
4. خدمات پیشرفت (ماموریت) → وضعیت وظایف/مراحل، صدور جوایز موقت.
5. خدمات پاداش → حل و فصل و پرداخت امن (از طریق کیف پول: نقدی/پاداش/FS/امتیاز).
6. Admin/Studio UI → ایجاد، برنامه ریزی، پیش نمایش اقتصاد، شبیه سازی.
7. Realtime/WS → انتشار به روز رسانی هیئت رهبری، پیشرفت، اطلاعیه ها.
8. ضد سوء استفاده → محدودیت ها، سیگنال های خطر، ادغام با مدیر ضد تقلب/ربات.
9. ذخیره سازی/کش → KV/Redis برای تاپ های داغ، OLTP برای حقایق، DWH برای تجزیه و تحلیل.
جریان (e2e)
'game _ event → gateway → → points → → ( ) → notify →
3) مدل رویداد (حداقل زمینه ها)
جی سون
{
" :"  "" ts ":"  "": "بازار": "DE", "نام تجاری": "X", "بازی": {"id": "g _ 77", "ارائه دهنده": "PragmaticPlay", "نوع": اسلات "}," شرط ": {" مقدار _ صغیر ": 100," ارز ":" EUR "}," win ": {" amount _ minor ": 250," multiplier ": 2. 5}، "دور": {"شناسه ": "r _ abc "، "وضعیت":" پایان"}، "دستگاه": {"پلت فرم ": "تلفن همراه"،" asn":" mno"} "، trace_id": "t_.."
}حمل و نقل - Kafka/HTTP، پردازش idempotent (dedupe توسط 'event _ id')، امضای دروازه ارائه دهنده/بازی (HMAC).
4) قوانین مسابقات و طراح وظیفه
طرح اعلانی (مثال YAML):شناسه یامل: پنجره t_october_sprint: {شروع: 2025-10-25T18:00Z، پایان: 2025-10-25T19:00Z، tz: اروپا/کیف}
محدوده:
بازار: [DE، SE]
ارائه دهندگان: [PragmaticPlay، Hacksaw]
امتیاز دهی:
فرمول: "امتیاز = دقیقه (پیروزی. مبلغ/شرط مقدار, 50) 100» # ضرب در min_bet_minor: 50 eligible_games: [«g _"]
رهبر هیئت مدیره:
تایپ کنید: «best_n_rounds» # بهترین N دور n را خلاصه کنید: 20 tiebreaker: [«بالاترین _ single _ multiplier»،» زودترین _ finish _ ts»]
پاداش ها:
استخر: {ارز: یورو، total_minor: 1000000}
توزیع: «نردبان» # نردبان، بالا 100 anti_abuse:
min_round_duration_ms: 800 max_rps_per_user: 0 5 exclude_asn_categories: [«میزبانی»، «پروکسی»]mission_id یامل: m_halloween مرحله:
- شناسه: s1 هدف: {نوع: «spin_count,» game_type: «اسلات»، تعداد: 50}
پاداش: {نوع: "freespins", ارزش: 10, بازی: "g_66"}
- شناسه: s2 هدف: {نوع: «win_multiplier,» حداقل: 10}
پاداش: {نوع: «پاداش»، amount_minor: 500}
completion_reward: {نوع: «امتیاز»، مقدار: 1000}5) الگوریتم های رتبه بندی و محاسبه
مدل های اصلی
مجموع امتیازات: خطی/لگاریتمی/با یک کلاه در هر دور.
بهترین N دور: را کاهش می دهد پرداخت به سخت کار کردن، نگه می دارد سرعت حرکت.
حداکثر ضریب (xWin): ارزها و نرخ ها را عادی می کند.
MMR/سیستم رتبه بندی: ELO مانند برای جداول رقابت PvP/دوستانه.
کراوات شکسته
1. 'highest _ single _ multiplier' → 2) 'fast _ rounds' → 3) 'earest _ finish _ ts' → 4) 'user _ id' از نظر لغوی (ثابت در قوانین).
عملکرد
ذخیره K بالا (به عنوان مثال، 10k) در مجموعه مرتب شده Redis 'عضو نمره کلید ZADD'.
برای «بهترین N دور»: نگه داشتن حداقل پشته از آخرین بهترین N در هر کاربر و مقدار، به روز رسانی در پرواز.
به صورت دوره ای عکس فوری (هر 30-60 ثانیه) در OLTP/شی.
6) پاداش و پرداخت
انواع جایزه: نقدی/جایزه/چرخش آزاد/نقاط/موارد/بلیط.
قوانین و مقررات:- فقط پس از نهایی شدن (پنجره درخواست 5-10 دقیقه).
- تمام پرداخت ها از طریق Rewards Service → Wallet (ledger): دو ورودی، idempence توسط «reward _ id».
- برای مراحل میانی مأموریتها - صدور جوایز «نرم» (FS/points)، پول نقد - در انتهای زنجیره.
- CCM/بازی مسئول: هنگام مسدود کردن یک حساب، جایزه را نگه دارید/مسدود کنید تا تأیید شود.
- نردبان ثابت: مراحل از پیش تعریف شده (30% اول، 20% دوم،...).
- Proportional: سهم استخر در نقاط، اما با یک کلاه در نقطه.
- مبتنی بر بلیط: ماموریت ها «بلیط» را ارائه می دهند، نقاشی بر روی بلیط (RNG شفاف).
7) ضد سوء استفاده، صداقت و انطباق
فیلترهای واجد شرایط: حداقل شرط/مدت زمان دور, محرومیت از «0-شرط», تکرار دوباره ترک, «شرط میکرو» در خط لوله.
سیگنال های ربات: سر-UA، فرکانس غیر طبیعی، RPS غیر طبیعی پایدار، پروکسی ASN → چالش های پنهان/عینک انجماد.
Dedup/idempotency: رویدادهای «event _ id»، اقلام تعهدی توسط «score _ id».
دنباله حسابرسی: عکس های رهبری، RNG دانه (برای قرعه کشی بلیط)، نسخه قانون، هش محاسبه.
قانونی: قوانین/محدودیت در بازار، سن، خود حذفی.
8) اقتصاد مسابقات
guardrails بودجه: حد بالایی از استخر + پویا «شیر ایمنی» (کاهش پاداش متوسط زمانی که بیش از حد گرم).
کشش: انتقال پاداش به نقاط/FS به جای پول نقد برای حفظ حاشیه.
نسبت بازپرداخت: استخر جایزه/رسید از بخش بازی های مسابقات ؛ هدف 8 تا 15 درصد
شبیه ساز در پنل مدیریت: اجرای رویدادهای تاریخی → پیش بینی پرداخت/مشارکت.
9) قراردادهای API (ساده شده)
دریافت مسابقات/ماموریت های فعال
وب سایت
GET/v1/مسابقات ؟ بازار = DE و نام تجاری = X
→ 200 [{«id»: «t _ october _ sprint», «start»:... «,» end «:...», «type»: «xwin», «status»: «live»}]رویداد بازی (مصرف)
وب سایت
پست/v1/رویدادها
{"event _ id": "e _ 9f2"، "...:"... "}
→ 202 {«پذیرفته شده»: درست است}سرب (K بالا و موقعیت کاربر)
وب سایت
دریافت/ v1/leaderboards/t_october_sprint ؟ بالا = 100 و من = u _ 123
→ 200 {«بالا «: [{«pos «: 1 «, user «:» u _ 9»,» score»: 18400},...], «me «: {«pos «: 342, «score»: 5600,» delta»: + 200}پیشرفت ماموریت و پاداش
وب سایت
دریافت/ v1/missions/m_halloween/progress ؟ کاربر = u _ 123
→ 200 {"مراحل": [{"id": "s1", "done": درست}, {"id": s2 "," done ": false}]," reward _ ready ": درست}
POST/v1/پاداش/ادعا
{«زمینه «: «ماموریت «، «شناسه «:» m _ هالووین»،» مرحله»:» s1»}
→ 201 {«وضعیت «: «اعطا شده «، «reward _ id»:» rw _ 77»}10) ذخیره سازی و مقیاس گذاری
راه داغ: Redis (مجموعه های مرتب شده/هش) برای بالا و پیشرفت ؛ TTL برای کلیدهای «پر سر و صدا»، sharding توسط «contest _ id».
درست است: OLTP (Postgres/MySQL) - حقایق نقاط/پیشرفت/پرداخت (عکس های فوری WORM).
صف: کافکا - جریان رویداد ؛ گروه های مصرف کننده بر اساس منطقه/نام تجاری.
انبارها: کوتاه TTL 1-5 ثانیه ؛ stale-while-revalidate برای تاپ های عمومی (از طریق CDN).
WebSocket: یک کلاستر/استخر جداگانه برای پیامهای بلادرنگ، دسته ای و محدودیت نرخ.
11) قابلیت مشاهده و کنترل کیفیت
SLI/SLO:- 'leaderboard _ update _ latency _ p95 ≤ 250мс'
- 'events _ ingest _ success ≥ 99. 9%`
- 'reward _ grant _ success ≥ 99. 9%`
- 'ws _ push _ rtt _ p95 ≤ 120мс'
- شکایت از بی عدالتی <0. 5 درصد از شرکت کنندگان
- نرخ رویدادها/شرکت کنندگان، بازیکنان منحصر به فرد، توزیع با شرط/بازی ها، ضریب متوسط ؛ 'grant _ errors', 'dedupe _ hits'.
- Trails: ingest → rules → score → LB update → reward; 'contest _ id'، 'rule _ id' برچسب ها.
- سیاهههای مربوط: JSON با ردیابی _ id، ممنوعیت PII ؛ WORM برای حسابرسی
12) حوادث و runbook و (به اختصار)
A. تاخیر هیئت مدیره رهبر (تاخیر> 2s)
اقدامات: افزایش مصرف کنندگان کافکا، کاهش حزب «کلید داغ» (تقسیم مجدد)، فعال کردن به روز رسانی دسته بندی.
موقت: انیمیشن های زمان واقعی را متوقف کنید، «تاخیر ~ 1-2 ثانیه» را نشان دهید.
B. خطاهای جوایز
اقدامات: توقف «grant» جدید، بررسی با عکس فوری، پخش «grant» idemotently ؛ به روز رسانی وضعیت در لابی.
C. سنبله سوء استفاده (پروکسی ASN)
اقدامات: تقویت واجد شرایط بودن، فعال کردن چالش نامرئی، به طور موقت نادیده گرفتن نقاط به جلسات مشکوک، پس از تایید.
13) UX و محلی سازی
زمان واقعی: نشانگر «زنده»، دلتای صاف نقاط، موقعیت و فاصله تا مکان بعدی.
قوانین شفاف: دسترسی به فرمول/tiebreakers/محدودیت.
اعلان ها: «5 دقیقه باقی مانده»، «شما در بالای 50 هستید»، «پاداش در دسترس است».
محلی سازی/متون حقوقی: توسط بازار، مناطق زمانی (اروپا/کیف و محل شرکت کنندگان).
14) امنیت و حریم خصوصی
نام مستعار بازیکن در بالای عمومی ؛ مخفی کردن PII به طور پیشفرض.
امضای وب سایت ها/رویدادها، mTLS ؛ حفاظت در برابر «سم کش» در لبه.
API Rate-limit، محافظت از پایگاه حافظه پنهان، کنترل «idempotency _ key».
GDPR: نگهداری رویداد، حق حذف (ناشناس) بدون آسیب رساندن به ممیزی.
15) تست و شبیه سازی
بازپخش رویدادهای تاریخی برای اعتبارسنجی قوانین و اقتصاد.
بار: انفجار 30-120 ثانیه قبل از شروع ؛ خیساندن 2-4 ساعت.
مبتنی بر اموال: ثابت («مقدار جوایز صادر شده ≤ بودجه», «کراوات شکستن تعیین»).
A/B: فرمول های مختلف به ثمر رساند، عمق نردبان، فرمت ماموریت.
16) چک لیست آمادگی تولید
- قوانین اعلانی (نسخه ها، امضاها)، شبیه ساز اقتصاد.
- idempotency: «رویداد _ id»، «نمره _ id»، «پاداش _ id» ؛ صندوق ورودی/خروجی.
- Tie-breaks در قوانین ثابت شده است، جبرگرایی مرتب سازی.
- مدیران: بالا K در Redis + عکس های فوری ؛ ضد طوفان (jitter، coalescing).
- ضد سوء استفاده: واجد شرایط بودن، رباتها/ASN، محدودیت سرعت.
- پاداش → کیف پول از طریق دو ورودی ؛ بررسی KYC قبل از پول نقد
- قابلیت مشاهده: SLI/SLO، داشبورد، هشدار ؛ حسابرسی WORM
- DR/Failover: چند AZ، پشتیبان گیری/بازگرداندن، «یخ زدن و نهایی کردن» اسکریپت.
- محلی سازی، مجوزها، قوانین عمومی و رضایت.
- Runbook 'and on lag/errors grant/burst رباتها، الگوهای ارتباطی.
خلاصه رزومه
ماژول موفق مسابقات و ماموریت ها اتوبوس رویداد + قوانین قطعی + مدیران سریع + پرداخت های امن است. اضافه کردن tiebreaks سخت، ضد سوء استفاده، شبیه ساز اقتصاد و مشاهده SLO، نگه داشتن تمام عملیات idempotent و حسابرسی - و شما یک ابزار است که رشد تعامل و درآمد بدون بحث با بازیکنان، تنظیم کننده و تیم پشتیبانی کنید.
