এই নির্দেশিকাটি আপনাকে দেখাবে কিভাবে একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনে অ্যাচিভমেন্ট এপিআই (API) ব্যবহার করে আপনার গেমের অ্যাচিভমেন্টগুলো আনলক ও প্রদর্শন করতে হয়। এই এপিআইগুলো com.google.android.gms.games এবং com.google.android.gms.games.achievements প্যাকেজগুলোতে পাওয়া যাবে।
শুরু করার আগে
যদি আপনি ইতিমধ্যে তা না করে থাকেন, তবে অ্যাচিভমেন্ট গেমের ধারণাগুলো পর্যালোচনা করা আপনার জন্য সহায়ক হতে পারে।
অ্যাচিভমেন্টস এপিআই ব্যবহার করে কোডিং শুরু করার আগে:
Google Play Games Services ব্যবহার করার জন্য আপনার অ্যাপ ইনস্টল ও সেট আপ করতে 'Set Up Google Play Services SDK' গাইডে দেওয়া নির্দেশাবলী অনুসরণ করুন।
গুগল প্লে কনসোল গাইডের নির্দেশনা অনুসরণ করে, আপনার গেমে যে অ্যাচিভমেন্টগুলো আনলক বা প্রদর্শন করতে চান, তা নির্ধারণ করুন।
অ্যান্ড্রয়েড স্যাম্পল পেজ থেকে অ্যাচিভমেন্ট কোড স্যাম্পলগুলো ডাউনলোড করে পর্যালোচনা করুন।
গুণমান চেকলিস্টে বর্ণিত সুপারিশগুলো ভালোভাবে জেনে নিন।
একটি অ্যাচিভমেন্ট ক্লায়েন্ট পান
অ্যাচিভমেন্টস এপিআই ব্যবহার শুরু করতে, আপনার গেমকে প্রথমে একটি AchievementsClient অবজেক্ট পেতে হবে। আপনি Games.getAchievementClient() মেথডটি কল করে এবং অ্যাক্টিভিটিটি পাস করে এটি করতে পারেন।
কৃতিত্বগুলি আনলক করুন
কোনো অ্যাচিভমেন্ট আনলক করতে, AchievementsClient.unlock() মেথডটি কল করুন এবং অ্যাচিভমেন্ট আইডিটি পাস করুন।
নিম্নলিখিত কোড স্নিপেটটি দেখায় কিভাবে আপনার অ্যাপ অ্যাচিভমেন্ট আনলক করতে পারে:
PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));
যদি অ্যাচিভমেন্টটি ইনক্রিমেন্টাল ধরনের হয় (অর্থাৎ, এটি আনলক করতে কয়েকটি ধাপের প্রয়োজন হয়), তাহলে এর পরিবর্তে AchievementsClient.increment() কল করুন।
নিম্নলিখিত কোড স্নিপেটটি দেখায় কিভাবে আপনার অ্যাপ খেলোয়াড়ের কৃতিত্ব বাড়াতে পারে:
PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);
অ্যাচিভমেন্টটি আনলক করার জন্য আপনাকে অতিরিক্ত কোনো কোড লিখতে হবে না; প্রয়োজনীয় সংখ্যক ধাপ সম্পন্ন হলেই গুগল প্লে গেমস সার্ভিসেস স্বয়ংক্রিয়ভাবে অ্যাচিভমেন্টটি আনলক করে দেয়।
একটি ভালো অভ্যাস হলো strings.xml ফাইলে অ্যাচিভমেন্ট আইডিগুলো নির্ধারণ করে দেওয়া, যাতে আপনার গেম রিসোর্স আইডি দ্বারা অ্যাচিভমেন্টগুলোকে রেফারেন্স করতে পারে। অ্যাচিভমেন্ট আপডেট এবং লোড করার জন্য কল করার সময়, আপনার API কোটা অতিক্রম করা এড়াতে এই সেরা অনুশীলনগুলোও অনুসরণ করতে ভুলবেন না।
কৃতিত্ব প্রদর্শন করুন
কোনো খেলোয়াড়ের কৃতিত্বগুলো দেখানোর জন্য, ডিফল্ট অ্যাচিভমেন্ট ইউজার ইন্টারফেস তৈরি করার উদ্দেশ্যে একটি Intent পেতে AchievementsClient.getAchievementsIntent() কল করুন। এরপর আপনার গেমটি startActivityForResult কল করে UI-টি চালু করতে পারে।
নিম্নলিখিত কোড স্নিপেটটি দেখায় যে কীভাবে আপনার অ্যাপ ডিফল্ট অ্যাচিভমেন্ট ইউজার ইন্টারফেস প্রদর্শন করতে পারে। এই স্নিপেটে, RC_ACHIEVEMENT_UI হলো একটি যথেচ্ছ পূর্ণসংখ্যা যা গেমটি রিকোয়েস্ট কোড হিসেবে ব্যবহার করে।
private static final int RC_ACHIEVEMENT_UI = 9003; private void showAchievements() { PlayGames.getAchievementsClient(this) .getAchievementsIntent() .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_ACHIEVEMENT_UI); } }); }
নিচের ছবিতে ডিফল্ট অ্যাচিভমেন্ট ইউআই-এর একটি উদাহরণ দেখানো হয়েছে।
সাজেস্টেড সারিটি সবচেয়ে বেশিবার উন্মোচিত অ্যাচিভমেন্টটি দেখায়, যেটি খেলোয়াড় এখনও আনলক করেনি কিন্তু অন্য খেলোয়াড়দের মধ্যে সর্বোচ্চ সংখ্যক খেলোয়াড় তা অর্জন করেছে।
