ঐতিহ্যগত খেলা নকশা , আমি জানি, ব্যবহার পলিমরফিজম এবং ভার্চুয়াল ফাংশন আপডেটের খেলা রাজ্যের বস্তু। অন্য কথায়, একই ভার্চুয়াল ফাংশনগুলিকে গেমের প্রতিটি বস্তুর নিয়মিত (প্রাক্তন: প্রতি ফ্রেম) বিরতিতে ডাকা হয়।
সাম্প্রতিককালে, আমি আবিষ্কার করেছি যে আরও একটি আছে - ইভেন্ট চালিত মেসেজিং সিস্টেম গেম অবজেক্টের রাজ্যগুলি আপডেট করার জন্য উপলব্ধ। এখানে, অবজেক্টগুলি সাধারণত প্রতি ফ্রেম ভিত্তিতে আপডেট হয় না। পরিবর্তে, একটি অত্যন্ত দক্ষ ইভেন্ট মেসেজিং সিস্টেমটি তৈরি করা হয় এবং বৈধ ইভেন্টের বার্তাটি পাওয়ার পরে গেমের বিষয়গুলি আপডেট হয়।
ইভেন্ট ড্রাইভড গেম আর্কিটেকচারটি ভালভাবে বর্ণিত হয়েছে: মাইক ম্যাকশ্যাফ্রি দ্বারা গেম কোডিং সম্পূর্ণ ।
আমি কি দয়া করে নিম্নলিখিত প্রশ্নগুলির সাহায্যের জন্য জিজ্ঞাসা করতে পারি:
- উভয় পদ্ধতির সুবিধা এবং অসুবিধাগুলি কী?
- একজনের চেয়ে অপরটির চেয়ে ভাল কোথায়?
- ইভেন্টটি চালিত গেমের নকশা সর্বজনীন এবং সব ক্ষেত্রেই আরও ভাল? সুতরাং এটি এমনকি মম্বাইল প্ল্যাটফর্মগুলিতে ব্যবহারের জন্য সুপারিশ করা হয়?
- কোনটি আরও দক্ষ এবং কোনটি বিকাশ করা আরও কঠিন?
স্পষ্ট করে বলার জন্য, আমার প্রশ্নটি গেমের নকশা থেকে সম্পূর্ণরূপে পলিমারফিজম সরিয়ে ফেলার নয়। আমি কেবল পার্থক্যটি বুঝতে এবং ইভেন্ট স্থিত মেসেজিং বনাম নিয়মিত (প্রতি ফ্রেম) গেমের অবস্থা আপডেট করার জন্য ভার্চুয়াল ফাংশনগুলিতে কল ব্যবহার করে উপকার পেতে চাই।
উদাহরণ: এই প্রশ্নটি এখানে কিছুটা বিতর্ক সৃষ্টি করেছিল, তাই আমি আপনাকে উদাহরণটি দেই: এমভিসি অনুসারে, গেম ইঞ্জিনটি মূলত তিনটি ভাগে বিভক্ত:
- অ্যাপ্লিকেশন স্তর (হার্ডওয়্যার এবং ওএস যোগাযোগ)
- খেলা লজিক
- খেলা দেখুন
একটি রেসিং গেমে, গেম ভিউ কমপক্ষে 30fps, যত তাড়াতাড়ি সম্ভব স্ক্রিনটি সরবরাহ করার জন্য দায়বদ্ধ। গেম ভিউ প্লেয়ারের ইনপুটটির জন্যও শোনে। এখন এটি ঘটে:
- প্লেয়ারটি জ্বালানীর প্যাডেল 80% চাপায়
- গেমভিউ একটি বার্তা তৈরি করে "গাড়ী 2 ফুয়েল পেডাল 80% চাপ দেওয়া" এবং এটি গেম লজিকে প্রেরণ করে।
- গেম লজিক এই বার্তাটি পেয়েছে, নতুন গাড়ির অবস্থান এবং আচরণটি মূল্যায়ন করে, গণনা করে এবং গেমভিউয়ের জন্য নিম্নলিখিত বার্তাগুলি তৈরি করে: "গাড়ি 2 ফুয়েল প্যাডাল চাপুন 80%", "গাড়ী 2 শব্দ ত্বরণ", "গাড়ী 2 স্থানাঙ্ক এক্স, ওয়াই" .. ।
- গেমভিউ বার্তাগুলি গ্রহণ করে এবং সে অনুযায়ী তাদের প্রক্রিয়া করে
update
তাদের কাছে কল করুন)। দ্বিতীয়টি আপনি বিভিন্ন কারণে মেসেজিংয়ের মাধ্যমে করতে পারেন।