আপনি "মাল্টিথ্রেডিং অসুবিধা" সম্পর্কে কথা বলছেন তবে আপনি আসলে কোন অসুবিধাগুলির কথা বলছেন? একটি উপায়ে আপনি একটি ভৌতিক সমস্যার উদ্ধৃতি দিচ্ছেন যা সম্ভবত উপস্থিত নেই। আসল প্রতিদ্বন্দ্বিতা হ'ল আপনি নিজের জন্য তৈরি - যদি আপনি একেবারে হার্ডওয়ারের এক টুকরো থেকে প্রতিটি শেষ ড্রপ পাওয়ার জন্য দৃ determined়সংকল্পবদ্ধ হন, তবে এটি হার্ডওয়্যারকে সর্বোত্তম প্রভাবের সাথে জড়িত করে, তবে এটি সবচেয়ে শক্তিশালী মেশিনের মধ্যে ব্যবধানকে আরও প্রশস্ত করে তোলে এবং সবচেয়ে শক্তিশালী। এর প্রকোপটি হ'ল যদি আপনার কাছে এমন একটি গেম থাকে যা সত্যিই পিএস 3 এর সর্বাধিক সর্বাধিক উপার্জন করে (উদাহরণস্বরূপ), আপনি সত্যিই এটি কোনও সস্তা সেলফোনে চালাতে পারবেন না, সুতরাং আপনার সমস্যাটি আর নেই "আমি কীভাবে 1 প্রোগ্রাম পেতে পারি? খুব আলাদা হার্ডওয়্যার জুড়ে কাজ করতে "তবে" হয়ে যায় আমি কীভাবে 1 গেম আইডিকে বিভিন্নভাবে প্রয়োগ করতে পারি যাতে এটি ভিন্নভাবে চালিত হার্ডওয়্যারগুলিতে কাজ করে "।
এসডিএলের মতো একটি লাইব্রেরি থ্রেডিংয়ের জন্য ক্রস-প্ল্যাটফর্মের র্যাপার এপিআই সরবরাহ করে, তবে আমি মনে করি এটি নির্বোধ হবে যে এটি সরাসরি বিভিন্ন প্ল্যাটফর্ম (ডেস্কটপ / মোবাইল) জুড়ে গেমগুলির সহজ বিকাশের দিকে নিয়ে যায়।
গেমগুলির সহজ বিকাশ - নিশ্চিত। অনুকূল মাল্টিথ্রেডিং, না। গেমস তৈরি করতে আপনার মাল্টিথ্রেডিংয়ের দরকার নেই । উচ্চ কার্যকারিতা তৈরি করতে, এটি অবশ্যই সহায়তা করে। তবে অনেক দুর্দান্ত গেম একক থ্রেডে চলে।
নিম্নলিখিতটি বিবেচনা করে এইভাবে বিকাশ মোকাবেলার সর্বোত্তম উপায় কী (কোনও ক্রস-প্ল্যাটফর্ম থ্রেডিং এপিআই দেওয়া):
- কোর বিভিন্ন সংখ্যা
- কোর প্রতি বিস্তৃত বিভিন্ন প্রক্রিয়াজাতকরণ ক্ষমতা
- উদাহরণস্বরূপ একটি সাধারণ সিস্টেম সিস্টেমের আর্কিটেকচার। ক্যাশে, র্যাম এবং আই / ও অ্যাক্সেসের জন্য বিভিন্ন বিলম্ব
থ্রেডগুলিতে সিস্টেমগুলি নির্ধারণের পরিবর্তে থ্রেডগুলিতে কার্য নির্ধারণ করুন assign প্রতিটি টাস্ককে যে কোনও হার্ডওয়্যার উপলভ্য হওয়ার জন্য টাস্কগুলি চালনার জন্য প্রয়োজনীয় এবং চালিত করার জন্য প্রয়োজনীয় ডেটা দিন। সাধারণত আপনার কাছে বিভিন্ন কোর বা প্রসেসরের বিমূর্তকরণের জন্য এক ধরণের থ্রেড পুল এবং একটি টাস্ক ম্যানেজার রয়েছে যার কার্যগুলির সারি রয়েছে এবং থ্রেড সংকেত দেয় যে এটি পূর্ববর্তী কাজ শেষ হয়ে গেছে এবং যখন একটি নতুন জন্য প্রস্তুত। আরও বেশি কোর সহ হার্ডওয়্যার স্পষ্টতই আরও দ্রুত কার্যগুলি সম্পন্ন করবে এবং আরও দ্রুত রেন্ডার করতে সক্ষম হবে। বিভিন্ন বৈশিষ্ট্যযুক্ত সিস্টেমে সর্বোত্তমভাবে কাজ করার জন্য এই সিস্টেমটিকে বিশেষীকরণ করা উন্নততর অপ্টিমাইজেশান সমস্যা হয়ে ওঠে তবে কিছু নির্দিষ্ট হেরিস্টিকের উপর ভিত্তি করে তৈরি করা যেতে পারে (উদাহরণস্বরূপ, একটি টাস্ক যা না করে '
তবে, বিচ্ছিন্ন কার্যগুলিতে গেমের বৈশিষ্ট্যগুলি ক্ষয় করা বেশ জটিল বিষয় এবং আপনার পারফরম্যান্সের প্রয়োজনীয়তা সম্পর্কে নিশ্চিত না হওয়া পর্যন্ত প্রায়শই চেষ্টা করা মূল্যহীন না, তাই বেশিরভাগ এটি চেষ্টাও করবেন না।
আরও কিছু পড়া:
http://www.gamasutra.com/view/feature/1830/multithreaded_game_engine_.php - 'ডেটা সমান্তরাল' বিভাগটি দেখুন। এই মডেলটির সাহায্যে ডেটাটি কয়েকটি অভিন্ন কাজ জুড়ে বিভক্ত হয় এবং স্বতন্ত্র থ্রেডে বহন করে।
http://software.intel.com/en-us/articles/designing-the-framework-of-a-parallel-game-engine/ - বেশ ঘন, ওপেন স্তরগুলিতে গেম স্তরের পরিবর্তে জিনিসগুলি বর্ণনা করে।
http://drdobbs.com/high-performance-computing/216500409 - গেম সুনির্দিষ্ট নয়, তবে আপনাকে কীভাবে কার্যগুলি ভাগ করতে হবে তা আপনাকে বলার ক্ষেত্রে সম্পূর্ণ প্রাসঙ্গিক।
http://www.itfgaming.com/news/tech-focus-crysis-2-and-the-future-of-cryengine-3 - এই সাক্ষাত্কারের অর্ধেকটা নীচে তারা কীভাবে কোনও টাস্ক ভিত্তিক সিস্টেমে স্থানান্তরিত করেছিল সে সম্পর্কে একটি উপাখ্যান ।