এই পৃষ্ঠায় আপনার প্রশ্নের উত্তর না পেলে, সাপোর্ট যোগাযোগ পৃষ্ঠায় দেওয়া যোগাযোগের তথ্য ব্যবহার করে যোগাযোগ করুন।
প্রায়শই জিজ্ঞাসিত প্রশ্নগুলো পাওয়া মাত্রই এই পাতাটি আপডেট করা হতে পারে।
সাধারণ
এই বিভাগে এমন সব প্রশ্ন অন্তর্ভুক্ত করা হয়েছে যা কোনো নির্দিষ্ট বিভাগের অন্তর্ভুক্ত নয়।
আমি কি ইউটিউব পরিবেশে গেমটি পরীক্ষা করতে পারি?
হ্যাঁ - ডেভেলপার পোর্টাল ব্যবহার করুন এবং পরীক্ষার নির্দেশাবলী অনুসরণ করুন।
আমার গেমটি অ্যান্ড্রয়েড বা এসডিকে টেস্ট স্যুটে রেন্ডার হচ্ছে না, আমার কী করা উচিত?
যখন গেমগুলো শুধুমাত্র অ্যান্ড্রয়েড বা এসডিকে টেস্ট স্যুটে রেন্ডার হয় না, তখন এর কারণ প্রায়শই ওয়েবভিউতে গেম লোড করার পদ্ধতি। পারফরম্যান্সের কারণে, গেমটি প্রাথমিকভাবে এমন একটি ওয়েবভিউতে লোড করা হয় যা ব্যবহারকারীকে দেখানো হয় না, যার ফলে ওয়েবভিউটির ভিউপোর্ট সাইজ শূন্য হয়ে যায়। এই সমস্যা সমাধানের জন্য, নিম্নলিখিত সমাধানটি সুপারিশ করা হচ্ছে:
(1) যাচাই করুন যে আপনার গেম কোড ভিউপোর্ট সাইজ নির্বিশেষে কার্যকর হয়।
(2) যাচাই করুন যে আপনার গেম কোড ভিউপোর্ট রিসাইজিং পরিচালনা করে এবং ভিউপোর্টের আকার শূন্য হলে গেম কোডটি অপেক্ষা করে না বা ব্যর্থ হয় না।
আমাদের পরামর্শ হলো, resize উইন্ডো ইভেন্টটির জন্য অপেক্ষা করুন এবং `window.innerHeight`-এর মান শূন্য না হলেই কেবল আপনার গেমের উচ্চতা সেট করুন।
প্রযুক্তিগত প্রয়োজনীয়তা
এই বিভাগে ইউটিউব প্লেয়েবলস-এর প্রযুক্তিগত প্রয়োজনীয়তা সম্পর্কিত প্রশ্নাবলী রয়েছে।
আমি কি একক ফাইলের আকারের সীমা থেকে ছাড় পেতে পারি?
না। প্রতিটি ফাইলের আকারের একটি কঠোর সীমা রয়েছে।
প্রাথমিক বান্ডিলের আকার কীভাবে পরিমাপ করা হয়?
gameReady ইভেন্টটি কল হওয়ার আগ পর্যন্ত Playable দ্বারা ডাউনলোড করা মোট বাইটের পরিমাণকে প্রাথমিক বান্ডেল সাইজ হিসেবে পরিমাপ করা হয়।
প্লেয়েবলগুলো যথাসম্ভব HTTP কম্প্রেশন ব্যবহার করে, যার অর্থ হলো প্রাথমিক বান্ডেল সাইজ অ্যাসেটগুলোর মোট র সাইজের চেয়ে ছোট হতে পারে। SDK টেস্ট স্যুটে প্রাথমিক বান্ডেল সাইজ পরীক্ষা করার সময়, যদি আপনার লোকাল হোস্ট অ্যাসেটগুলো কম্প্রেস না করে, তাহলে আপনার প্লেয়েবলটি পাবলিশ করার পরের সাইজের চেয়ে এর সাইজ বড় হতে পারে। একটি প্লেয়েবলের জন্য পরিবেশিত প্রকৃত প্রাথমিক বান্ডেল সাইজ দেখতে, আপলোড করা বিল্ডের index.html ফাইলের দিকে নির্দেশিত SDK টেস্ট স্যুটটি ব্যবহার করুন অথবা gzip কম্প্রেশন চালু করতে আপনার লোকাল সার্ভারের সেটিংস পরিবর্তন করুন।
আমি স্বতন্ত্র ফাইল বা মোট বান্ডেলের আকারের সীমায় পৌঁছে গেছি বা তা অতিক্রম করে ফেলেছি, আমার কী করা উচিত?
আপনার গেমকে অপ্টিমাইজ করতে এবং পারফরম্যান্স উন্নত করতে, নিম্নলিখিত নিবন্ধগুলি দেখুন:
- ছবি সংকোচন
- কর্মক্ষমতা নিরীক্ষা
- দ্রুত লোড হওয়ার সময়
টেক্সট-ভিত্তিক অ্যাসেটের এনকোডিং এবং ট্রান্সফার সাইজ অপ্টিমাইজ করা
যদি আমি মোট বান্ডেল আকারের সীমার মধ্যে আঁটতে না পারি তাহলে কী হবে?
ব্যবহারকারীদের প্রতিবার আপনার গেম খেলার সময় গেম থেকে অ্যাসেট ডাউনলোড করতে হতে পারে। দীর্ঘ লোডিং সময় এবং বিপুল পরিমাণ ডেটা ব্যবহার এড়াতে, গেমটির মোট বান্ডেল সাইজ যতটা সম্ভব ছোট রাখার পরামর্শ দেওয়া হয়।
আমরা গেমগুলোকে উৎসাহিত করি যেন ব্যবহারকারীরা প্রতিটি প্লে সেশনে অগ্রগতির সাথে সাথে লেজি লোডিং বা অন্যান্য ধরনের ইনক্রিমেন্টাল অ্যাসেট লোডিং ব্যবহার করে, অথবা প্রতিটি লেভেলের জন্য অ্যাসেটগুলোকে ভাগ করে দেয়, যাতে একটি দীর্ঘ সেশন জুড়ে অল্প অল্প করে অ্যাসেট ডাউনলোড করা যায়। এই ধরনের পরিস্থিতিতে, মোট বান্ডেল সাইজ বড় হলেও তা ব্যবহারকারীর অভিজ্ঞতাকে খারাপ নাও করতে পারে, এবং প্রকৃতপক্ষে এটি ব্যবহারকারীর জন্য আরও ভালো অভিজ্ঞতা তৈরি করতে পারে, কারণ এর মাধ্যমে ব্যবহারকারী প্রতি কম রিসোর্স ব্যবহার করে আপনার গেমে আরও বেশি কন্টেন্ট যুক্ত করা সম্ভব হয়। যদি আপনি মনে করেন যে আপনার গেমটি এইভাবে কাজ করে এবং এর জন্য মোট বান্ডেল সাইজ বড় রাখা যুক্তিযুক্ত, তবে আপনার ব্যবহারের ক্ষেত্রটি নিয়ে আলোচনা করতে আমাদের সাপোর্ট কন্টাক্ট পেজের মাধ্যমে যোগাযোগ করুন।
আমার অভ্যন্তরীণ অ্যানালিটিক্স কি বাহ্যিক কলের আবশ্যকতা থেকে বাদ দেওয়া যেতে পারে?
না। প্লেয়েবলস এই মুহূর্তে কোনো এক্সটার্নাল কল করতে পারবে না। আপনি কোন ধরনের অ্যানালিটিক্সে আগ্রহী, তা আপনার পার্টনার ম্যানেজারকে জানান, যাতে এই ক্ষেত্রের ভবিষ্যৎ ফিচারগুলোকে অগ্রাধিকার দেওয়া যায়।
গেমটি দূরবর্তী ডেটাবেস থেকে ডেটা এবং লেভেল সংগ্রহ করে, এটি কি গ্রহণযোগ্য?
এই মুহূর্তে না, তবে আমরা নির্বাচিত কিছু গেমের জন্য রিমোট ডেটা অ্যাক্সেসের পাইলট প্রকল্প চালাচ্ছি। বর্তমানে, সমস্ত গেম ডেটা অবশ্যই গেম বান্ডেলের অংশ হিসেবে অন্তর্ভুক্ত থাকতে হবে। আপনি যদি আপনার গেমের অ্যাসেট বা কন্টেন্ট আপডেট বা রিফ্রেশ করতে চান, তাহলে একটি রিফ্রেশ করা গেম বান্ডেল জমা দেওয়ার জন্য সাপোর্ট কন্টাক্ট পেজে দেওয়া যোগাযোগের তথ্য ব্যবহার করে যোগাযোগ করুন অথবা আমাদের পাইলট প্রোগ্রামের জন্য বিবেচিত হতে চাইলে আরও বিস্তারিত জানতে যোগাযোগ করুন।
ইনলাইন স্ক্রিপ্ট চালানোর ক্ষেত্রে "কন্টেন্ট সিকিউরিটি পলিসি" লঙ্ঘনের একটি ত্রুটি দেখতে পাচ্ছি।
যখন আপনি জাভাস্ক্রিপ্ট ব্যবহার করে আপনার পেজে একটি <script> ট্যাগ তৈরি ও যোগ করেন, তখন এটি ঘটে। নিরাপত্তার জন্য, ইউটিউব একটি কন্টেন্ট সিকিউরিটি পলিসি (CSP) ব্যবহার করে, যার জন্য স্ক্রিপ্টগুলোতে 'নন্স' (nonce) নামক একটি বিশেষ নিরাপত্তা কোড থাকা আবশ্যক। ইউটিউব স্বয়ংক্রিয়ভাবে আপনার HTML ফাইলের স্ক্রিপ্টগুলোতে এই কোডটি যোগ করে দেয়, কিন্তু কোড দিয়ে তৈরি করা যেকোনো স্ক্রিপ্টে আপনাকে এটি ম্যানুয়ালি যোগ করতে হবে।
জাভাস্ক্রিপ্ট ব্যবহার করে প্রোগ্রাম্যাটিকভাবে স্ক্রিপ্ট ট্যাগ তৈরি করার সময়, আপনাকে আপনার পেজ থেকে ননস (nonce) খুঁজে বের করে আপনার নতুন স্ক্রিপ্ট এলিমেন্টে তা প্রয়োগ করতে হবে।
উদাহরণ:
const script = document.createElement('script');
script.src = '...';
// Find the nonce from the main page and apply it
script.nonce = document.querySelector('script[nonce]')?.nonce;
document.head.appendChild(script);
টেস্ট স্যুট নির্দেশাবলীতে উল্লেখিত নির্দেশিকা ব্যবহার করে আপনি অফলাইন কনফিগারেশন পরীক্ষা করতে পারেন।
এসডিকে ইন্টিগ্রেশন
এই বিভাগে প্লেয়েবলস এসডিকে এপিআইগুলোর যেকোনোটির সাথে সম্পর্কিত প্রশ্ন অন্তর্ভুক্ত রয়েছে।
অডিও ইন্টিগ্রেশন সমস্যার কারণে আমি সার্টিফিকেশন পরীক্ষায় ফেল করেছি, আমাকে কী ঠিক করতে হবে?
সবচেয়ে সাধারণ অডিও সমস্যাটি সেইসব গেমে দেখা যায়, যেগুলো প্লেব্যাক শুরু করার আগে ব্যবহারকারীর ইন্টারঅ্যাকশন আশা করে। তবে, ইউটিউব প্লেয়েবলস স্বয়ংক্রিয়ভাবে ফোকাস পেতে পারে, তাই গেমটিকে এই পরিস্থিতিটি সামাল দিতে হবে।
অডিও সেটআপের উদাহরণের জন্য নমুনাগুলো দেখে নিন।
ঐক্য
এই বিভাগে বিদ্যমান ইউনিটি গেমগুলোকে ইউটিউব প্লেয়েবলস এসডিকে-এর সাথে একীভূত করা সংক্রান্ত যেকোনো প্রশ্ন অন্তর্ভুক্ত রয়েছে। এসডিকে এবং ইউনিটি র্যাপার কীভাবে ব্যবহার করতে হয় তার উদাহরণের জন্য, ইউটিউব প্লেয়েবলস ইউনিটি র্যাপার ডকুমেন্টেশন দেখুন।
আমি কি ইউনিটি প্রিকম্প্রেশন ব্যবহার করতে পারি?
আমরা আপনার অ্যাসেটগুলো আগে থেকে কম্প্রেস করার পরামর্শ দিই না। প্রাথমিক বান্ডেল সাইজের জন্য কম্প্রেস করার পরের সাইজ ব্যবহার করা হয় এবং আপলোড করা ফাইলগুলোতে ইনজেশনের পর কম্প্রেস করা হবে। এরপরও যদি ফাইলগুলো আগে থেকে কম্প্রেস করার প্রয়োজন হয়, তবে এই বিভাগের বাকি অংশ দেখুন অথবা আপনার গেমের জন্য সেরা বিকল্পটি নিয়ে আলোচনা করতে আমাদের সাপোর্ট কন্টাক্ট পেজে সাপোর্ট টিমের সাথে যোগাযোগ করুন।
কিছু গেমের ক্ষেত্রে ইউনিটির .wasm বা .data ফাইলগুলোর জন্য প্রিকম্প্রেশন ব্যবহার করার প্রয়োজন হতে পারে। শুধুমাত্র নিম্নলিখিত পরিস্থিতিগুলোতে প্রিকম্প্রেশন ব্যবহার করুন, কারণ এর ফলে লোড হতে অনেক বেশি সময় লাগতে পারে:
- যদি স্বতন্ত্র ফাইলের আকার বা মোট বান্ডেলের আকারের শর্ত পূরণ করার জন্য আপনাকে ইউনিটি প্রি-কমপ্রেশন ব্যবহার করতে হয়, তাহলে "আমি স্বতন্ত্র ফাইল বা মোট বান্ডেলের আকারের সীমায় পৌঁছে গেছি বা তা অতিক্রম করেছি, আমার কী করা উচিত?" অংশটি দেখুন।
- আপনার গেমের সার্টিফিকেশন পাস করার জন্য যদি ইউনিটি প্রিকম্প্রেশন ব্যবহার করার প্রয়োজন হয়, তাহলে নিম্নলিখিত শর্তগুলো অবশ্যই পূরণ করতে হবে:
- আপনাকে অবশ্যই জিপ প্রি-কম্প্রেশন ব্যবহার করতে হবে।
- আপনাকে অবশ্যই আপনার লোডার স্ক্রিপ্টের মধ্যে ফাইলগুলো ম্যানুয়ালি ডিকম্প্রেস করতে হবে। আমরা কম্প্রেশন স্ট্রিমস এপিআই (Compression Streams API) ব্যবহার করার পরামর্শ দিই।
এই অতিরিক্ত প্রয়োজনীয়তাগুলো সার্ভিং আর্কিটেকচারের সীমাবদ্ধতা থেকে উদ্ভূত। এই মুহূর্তে, অতিরিক্ত HTTP হেডার বা ব্রটলি কম্প্রেশনের জন্য সমর্থন উপলব্ধ নেই।
গেমটি ব্যাকগ্রাউন্ডে চলার সময় আমি কীভাবে ফ্রেম আপডেটগুলো নিয়ন্ত্রণ করতে পারি?
গেমটি ব্যাকগ্রাউন্ডে থাকাকালীন ফ্রেম আপডেট পরিচালনা করতে আপনি setTimeout ব্যবহার করতে পারেন। এটি অডিও পজ করার মতো আচরণ নিয়ন্ত্রণে সাহায্য করে। প্লেয়ার সেটিংসে "Run in Background" অপশনটি চালু করে আপনি ব্যাকগ্রাউন্ড ফ্রেম ম্যানেজমেন্ট যাচাই করতে পারেন।
ইউনিটি গেমের জন্য মেমরি সীমাবদ্ধতা
ইউনিটির কিছু গেম প্রচুর পরিমাণে মেমরি ব্যবহার করে, যার ফলে প্লেয়েবল ফাইলগুলোর জন্য নির্ধারিত মেমরি ব্যবহারের সীমা অতিক্রম হয়ে যেতে পারে। ইউনিটি ওয়েবজিএল (Unity WebGL)-এর মেমরি সংক্রান্ত ডেভেলপমেন্ট ডকুমেন্টেশন অনুসরণ করার পরামর্শ দেওয়া হচ্ছে।