পরীক্ষামূলক YouTube Playables Godot Wrapper

এই মোড়কের সাহায্যে আপনি Godot-এ YouTube Playables SDK অ্যাক্সেস করতে পারবেন প্রদত্ত .gd সহ। র্যাপারে একটি .js SDK সংযোগকারী এবং একটি .gd ফাইল রয়েছে যা আপনার বিকাশকে গতিশীল করতে সহায়তা করে৷ এছাড়াও একটি নমুনা প্রকল্প উপলব্ধ রয়েছে যা দেখায় যে আপনি কীভাবে এই স্ক্রিপ্টগুলি আপনার প্রকল্পে ব্যবহার করতে পারেন।

Godot zip প্যাকেজগুলি আমাদের Playables নমুনা রেপো থেকে ডাউনলোড করা যেতে পারে।

ব্যবহার

  1. আপনার প্রোজেক্ট ফোল্ডারে GoogleYTGameWrapper-godot.zip বের করুন, যেখানে আপনি এই স্ক্রিপ্টগুলি থাকতে চান৷ এই জিপে দুটি ফাইল রয়েছে:
    • YTGameWrapper.gd : YT Playables জাভাস্ক্রিপ্ট SDK-এর সেতু হিসাবে ব্যবহার করা হয়েছে যা গেমের মধ্যে থেকে SDK-কে কল করার জন্য একটি পথকে অনুমতি দেয়৷
    • YTGameSDK.js : YT Playables SDK-এর সাথে সংযোগ করতে ব্যবহৃত হয়। এই উদাহরণের জন্য আমরা এই ফাইলটিকে আপনার প্রোজেক্টের রুটে রাখব। আপনি এটি পরিবর্তন করতে পারেন, কিন্তু এর জন্য আপনার হেড ইনক্লুড লোকেশন আপডেট করতে হবে।
    • এছাড়াও আমাদের Playables নমুনা রেপো থেকে ডাউনলোডের জন্য একটি সম্পূর্ণ প্রকল্প নমুনা সংস্করণ উপলব্ধ রয়েছে৷ এই সংস্করণের জন্য GoogleYTGameWrapper-godot-with-sample.zip নামের জিপটি ব্যবহার করুন।
  2. YTGameWrapper.gd স্ক্রিপ্টের জন্য একটি নতুন অটোলোড গ্লোবাল যোগ করুন যা আনজিপ করা হয়েছিল। এটি Project -> Project Settings... -> Globals অধীনে সেট করা যেতে পারে। Path ইনপুট বক্সে YTGameWrapper.gd ফাইলটি নির্বাচন করুন এবং Node Name ইনপুট বক্সের জন্য YTGameWrapper যোগ করুন। অবশেষে, + Add নির্বাচন করুন।
    • এটি আপনার কোডে স্ক্রিপ্টটিকে বিশ্বব্যাপী উপলব্ধ করবে, আপনাকে প্রয়োজন অনুসারে YTGameWrapper কল করার অনুমতি দেবে।
  3. আপনার Godot প্রকল্পের প্ল্যাটফর্মটি Web জন্য রপ্তানি করার জন্য সেট করা আছে তা যাচাই করুন। এই সেটিংটি রপ্তানি ট্যাবে পাওয়া যায়, Project নির্বাচন করুন তারপর Export...
  4. এক্সপোর্ট প্যানেলে Add... নির্বাচন করে একটি নতুন প্রিসেট যোগ করুন তারপর Web নির্বাচন করুন। একবার তৈরি হয়ে গেলে, Head Include সেটিং বক্সে এই কোডটি যোগ করুন।
<script src="https://www.youtube.com/game_api/v1">// Load YT Game API code</script>
<script src="YTGameSDK.js"></script>
  1. Export প্যানেলে আপনার ওয়েব প্রোজেক্ট এক্সপোর্ট করুন Export Project... নির্বাচন করে এবং বিল্ড লোকেশন সিলেক্ট করে।
  2. আপনার প্রোজেক্ট তৈরি হয়ে গেলে, বিল্ড ফোল্ডারে নেভিগেট করুন এবং এই ফোল্ডারে YTGameSDK.js ফাইলটি কপি করুন এবং আপনার বিল্ড জমা দেওয়ার সময় এটি অন্তর্ভুক্ত করার বিষয়টি নিশ্চিত করুন।
  3. আপনি আপনার প্রকল্পের জন্য প্রযুক্তিগত প্রয়োজনীয়তা অনুসরণ করছেন তা যাচাই করুন এবং Playables টেস্ট স্যুট ব্যবহার করতে ভুলবেন না।

