تنظیمات پنل سرویس مرکز بازی
پیشنیازها
- در صورتی که با سرویس کاربران بکتوری آشنایی ندارید، به معرفی سرویس کاربران مراجعه کنید.
آشنایی
سرویس مرکز بازی برای ساختن لیدربودها بازیکنها را از سرویس کاربران دریافت میکند. در لیدربود بازیکنها بر اساس نوعی از امتیاز که شما تعریف میکنید رتبهبندی میشوند. مثلا یک بازی را در نظر بگیرید که در آن بازیکن در یک مسیر توسط یک غول تعقیب میشود و باید تا زمانی که میتواند از موانع عبور کند و هر چه بیشتر سکه جمع کند. بازی وقتی تمام میشود که بازیکن گرفتار غول شود. اگر بخواهید بازیکنها را بر اساس تعداد سکههایی که تا به حال جمع کردهاند رتبهبندی کنید لازم است که در پایان بازی تعداد سکههایی را که بازیکن به دست آورده است به سرویس مرکز بازی اطلاع دهید. برای این کار، از مفهومی به نام رویداد استفاده میکنیم.
ساختن یک رویداد (event)
برای تعریف یک رویداد، در پنل مدیریت بکتوری به مرکز بازی مراجعه کنید و روی گزینه رویدادها و سپس ایجاد یک رویداد جدید کلیک کنید. هر رویداد با یک اسم شناخته میشود و میتوانید در صورت علاقه توضیحی هم اضافه کنید. مثلا برای بازیای که مثال زدیم، نام رویداد را GameOver قرار دادهایم و در قسمت توضیحات عبارت «رویداد پایان یک بازی» را درج کردیم. وارد کردن توضیحات اختیاری است. هم چنین، در صورتی که بخواهید به دلیل مسائل امنیتی اجازه ندهید که کاربران از سمت کلاینت رویدادی را مستقیما ارسال کنند، یا تمایل دارید تا کنترلی را روی رویدادهای ارسالی داشته باشید، میتوانید تیک «فراخوانی فقط از رایانش» را فعال کنید.
برای آنکه بتوانید امتیاز بازیکن را رصد کنید، لازم است که یک یا چند فیلد به رویدادی که ساختهاید اضافه کنید. برای این کار روی دکمهی «فیلد +» کلیک کنید تا فیلد جدید اضافه شود. هر فیلد دارای یک نام، یک مقدار پیش فرض، و یک نحوه محاسبه است:
- نام: عبارتی است که با آن این فیلد شناخته میشود و در هنگام ساختن لیدربود از آن استفاده میشود.
- مقدار پیشفرض: در صورتی که هنگام ارسال یک رویداد مقداری برای این فیلد فرستاده نشود، مقدار پیش فرض در نظر گرفته خواهد شد.
- محاسبات پیشفرض: این پارامتر تعیین میکند که مقادیر ارسال شده در رویدادهای مختلف چگونه باعث میشوند تا مقدار این فیلد تعیین شود. به عنوان مثال، اگر گزینه Max را انتخاب کنید، همیشه بیشترین مقداری که ارسال شده است توسط مرکز بازی نگهداری میشود.
به عنوان مثال برای تعداد سکهها نام فیلد را gold میگذاریم، مقدار پیش فرض را صفر قرار میدهیم، و از آنجا که میخواهیم کاربران را بر حسب بیشترین تعداد سکهای که در یک بار بازی جمعآوری کردهاند، رتبهبندی کنیم، نوع محاسبات پیش فرض را Max انتخاب میکنیم. برای این بازی مناسب است که بازیکنان را بر حسب بیشترین زمانی که توانستهاند در بازی دوام بیاورند نیز رتبهبندی کنیم. پس یک فیلد دیگر هم به نام time با مقدار پیش فرض صفر اضافه میکنیم و نوع محاسبات پیش فرض را Max قرار میدهیم.
در هنگام ساخت بازی، لازم است رویدادها را برای سرویس مرکز بازی ارسال کنید (در ادامه نحوهی انجام این کار توضیح داده خواهد شد). با این کار، رویدادهای ارسال شده از دستگاه بازیکنی که در بخش کاربران بکتوری وجود دارد، روی رتبه و امتیاز آن کاربر در لیدربوردها تاثیر میگذارد. در ادامه به نحوه ارسال رویدادها برای مرکز بازی اشاره میکنیم. اما پیش از آن لازم است لیدربورد را بسازیم و مشخص کنیم کدام رویدادها روی لیدربود تاثیر میگذارند.
ساختن یک لیدربورد (Leaderboard)
برای ساخت لیدربورد از منوی سمت راست گزینه لیدربورد را انتخاب و سپس، دکمه ایجاد لیدربورد جدید را کلیک کنید. هر لیدربورد دارای یک نام است و در صورت علاقه میتوانید توضیحاتی نیز به آن اضافه کنید. به عنوان مثال برای بازی فوق یک لیدربورد با نام TopPlayersByGold و توضیحات «بهترین بازیکنها بر اساس تعداد سکه» ساختهایم.
حال لازم است که یک یا چند فیلد به لیدربورد اضافه کنیم. برای این کار روی دکمهی «فیلد +» کلیک کنید. هر فیلد در لیدربورد دارای المانهای زیر است:
- رویداد: یکی از رویدادهایی را که تا به حال تعریف کردهاید، از این قسمت انتخاب کنید. هر بار که یک نمونه از این رویداد را برای مرکز بازی ارسال کنید، لیدربود به روز رسانی میشود تا دادههای ارسالشده در رویداد را لحاظ کند.
- فیلد رویداد: از میان فیلدهای رویدادی که انتخاب کردهاید، فیلدی را که میخواهید لیدربورد بر اساس آن مرتب شود، انتخاب کنید.
- نوع فیلتر و مقدار فیلتر: در صورت نیاز میتوانید یک فیلتر برای فیلدی که انتخاب کردهاید در نظر بگیرید. فیلترها باعث میشوند فقط رویدادهایی که از فیلتر عبور کنند روی لیدربورد تاثیر بگذارند. به عنوان مثال اگر فیلتری برای رویداد GameOver با فیلد time از نوع > و با مقدار ۱۰۰ انتخاب کنید، فقط رویدادهایی که در آنها مقدار time بیشتر از ۱۰۰ باشد روی لیدربورد تاثیر میگذارد. فیلتر * باعث میشود همه مقادیر از فیلتر عبور کنند و روی لیدربورد تاثیر بگذارند.
به عنوان مثال، برای بازی مذکور به لیدربورد TopPlayersByGold یک فیلد با رویداد GameOver و فیلد رویداد gold اضافه میکنیم و فیلتر * را بدون مقدار استفاده میکنیم. حال باید در حین بازی هر بار که بازیکن میبازد، رویداد GameOver را برای مرکز بازی ارسال کنیم تا این لیدربورد ساخته شود.
به این ترتیب شما یک لیدربورد ساده در بکتوری ساختهاید. دقت کنید که هر لیدربورد میتواند حداکثر به سه فیلد از سه رویداد (نه الزاما مختلف) وصل شود. کاربران به ترتیب، ابتدا بر اساس فیلد اول، سپس بر اساس فیلد دوم و در نهایت بر اساس فیلد سوم رتبهبندی میشوند. البته چون امتیازهای دوم و سوم تأثیرات ثانویه بر روی رتبهبندیها دارند، برای حفظ زیبایی ظاهر، از نشان دادن آنها در لیست کاربران یک لیدربورد اجتناب شده است و صرفا امتیازات فیلد اول نشان داده شدهاند. نمونهای از لیست کاربران یک لیدربورد به صورت زیر است که با کلیک بر روی آیکون کاربران متناظر با آن لیدربورد قابل مشاهده است: