ধরা যাক আমার সি ++ তে একটি গেম লেখা আছে। তবে আমি এটিতে কিছু পরিবর্তন বা স্ক্রিপ্টিং কার্যকারিতা যুক্ত করতে চাই। কীভাবে কেউ আপনার খেলায় স্ক্রিপ্টিং কার্যকারিতা যুক্ত করতে যায়?
ধরা যাক আমার সি ++ তে একটি গেম লেখা আছে। তবে আমি এটিতে কিছু পরিবর্তন বা স্ক্রিপ্টিং কার্যকারিতা যুক্ত করতে চাই। কীভাবে কেউ আপনার খেলায় স্ক্রিপ্টিং কার্যকারিতা যুক্ত করতে যায়?
উত্তর:
প্রথমত, আপনার গেমের কোন অংশটি স্ক্রিপ্ট করা উচিত তা আপনার সিদ্ধান্ত নেওয়া উচিত। একটি বিকল্প হ'ল একটি সম্পূর্ণ স্ক্রিপ্টড গেমটি এই অর্থে যে সময়-সমালোচনামূলক ব্যাকএন্ড ক্রিয়াকলাপগুলি সি ++ এ কোড করা হয়, সমস্ত গেম যুক্তি স্ক্রিপ্টিং ভাষায়। ডিজাইনারগণ উচ্চ স্তরের স্ক্রিপ্টিং ভাষা থেকে ডাকা একটি API হিসাবে ব্যাকএন্ড ব্যবহার করে। অন্য চূড়ান্ত ক্ষেত্রে, আপনার কাছে কয়েকটি নির্দিষ্ট জায়গা থাকতে পারে যেখানে স্ক্রিপ্টগুলি ব্যবহার করা হয়, যেমন ব্যবহারকারীর ইন্টারফেস বা স্ক্রিপ্টেড ক্রমগুলি, বেশিরভাগ গেমের কোডটি এখনও সি ++ এ রয়েছে। প্রতিটি পদ্ধতির সুবিধাগুলি রয়েছে (গতি, নমনীয়তা, সংকলনের সময়, গেমের সুযোগ ইত্যাদি) তবে আপনার আগেই এটি সিদ্ধান্ত নেওয়া উচিত।
আপনি কীভাবে স্ক্রিপ্টিংটি ব্যবহার করতে চান তা জানার পরে, আপনি এখনই সিদ্ধান্ত নিতে হবে যে আপনি কোনও বিদ্যমান স্ক্রিপ্টিং ভাষা বা আপনার নিজস্ব ডোমেন-নির্দিষ্ট ভাষা ব্যবহার করছেন কিনা । আজ বিভিন্ন স্ক্রিপ্টিং ভাষা রয়েছে যা বিভিন্ন ডিজাইনের লক্ষ্য এবং লক্ষ্য শ্রোতাদের সাথে বেছে নিতে পারে, তাই আমি নিশ্চিত নই যে এটি নিজের নিজের তৈরি করার মতো কিনা। যদি আপনি নিজের প্রয়োগ করার সিদ্ধান্ত নেন তবে এখানে কিছু সংস্থান রয়েছে:
লুয়া হ'ল একটি জনপ্রিয় লাইটওয়েট এবং এম্বেড করার জন্য সহজ স্ক্রিপ্টিং ভাষা। এটি হোস্ট এবং এম্বেড থাকা ভাষার মধ্যে যোগাযোগের জন্য একটি স্ট্যাক ব্যবহার করে এবং এটি অনেক পেশাদার গেমগুলিতে সাফল্যের সাথে ব্যবহৃত হয়েছিল । সোল 2 লুয়া এবং সি ++ বাঁধাইয়ের প্রক্রিয়াটিকে সহজ করে। আপনি যদি লুয়ার বাক্য গঠনকে পছন্দ করেন না তবে মুনস্রিপ্ট এমন একটি ভাষা যা লুয়ার সাথে সংকলন করে এবং বৈশিষ্ট্যগুলির একটি দুর্দান্ত সেট যুক্ত করে।
অন্যান্য বিকল্পের মধ্যে অ্যাঞ্জেলকোড অন্তর্ভুক্ত রয়েছে , যা আপনাকে সরাসরি সি এবং সি ++ ফাংশনগুলিতে কল করতে দেয়। পাইথন এবং রুবি একটি বিট আরো এম্বেড করার জটিল, কিন্তু মধ্যে প্রোগ্রাম খুব আরামপ্রদ। আপনি এম্বেড পাইথন চান, তাহলে কটাক্ষপাত করা Boost.Python । ব্রাউজারগুলির জন্য উন্নত দ্রুত স্ক্রিপ্টিং ইঞ্জিনগুলির সুবিধা নিতে জাভাস্ক্রিপ্ট এম্বেড করছে ( ভি 8 এবং স্পাইডারমোনকি দেখুন )।
আমি এখানে ড্রাগনফায়ার এসডিকে ব্যবহার করে গেমমনকি স্ক্রিপ্ট এম্বেড করার বিষয়ে একটি পোস্ট লিখেছি ।
মূলত ধারণাটি হল আপনার সি \ সি ++ ফাংশনগুলি আপনার নির্বাচিত স্ক্রিপ্টিং ভাষায় প্রকাশ করা এবং সেগুলি আপনার স্ক্রিপ্ট থেকে ব্যবহার করা। আমার টিউটোরিয়ালে, আমি ড্রাগনফায়ার এসডিকে থেকে 2 টি ফাংশন প্রকাশ করেছি। গেম শুরু করার সময়, আমি স্ক্রিপ্ট থেকে অন স্টার্ট ফাংশন এবং আপডেটে কল করি, আমি স্ক্রিপ্ট থেকে অন টাইমার ফাংশন কল করি।
আশা করি এইটি কাজ করবে!