অ্যান্ড্রয়েড গেমের লিডারবোর্ড

এই নির্দেশিকাটি আপনাকে দেখাবে কিভাবে একটি অ্যান্ড্রয়েড অ্যাপে লিডারবোর্ড এপিআই (API) ব্যবহার করে ভিজ্যুয়াল লিডারবোর্ড তৈরি করা, একজন খেলোয়াড়ের স্কোর রেকর্ড করা এবং পূর্ববর্তী গেম সেশনের স্কোরের সাথে সেই স্কোর তুলনা করা যায়। এই এপিআইগুলো com.google.android.gms.games এবং com.google.android.gms.games.leaderboards প্যাকেজগুলোতে পাওয়া যাবে।

শুরু করার আগে

যদি আপনি ইতিমধ্যে তা না করে থাকেন, তাহলে লিডারবোর্ড ও গেমের ধারণাগুলো পর্যালোচনা করা আপনার জন্য সহায়ক হতে পারে।

লিডারবোর্ড এপিআই ব্যবহার করে কোডিং শুরু করার আগে:

লিডারবোর্ড ক্লায়েন্টটি নিন

লিডারবোর্ড এপিআই ব্যবহার শুরু করতে, আপনার গেমকে প্রথমে একটি LeaderboardsClient অবজেক্ট পেতে হবে। আপনি PlayGames.getLeaderboardsClient() মেথডটি কল করে এবং অ্যাক্টিভিটিটি পাস করে এটি করতে পারেন।

খেলোয়াড়ের স্কোর আপডেট করুন

যখন খেলোয়াড়ের স্কোর পরিবর্তিত হয় (উদাহরণস্বরূপ, যখন খেলোয়াড় খেলাটি শেষ করে), তখন আপনার গেমটি লিডারবোর্ড আইডি এবং প্রকৃত স্কোরের মান পাস করে LeaderboardsClient.submitScore() কল করার মাধ্যমে লিডারবোর্ডে তাদের স্কোর আপডেট করতে পারে।

নিম্নলিখিত কোড স্নিপেটটি দেখায় কিভাবে আপনার অ্যাপ প্লেয়ারের স্কোর আপডেট করতে পারে:

PlayGames.getLeaderboardsClient(this)
    .submitScore(getString(R.string.leaderboard_id), 1337);

একটি ভালো অভ্যাস হলো আপনার strings.xml ফাইলে লিডারবোর্ড আইডি নির্ধারণ করে দেওয়া, যাতে আপনার গেম রিসোর্স আইডি দ্বারা লিডারবোর্ডগুলোকে রেফারেন্স করতে পারে। প্লেয়ারদের স্কোর আপডেট ও লোড করার জন্য কল করার সময়, আপনার এপিআই কোটা অতিক্রম করা এড়াতে এই সেরা অনুশীলনগুলোও অনুসরণ করতে ভুলবেন না।

লিডারবোর্ড প্রদর্শন করুন

লিডারবোর্ড প্রদর্শন করতে, ডিফল্ট লিডারবোর্ড ইউজার ইন্টারফেস তৈরি করার জন্য একটি Intent পেতে LeaderboardsClient.getLeaderboardIntent() কল করুন। এরপর আপনার গেম startActivityForResult কল করে UI-টি চালু করতে পারে।

নিম্নলিখিত কোড স্নিপেটটি দেখায় কিভাবে আপনার অ্যাপ প্লেয়ারের স্কোর আপডেট করতে পারে। এই কোড স্নিপেটে, RC_LEADERBOARD_UI হলো রিকোয়েস্ট কোডের জন্য একটি যথেচ্ছ পূর্ণসংখ্যা।

private static final int RC_LEADERBOARD_UI = 9004;

private void showLeaderboard() {
  PlayGames.getLeaderboardsClient(this)
      .getLeaderboardIntent(getString(R.string.leaderboard_id))
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_LEADERBOARD_UI);
        }
      });
}

যদিও এটি কোনো ফলাফল ফেরত দেয় না, তবুও আপনাকে অবশ্যই startActivityForResult ব্যবহার করতে হবে। এটি এপিআই-কে কলিং প্যাকেজের পরিচয় পেতে সক্ষম করে। নিচের চিত্রে ডিফল্ট লিডারবোর্ড ইউআই-এর একটি উদাহরণ দেখানো হয়েছে।

ডিফল্ট লিডারবোর্ড UI-এর একটি উদাহরণ
ডিফল্ট লিডারবোর্ড UI-এর একটি উদাহরণ।