গেমগুলি কীভাবে বিভিন্ন প্ল্যাটফর্মের জন্য তৈরি করা হয়?
উদাহরণস্বরূপ, কল অফ ডিউটি: মডার্ন ওয়ারফেয়ার 3 PS3, Xbox 360, Wii এবং পিসিতে উপলভ্য।
এগুলি কি কোনও সাধারণ কোড সহ পুরোপুরি পুনরায় প্রোগ্রাম করা হয়েছে? কোন মধ্যবর্তী কোড আছে?
গেমগুলি কীভাবে বিভিন্ন প্ল্যাটফর্মের জন্য তৈরি করা হয়?
উদাহরণস্বরূপ, কল অফ ডিউটি: মডার্ন ওয়ারফেয়ার 3 PS3, Xbox 360, Wii এবং পিসিতে উপলভ্য।
এগুলি কি কোনও সাধারণ কোড সহ পুরোপুরি পুনরায় প্রোগ্রাম করা হয়েছে? কোন মধ্যবর্তী কোড আছে?
উত্তর:
বেশিরভাগ উত্পাদন স্তরের গেম ইঞ্জিনগুলিতে একটি হার্ডওয়্যার বিমূর্ত স্তর হিসাবে পরিচিত known এটি একটি জেনেরিক এপিআই যা গেম ইঞ্জিনটি হার্ডওয়্যারটি কোন হার্ডওয়্যার তা জানতে ব্যতীত হার্ডওয়্যারের সাথে কথা বলার জন্য ব্যবহার করতে পারে। তারা কেবলমাত্র সাউন্ডম্যানেজ.প্লেএসএফএক্স (এসএফএক্স_আইডি) বা এই জাতীয় পছন্দ করে। সাউন্ড ম্যানেজারের নীচে তবে এটি জানবে যে এটি আসলে কোন হার্ডওয়্যারটিতে কাজ করে এবং শব্দটি কার্যকর হওয়ার জন্য উপযুক্ত কলগুলি করে।
এটি বিমূর্ততার সেই স্তরটি ব্যবহার করে ইঞ্জিনটিকে বিকশিত করার অনুমতি দেয় যাতে এটি যে কোনও সিস্টেমে চলতে পারে তবে শর্ত থাকে যে অ্যাডস্ট্রাকশনটির সাথে মিলে যায় এমন হার্ডওয়্যারটির জন্য একটি এপিআই সরবরাহ করা হয়। সম্পাদনা: জননাথন যেমন উল্লেখ করেছেন, আপনি যে প্ল্যাটফর্মটি চালাতে চান তার জন্য একটি এপিআই প্রয়োজন। এবং ট্র্যাভরের বক্তব্য, যখন একটি উচ্চ মেমরি সিস্টেম থেকে নিম্ন স্মৃতিতে সরানো হয় (আমার জন্য সবচেয়ে খারাপ ছিল পিএস 3 তে পিএসপি ছিল) আপনাকে বিভিন্ন হার্ডওয়্যার সীমাবদ্ধতাগুলি মোকাবেলা করতে হতে পারে। ভাগ্যক্রমে আমার জন্য প্ল্যাটফর্মের কারণে আমাকে পুরো সিস্টেমটি নতুন করে লিখতে হয়নি, তবে পাদদেশের মুদ্রণের কম অংশ নিতে আমাকে অবজেক্টগুলি অপ্টিমাইজ করতে হয়েছিল।
জিনিসের অন্য দিকটি শিল্পের ক্ষেত্রে যেখানে টেক্সচার বা মডেলগুলির রেজোলিউশনগুলি এবং পৃথক পৃথক। গেমের সংস্থানগুলি একটি নির্দিষ্ট টার্গেটের দিকে তৈরি করা যায় যাতে পিএস 3 সমর্থন করে এবং পছন্দ করে এমন নির্দিষ্ট ফর্ম্যাটে পরিণত হওয়ার সময় কোনও পিসি তার সাউন্ড এফেক্টগুলির জন্য তার ওয়াভ ফাইলগুলি পায়।
আশাকরি এটা সাহায্য করবে.
অন্যান্য উত্তরগুলি আদর্শ ক্ষেত্রে বানান করে। বেশিরভাগ কোড গেমসের জন্য সাধারণ, এবং একটি পরিষ্কার বিমূর্ত স্তর হার্ডওয়্যার / প্ল্যাটফর্ম নির্ভর অংশগুলির জন্য ব্যবহৃত হয়।
যাইহোক, অনেক গেম একটি আউটসোর্স সংস্থার দ্বারা বন্দরগুলি করেছে এবং কোডটি উল্লেখযোগ্যভাবে ডাইভারেজ করে। এটি কনসোলগুলির সাথে বিশেষভাবে সত্য তবে উইন্ডোজ থেকে ওএসএক্স বা লিনাক্সের বন্দরগুলির মধ্যেও সাধারণ।
কনসোলগুলিতে, হার্ডওয়্যারটি যথেষ্ট পরিমাণে আলাদা যে প্রায়শই মূল রেন্ডারিংয়ের পুরো অংশগুলি (এবং খুব কমই অন্যান্য সিস্টেমগুলি) সম্পূর্ণরূপে পুনরায় লেখা উচিত। পিসিতে আপনি ডি 3 ডি এবং ওপেনজিএল জুড়ে বিমূর্ত ব্যবহার করতে পারেন, কারণ ওএস এপিআই পৃথক হয় তবে সমস্ত পিসি হার্ডওয়্যার মোটামুটি একই থাকে।
কনসোল স্পেসে, আপনি দেখতে পাবেন যে আপনার সুপার দক্ষ গর্জিয়াস রেন্ডারিং ইঞ্জিনটি সরাসরি কোনও আলাদা কনসোলে পোর্ট করা একেবারেই অসম্ভব, যেহেতু জিপিইউ ক্ষমতাগুলি এত আলাদা এবং আপনার আক্ষরিক অর্থে পারফরম্যান্সের প্রতিটি শেষ শতাংশটি 7 বছর পাওয়ার জন্য খুঁজে বার করতে হবে আপনার আধুনিক গেমটি চালানোর জন্য পুরানো হার্ডওয়্যার। আপনি সহজেই এমন কেসগুলি খুঁজে পেতে পারেন যেখানে এক্সবক্সে সবচেয়ে ভাল কাজ করে এমন আলোক প্যাসগুলি পিএস 3 এর দিকে ভয়ঙ্করভাবে ধীর হয় এবং যেখানে এক্সবক্সে পিএস 3 কুকুরের সেরা পন্থা। অন্যান্য হার্ডওয়্যার এবং প্ল্যাটফর্মের পার্থক্য (যেমন এক্সবক্সের ত্রি-কোর সিপিইউ বনাম পিএস 3 এর এসপিইউগুলি) আপনার একমাত্র প্ল্যাটফর্ম-নির্ভর কোড পথ হিসাবে একটি সরল পাতলা হার্ডওয়্যার বিমোচন স্তরকে নির্ভর করা খুব কঠিন করে তোলে।
যেহেতু প্রতিটি প্ল্যাটফর্মটিও এটি সঠিকভাবে ব্যবহার করতে ব্যাপক পরিমাণে দক্ষতার প্রয়োজন, তাই অনেকগুলি গেমের গেমটি অতিরিক্ত প্ল্যাটফর্মগুলিতে আনার জন্য একটি বিশেষায়িত আউটসোর্স পোর্টিং সংস্থা প্রয়োজন। পিসি স্পেসে আপনি কখনও কখনও একক বিকাশকারীদের খুঁজে পেতে পারেন যারা বন্দরগুলি করেন (যেমন রায়ান "আইকুলাস" গর্ডন যিনি অনেকগুলি লিনাক্স গেম পোর্ট করেন; সরাসরি এগিয়ে কাজ করেন, ডি 3 ডি কে জিএল এবং উইন 32 এ পসিক্স / এসডিএল পরিবর্তন করেন), তবে কনসোল স্পেসে থাকবেন বৃহত্তর গেমগুলিতে বরং বিশাল পোর্টিংয়ের কাজ করার জন্য সমস্ত দল রয়েছে এমন সংস্থা রয়েছে।
কিছু প্ল্যাটফর্মের বন্দরগুলির জন্য প্রায় সম্পূর্ণ পুনর্লিখন বা সম্পদ পুনরায় নকশার প্রয়োজন হয়। কল অফ ডিউটির Wii বন্দর উদাহরণস্বরূপ যেখানে আউটসোর্স করা সংস্থা করেছে এবং সমস্ত শিল্প - শিল্প সম্পদ সহ - Wii এর খুব সীমাবদ্ধ হার্ডওয়্যারের সীমাবদ্ধতার মধ্যে ফিরিয়ে আনতে হয়েছিল। Wii এর ছায়া গোছাও নেই, উদাহরণস্বরূপ, কেবল একই ইঞ্জিন এবং প্রভাবগুলি / উপকরণগুলি পুনরায় ব্যবহার করা সম্পূর্ণ অসম্ভব ছিল এবং সীমিত মেমরি এবং সিপিইউ / জিপিইউ আরও ছোট টেক্সচার এবং কম বিশদ মডেল, প্লাস গেমপ্লে সীমাবদ্ধতা ইত্যাদির প্রয়োজন। মোবাইল প্ল্যাটফর্মগুলিতে পোর্টগুলি একইভাবে সম্পূর্ণ তৃতীয় পক্ষের দ্বারা সম্পূর্ণরূপে পুনরায় লিখিত হয়।
নতুন ইঞ্জিনগুলি প্ল্যাটফর্মগুলির মধ্যে পোর্ট করা সহজ করে তোলে, তবে বৃহত্তর গেমগুলি সাধারণত তাদের কোডের বৃহত অংশগুলি আপডেট করতে এবং আরও সক্ষম পিসি প্ল্যাটফর্ম এবং কনসোলকে আরও সীমাবদ্ধ প্ল্যাটফর্মে পরিবর্তন করার জন্য অনেক সম্পদ পুনরায় করা প্রয়োজন।
জেমস রেপনস কেবলমাত্র পিসির সাথে সম্পর্কিত এবং নির্দিষ্ট প্ল্যাটফর্মগুলিতে প্রয়োগের জন্য নয়।
সমস্ত ইঞ্জিন গেম কোডের সর্বাধিক অংশের জন্য প্ল্যাটফর্মটিকে বিমূর্ত করে তুলতে, কিছু প্ল্যাটফর্মের জন্য কিছু অংশ লিখতে হবে। এটিতে নেটওয়ার্ক, রেন্ডারিং, অডিও, ডিভাইস ইনপুট সহ সমস্ত আই / ও অন্তর্ভুক্ত রয়েছে এবং আমি মনে করি ভিডিও আউটপুট।
এক্সবক্স এবং পিএস 3 তে অবাস্তব বলার জন্য রেন্ডারিং কোডের সাথে তুলনা করুন। এক্সবক্সটি এক্সবক্স ডাইরেক্টএক্স সংস্করণ ব্যবহার করে, যখন পিএস 3 libgcm ব্যবহার করে (ওপেনগ্লাগুলি খুব ধীর গতির)। এটিকে কিছুটা সহজ করার জন্য, সমস্ত প্ল্যাটফর্মগুলিতে গেমপ্লে প্রোগ্রামাররা কেবল একটি "অডিওসিসটেম.প্লেসাউন্ড ( এখানে সাউন্ডনাম ) দেখুন, যখন প্রতিটি প্ল্যাটফর্মের জন্য তারা অভ্যন্তরীণভাবে কাজ করে তবে সাউন্ড আউটপুটের জন্য প্ল্যাটফর্মগুলি এপিআই ডাকবে
programming আরও প্রোগ্রামিংয়ের জন্যও তাতারাদের মন্তব্য দেখুন।