গেমগুলি কীভাবে বিভিন্ন প্ল্যাটফর্মের জন্য তৈরি করা হয়?


9

গেমগুলি কীভাবে বিভিন্ন প্ল্যাটফর্মের জন্য তৈরি করা হয়?

উদাহরণস্বরূপ, কল অফ ডিউটি: মডার্ন ওয়ারফেয়ার 3 PS3, Xbox 360, Wii এবং পিসিতে উপলভ্য।

এগুলি কি কোনও সাধারণ কোড সহ পুরোপুরি পুনরায় প্রোগ্রাম করা হয়েছে? কোন মধ্যবর্তী কোড আছে?


3
সাধারণত এটি সমস্ত কিছু সি ++ এ সম্পন্ন হয় এবং প্ল্যাটফর্ম-নির্দিষ্ট স্টাফগুলি বেশ কয়েকটি ক্লাসে প্রেরণ করা হয়।
ashes999

উত্তর:


11

বেশিরভাগ উত্পাদন স্তরের গেম ইঞ্জিনগুলিতে একটি হার্ডওয়্যার বিমূর্ত স্তর হিসাবে পরিচিত known এটি একটি জেনেরিক এপিআই যা গেম ইঞ্জিনটি হার্ডওয়্যারটি কোন হার্ডওয়্যার তা জানতে ব্যতীত হার্ডওয়্যারের সাথে কথা বলার জন্য ব্যবহার করতে পারে। তারা কেবলমাত্র সাউন্ডম্যানেজ.প্লেএসএফএক্স (এসএফএক্স_আইডি) বা এই জাতীয় পছন্দ করে। সাউন্ড ম্যানেজারের নীচে তবে এটি জানবে যে এটি আসলে কোন হার্ডওয়্যারটিতে কাজ করে এবং শব্দটি কার্যকর হওয়ার জন্য উপযুক্ত কলগুলি করে।

এটি বিমূর্ততার সেই স্তরটি ব্যবহার করে ইঞ্জিনটিকে বিকশিত করার অনুমতি দেয় যাতে এটি যে কোনও সিস্টেমে চলতে পারে তবে শর্ত থাকে যে অ্যাডস্ট্রাকশনটির সাথে মিলে যায় এমন হার্ডওয়্যারটির জন্য একটি এপিআই সরবরাহ করা হয়। সম্পাদনা: জননাথন যেমন উল্লেখ করেছেন, আপনি যে প্ল্যাটফর্মটি চালাতে চান তার জন্য একটি এপিআই প্রয়োজন। এবং ট্র্যাভরের বক্তব্য, যখন একটি উচ্চ মেমরি সিস্টেম থেকে নিম্ন স্মৃতিতে সরানো হয় (আমার জন্য সবচেয়ে খারাপ ছিল পিএস 3 তে পিএসপি ছিল) আপনাকে বিভিন্ন হার্ডওয়্যার সীমাবদ্ধতাগুলি মোকাবেলা করতে হতে পারে। ভাগ্যক্রমে আমার জন্য প্ল্যাটফর্মের কারণে আমাকে পুরো সিস্টেমটি নতুন করে লিখতে হয়নি, তবে পাদদেশের মুদ্রণের কম অংশ নিতে আমাকে অবজেক্টগুলি অপ্টিমাইজ করতে হয়েছিল।

জিনিসের অন্য দিকটি শিল্পের ক্ষেত্রে যেখানে টেক্সচার বা মডেলগুলির রেজোলিউশনগুলি এবং পৃথক পৃথক। গেমের সংস্থানগুলি একটি নির্দিষ্ট টার্গেটের দিকে তৈরি করা যায় যাতে পিএস 3 সমর্থন করে এবং পছন্দ করে এমন নির্দিষ্ট ফর্ম্যাটে পরিণত হওয়ার সময় কোনও পিসি তার সাউন্ড এফেক্টগুলির জন্য তার ওয়াভ ফাইলগুলি পায়।

আশাকরি এটা সাহায্য করবে.


1
আমি এটি যুক্ত করব যে বেশিরভাগ ক্ষেত্রে, পিসি / পিএস 3 / এক্সবক্স 360 একটি সাধারণ কোডবেস ভাগ করে নেবে, অন্যদিকে Wii / PS2 / PSP আলাদা কোডবেস ভাগ করবে। গেমবয়ের সমস্তই আলাদা কোডবেস থাকবে এবং আইফোন / অ্যান্ড্রয়েড সাধারণত একটি কোডবেস ভাগ করে নেবে। এগুলি বেশিরভাগ প্রসেসিং পাওয়ারের বিস্তৃত স্তরের, উপলব্ধ মেমরির এবং বিভিন্ন প্ল্যাটফর্মগুলির গ্রাফিক্স অনুষদের কারণে ঘটে। আমাকে একবার এক্সবক্স 360 থেকে পিএস 2 এ গেমটি পোর্ট করতে হয়েছিল; মূল কোডটির খুব সামান্যই প্রক্রিয়াটি থেকে বেঁচে গেল, কেবলমাত্র এটি ধরে নেওয়া হয়েছিল যে ব্যবহারের জন্য প্রচুর এবং প্রচুর র্যাম পাওয়া যায়; কম স্মৃতি ব্যবহার করার জন্য আমাকে এটি পুনরায় লিখতে হয়েছিল।
ট্রেভর পাওয়েল

