অ্যান্ড্রয়েড গেমের জন্য ইভেন্ট

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

শুরু করার আগে

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

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

ইভেন্ট ক্লায়েন্ট পান

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

ইভেন্ট জমা দিন

আপনার গেমের জন্য গুরুত্বপূর্ণ কোনো ঘটনা ঘটলে প্লে গেমস সার্ভিসেসকে জানানোর জন্য আপনি আপনার গেমে কোড যোগ করতে পারেন।

ইভেন্ট আপডেট পাঠাতে, eventId ভ্যালু এবং 0-এর সমান বা তার চেয়ে বড় একটি পূর্ণসংখ্যা incrementAmount সহ EventsClient.increment() কল করুন।

  • আপনি যখন গুগল প্লে কনসোলে প্রথমবার কোনো ইভেন্ট নির্ধারণ করেন, তখন প্লে গেমস সার্ভিসেস দ্বারা eventId তৈরি হয় এবং এটি আপনার গেমে এই ইভেন্টটিকে স্বতন্ত্রভাবে শনাক্ত করতে ব্যবহৃত হয়।

  • গেমের কোনো নির্দিষ্ট লক্ষ্য পূরণের দিকে প্লেয়ারের পরিমাণগত অগ্রগতি নির্দিষ্ট করতে আপনি incrementAmount ইনপুটটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যদি আপনার গেমটি '৫০০টি বড় চোখওয়ালা দানবকে পরাজিত করুন' ইভেন্টটি ট্র্যাক করতে চায়, তাহলে incrementAmount মান হতে পারে প্লেয়ারের একটি একক যুদ্ধে হত্যা করা দানবের সংখ্যা।

১ করে বৃদ্ধি সহ একটি ইভেন্ট কীভাবে জমা দিতে হয় তার একটি উদাহরণ এখানে দেওয়া হলো:

public void submitEvent(String eventId) {
  PlayGames.getEventsClient(this)
      .increment(eventId, 1);
}

ইভেন্টগুলি পুনরুদ্ধার করুন

EventsClient.load() কল করে আপনি আপনার গেমের জন্য গুগলের সার্ভারে সংরক্ষিত সমস্ত ইভেন্টের ডেটা পুনরুদ্ধার করতে পারেন। মেথড কল করার সময়, প্লে গেমস সার্ভিসেস ব্যবহারকারীর ডিভাইসে থাকা স্থানীয়ভাবে ক্যাশ করা ডেটা মুছে ফেলবে কিনা তা নির্দেশ করার জন্য একটি বুলিয়ান মান পাস করুন।

গুগল প্লে কনসোলে আপনার সংজ্ঞায়িত নির্দিষ্ট ইভেন্টগুলির ডেটা পুনরুদ্ধার করতে, EventsClient.loadByIds() কল করুন এবং ইনপুট প্যারামিটারগুলিতে ইভেন্ট আইডিগুলির একটি অ্যারে পাস করুন।

নিম্নলিখিত কোড স্নিপেটটি দেখায়, কীভাবে আপনি আপনার গেমের সমস্ত ইভেন্টের তালিকা পেতে প্লে গেমস সার্ভিসেস-কে কোয়েরি করতে পারেন:

public void loadEvents() {
  PlayGames.getEventsClient(this)
      .load(true)
      .addOnCompleteListener(new OnCompleteListener<AnnotatedData<EventBuffer>>() {
        @Override
        public void onComplete(@NonNull Task<AnnotatedData<EventBuffer>> task) {
          if (task.isSuccessful()) {
            // Process all the events.
            for (Event event : task.getResult().get()) {
              Log.d(TAG, "loaded event " + event.getName());
            }
          } else {
            // Handle Error
            Exception exception = task.getException();
            int statusCode = CommonStatusCodes.DEVELOPER_ERROR;
            if (exception instanceof ApiException) {
              ApiException apiException = (ApiException) exception;
              statusCode = apiException.getStatusCode();
            }
            showError(statusCode);
          }
        }
      });
}