উদাহরণ

এই বিভাগে .gd র্যাপার ব্যবহার করার কিছু উদাহরণ রয়েছে, এটি উপলব্ধ API-এর সম্পূর্ণ তালিকা নয়। উপলব্ধ APIগুলির সম্পূর্ণ তালিকার জন্য, YouTube Playables SDK দেখুন। এটিও অনুমান করে যে আপনার প্রকল্পটি ব্যবহার বিভাগে বর্ণিত হিসাবে সেটআপ করা হয়েছে।

sendScore

এই উদাহরণটি .gdsendScore(int points) এর বাস্তবায়ন দেখায়:

var current_game_score: int = 0

...

func add_score(scoreAdded: int):
    current_game_score += scoreAdded
    YTGameWrapper.send_score(current_game_score)

onPause

এটি একটি উদাহরণ যে কীভাবে একটি গেম YT Playables থেকে আসা Pause ইভেন্টগুলি শুনতে পারে, প্রয়োজনের সময় তার ইঞ্জিনকে বিরতি দিতে পারে:

func _ready() -> void:
    # hook up on game paused
    YTGameWrapper.game_paused.connect(self._on_game_paused)
    # hook up on game resumed and game save data received events
    YTGameWrapper.game_resumed.connect(self._on_game_resumed)

func _on_game_paused():
    # Pause your game logic, audio, etc.
    get_tree().paused = true
    
func _on_game_resumed():
    # Resume your game logic, audio, etc.
    get_tree().paused = false

saveData

এটি YT Playables SDK-এ পাঠানো, saveData কীভাবে ব্যবহার করবেন তার একটি উদাহরণ:

var current_game_score: int = 0
var time_elapsed: float = 0.0

...

func save_game_data():
    YTGameWrapper.save_data('{"BestScore": "' + str(current_game_score) + '","BestTime": "' +str(time_elapsed)+ '"}')

loadData

এটি YT Playables SDK-এ পাঠানো loadData কীভাবে ব্যবহার করতে হয় তার একটি উদাহরণ:

func _ready() -> void:
    # hook up game load data received event
    YTGameWrapper.load_data_received.connect(self._on_load_data)
    # Request to load data when the game starts
    YTGameWrapper.load_data()

func _on_load_data(save_data_string: String):
    if not save_data_string.is_empty():
        # Add logic to parse the save_data_string and restore game state
        print("Loaded data: ", save_data_string)

requestInterstitialAd

এটি একটি উদাহরণ হল কিভাবে requestInterstitialAd ব্যবহার করতে হয়, এটি নির্দেশ করে যে এটি একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখানোর উপযুক্ত সময়, যদি উপলব্ধ থাকে। সেরা ফলাফলের জন্য, গেমপ্লেতে বিরতির সময় এই কল করুন, উদাহরণস্বরূপ, একটি স্তরের শেষে।

func set_game_over(didWin: bool):
    YTGameWrapper.request_interstitial_ad()

    # logic for game over

কিভাবে আপনার Godot প্রকল্পে সম্পদ ভাঙ্গবেন (অলস লোডিং)

Godot ব্যবহার করার সময় বিকাশকারীরা হাইলাইট করেছেন এমন একটি প্রধান সমস্যা হল পৃথক ফাইলের আকারের প্রয়োজনীয়তা এবং মোট বান্ডেল আকারের প্রয়োজনীয়তার অধীনে থাকা।

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

সঠিক লোডিংয়ে সাহায্য করার জন্য, Godot এক্সপোর্টিং প্যাক, প্যাচ এবং মোড ( ইংরেজি লিঙ্ক ) অফার করে। আমরা প্রয়োজন অনুযায়ী লোড করা .pck ফাইল তৈরি করার পরামর্শ দিই।

সম্পূর্ণ YT Playables API রেফারেন্স দেখুন।