+1, আপনি স্পষ্টভাবে উল্লেখ করেননি যে এইচএএলটি প্ল্যাটফর্মগুলির মধ্যে আলাদা (কারণ সাইকোকাইবারও উত্তর দিয়েছেন) - সম্ভবত যুক্ত করুন যে প্রতিটি প্ল্যাটফর্মের জন্য আপনার এইচএএল প্রয়োজন? এছাড়াও এএনএসআই সি / ++ ব্যবহার করা সম্ভবত আপনার প্রয়োজনীয় ক্রস-সংকলন করার প্রয়োজন requirement
জোনাথন ডিকিনসন

ট্রেভর: গেমবয়? জঘন্য, আমি অবশ্যই অতীতে ভ্রমণ করেছিলাম, ভাল আমার টাইম মেশিনে ফিরে আসুন ...

3

অন্যান্য উত্তরগুলি আদর্শ ক্ষেত্রে বানান করে। বেশিরভাগ কোড গেমসের জন্য সাধারণ, এবং একটি পরিষ্কার বিমূর্ত স্তর হার্ডওয়্যার / প্ল্যাটফর্ম নির্ভর অংশগুলির জন্য ব্যবহৃত হয়।

যাইহোক, অনেক গেম একটি আউটসোর্স সংস্থার দ্বারা বন্দরগুলি করেছে এবং কোডটি উল্লেখযোগ্যভাবে ডাইভারেজ করে। এটি কনসোলগুলির সাথে বিশেষভাবে সত্য তবে উইন্ডোজ থেকে ওএসএক্স বা লিনাক্সের বন্দরগুলির মধ্যেও সাধারণ।

কনসোলগুলিতে, হার্ডওয়্যারটি যথেষ্ট পরিমাণে আলাদা যে প্রায়শই মূল রেন্ডারিংয়ের পুরো অংশগুলি (এবং খুব কমই অন্যান্য সিস্টেমগুলি) সম্পূর্ণরূপে পুনরায় লেখা উচিত। পিসিতে আপনি ডি 3 ডি এবং ওপেনজিএল জুড়ে বিমূর্ত ব্যবহার করতে পারেন, কারণ ওএস এপিআই পৃথক হয় তবে সমস্ত পিসি হার্ডওয়্যার মোটামুটি একই থাকে।

কনসোল স্পেসে, আপনি দেখতে পাবেন যে আপনার সুপার দক্ষ গর্জিয়াস রেন্ডারিং ইঞ্জিনটি সরাসরি কোনও আলাদা কনসোলে পোর্ট করা একেবারেই অসম্ভব, যেহেতু জিপিইউ ক্ষমতাগুলি এত আলাদা এবং আপনার আক্ষরিক অর্থে পারফরম্যান্সের প্রতিটি শেষ শতাংশটি 7 বছর পাওয়ার জন্য খুঁজে বার করতে হবে আপনার আধুনিক গেমটি চালানোর জন্য পুরানো হার্ডওয়্যার। আপনি সহজেই এমন কেসগুলি খুঁজে পেতে পারেন যেখানে এক্সবক্সে সবচেয়ে ভাল কাজ করে এমন আলোক প্যাসগুলি পিএস 3 এর দিকে ভয়ঙ্করভাবে ধীর হয় এবং যেখানে এক্সবক্সে পিএস 3 কুকুরের সেরা পন্থা। অন্যান্য হার্ডওয়্যার এবং প্ল্যাটফর্মের পার্থক্য (যেমন এক্সবক্সের ত্রি-কোর সিপিইউ বনাম পিএস 3 এর এসপিইউগুলি) আপনার একমাত্র প্ল্যাটফর্ম-নির্ভর কোড পথ হিসাবে একটি সরল পাতলা হার্ডওয়্যার বিমোচন স্তরকে নির্ভর করা খুব কঠিন করে তোলে।

যেহেতু প্রতিটি প্ল্যাটফর্মটিও এটি সঠিকভাবে ব্যবহার করতে ব্যাপক পরিমাণে দক্ষতার প্রয়োজন, তাই অনেকগুলি গেমের গেমটি অতিরিক্ত প্ল্যাটফর্মগুলিতে আনার জন্য একটি বিশেষায়িত আউটসোর্স পোর্টিং সংস্থা প্রয়োজন। পিসি স্পেসে আপনি কখনও কখনও একক বিকাশকারীদের খুঁজে পেতে পারেন যারা বন্দরগুলি করেন (যেমন রায়ান "আইকুলাস" গর্ডন যিনি অনেকগুলি লিনাক্স গেম পোর্ট করেন; সরাসরি এগিয়ে কাজ করেন, ডি 3 ডি কে জিএল এবং উইন 32 এ পসিক্স / এসডিএল পরিবর্তন করেন), তবে কনসোল স্পেসে থাকবেন বৃহত্তর গেমগুলিতে বরং বিশাল পোর্টিংয়ের কাজ করার জন্য সমস্ত দল রয়েছে এমন সংস্থা রয়েছে।

কিছু প্ল্যাটফর্মের বন্দরগুলির জন্য প্রায় সম্পূর্ণ পুনর্লিখন বা সম্পদ পুনরায় নকশার প্রয়োজন হয়। কল অফ ডিউটির Wii বন্দর উদাহরণস্বরূপ যেখানে আউটসোর্স করা সংস্থা করেছে এবং সমস্ত শিল্প - শিল্প সম্পদ সহ - Wii এর খুব সীমাবদ্ধ হার্ডওয়্যারের সীমাবদ্ধতার মধ্যে ফিরিয়ে আনতে হয়েছিল। Wii এর ছায়া গোছাও নেই, উদাহরণস্বরূপ, কেবল একই ইঞ্জিন এবং প্রভাবগুলি / উপকরণগুলি পুনরায় ব্যবহার করা সম্পূর্ণ অসম্ভব ছিল এবং সীমিত মেমরি এবং সিপিইউ / জিপিইউ আরও ছোট টেক্সচার এবং কম বিশদ মডেল, প্লাস গেমপ্লে সীমাবদ্ধতা ইত্যাদির প্রয়োজন। মোবাইল প্ল্যাটফর্মগুলিতে পোর্টগুলি একইভাবে সম্পূর্ণ তৃতীয় পক্ষের দ্বারা সম্পূর্ণরূপে পুনরায় লিখিত হয়।

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


2

জেমস রেপনস কেবলমাত্র পিসির সাথে সম্পর্কিত এবং নির্দিষ্ট প্ল্যাটফর্মগুলিতে প্রয়োগের জন্য নয়।
সমস্ত ইঞ্জিন গেম কোডের সর্বাধিক অংশের জন্য প্ল্যাটফর্মটিকে বিমূর্ত করে তুলতে, কিছু প্ল্যাটফর্মের জন্য কিছু অংশ লিখতে হবে। এটিতে নেটওয়ার্ক, রেন্ডারিং, অডিও, ডিভাইস ইনপুট সহ সমস্ত আই / ও অন্তর্ভুক্ত রয়েছে এবং আমি মনে করি ভিডিও আউটপুট।
এক্সবক্স এবং পিএস 3 তে অবাস্তব বলার জন্য রেন্ডারিং কোডের সাথে তুলনা করুন। এক্সবক্সটি এক্সবক্স ডাইরেক্টএক্স সংস্করণ ব্যবহার করে, যখন পিএস 3 libgcm ব্যবহার করে (ওপেনগ্লাগুলি খুব ধীর গতির)। এটিকে কিছুটা সহজ করার জন্য, সমস্ত প্ল্যাটফর্মগুলিতে গেমপ্লে প্রোগ্রামাররা কেবল একটি "অডিওসিসটেম.প্লেসাউন্ড ( এখানে সাউন্ডনাম ) দেখুন, যখন প্রতিটি প্ল্যাটফর্মের জন্য তারা অভ্যন্তরীণভাবে কাজ করে তবে সাউন্ড আউটপুটের জন্য প্ল্যাটফর্মগুলি এপিআই ডাকবে
programming আরও প্রোগ্রামিংয়ের জন্যও তাতারাদের মন্তব্য দেখুন।


1
জেমস যা বলেছেন ঠিক ঠিক এটিই, তিনি কেবল উল্লেখ করতে অবহেলা করেছিলেন যে এইচএএল প্রতিটি প্ল্যাটফর্মের জন্য আলাদা for
জোনাথন ডিকিনসন

আমি প্রকৃতপক্ষে উল্লেখ করেছি যে এটি কোনও এইচএল এপিআই সরবরাহ করা যে কোনও সিস্টেমে চালিত হবে তবে আমি এটি আরও স্পষ্ট করে দিয়েছি কারণ এটি স্পষ্টভাবে বিভ্রান্তির কারণ হয়ে দাঁড়িয়েছিল। এছাড়াও, আপনি যদি কোনও ম্যাক বা ইউনিক্স সিস্টেমে ক্রস ওএসের মতো না যান তবে আপনি পিসিতে অন্য পিসিতে কোড পোর্ট করবেন না। উইন্ডোজের পরিবেশের জন্য, যেখানে বেশিরভাগ গেমগুলি চালিত হয়, এটি এমন হার্ডওয়্যার ড্রাইভার যা আপনার জন্য ইতিমধ্যে এটি পরিচালনা করে, আপনি ড্রাইভার কলের মাধ্যমে একটি ডাইরেক্টএক্স বা ওপেনজিএল ডেটা বাফার তৈরি করেন এবং হার্ডওয়্যার সেখান থেকে কী করতে হবে তা জানে।
জেমস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.