গেমসে এমভিসি-র মতো বগি? [বন্ধ]


19

আমি একটি গেমটির নকশা নিয়ে চিন্তা করছিলাম (কম্পিউটারে একটি বোর্ডগেম অনুবাদ করছিলাম, বিশেষত, যা আমি মনে করি এটি এই ক্ষেত্রে প্রাসঙ্গিক) এবং এটি আমার কাছে ঘটেছিল যে 'গেম'টিকে' ডিসপ্লে 'থেকে পৃথক করে গড়ে তোলা বুদ্ধিমান হতে পারে।

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

গেমগুলিতে এই ধরণের বগিটি কি সাধারণ? আমার কি আরও জিনিসগুলি ভেঙে ফেলার চেষ্টা করা উচিত? আমি কি অনুপস্থিত হতে পারে এমন জটিলতা রয়েছে?

উত্তর:


7

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

http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/

http://gameprogrammingpatterns.com/component.html


FPSes জন্য দেখুন MVC ভাল কাজ করতে পারেন gamasutra.com/features/20050414/rouwe_01.shtml অন্তত একটি রেফারেন্সের জন্য।
স্টোনমেটাল

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

5

আমার এটি গ্রহণ:

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

এইভাবে আপনি একটি নকল নিয়ন্ত্রণকারী প্লাগ করতে পারেন যা একটি ফাইল পড়ে যা প্রাক-রেকর্ডকৃত ইনপুট ইভেন্টগুলি ধারণ করে।
একটি সাধারণ ভিউ তৈরি করুন যা কেবল কোনও ফাইলে জিনিসগুলি লগ করে।
পরীক্ষা এবং ডিবাগিংয়ের জন্য খুব দরকারী use

একটি ধ্রুবক হারে (নির্দিষ্ট সময় ধাপ) এবং মডেল আপডেটটি যত দ্রুত সম্ভব (তবে খুব বেশি ভেরিয়েবল নয়) এ স্মরণ করুন Remember


0

এই ধরনের কম্পার্টমেন্টালাইজেশন হ'ল ইঞ্জিন এবং গেমকোডের মধ্যে বিভাজন এবং এটি বেশ সাধারণ common পথে বিমূর্ততার জন্য প্রচুর জায়গা রয়েছে।

আপনার ইঞ্জিন এবং আপনার গেমসের নির্দিষ্ট গ্রাফিক ডেটা ভিউ, আপনার গেমকোড মডেল এবং আপনার গেমকোডের কোন সত্তায় কোন টেক্সচারটি প্রয়োগ করতে হবে তা আপনার ইঞ্জিনকে বলার জন্য আপনি যে আঠালো ব্যবহার করবেন তা হতে পারে।


2
এটি মোটেও সত্য নয়। এমভিসি ব্যবহারকারী ইন্টারফেস (দর্শন এবং নিয়ামক) থেকে রাষ্ট্রের (মডেল) বিভাজনকে সংজ্ঞায়িত করে। একটি "ইঞ্জিন" হ'ল একটি জেনেরিক কাঠামো, যার উপর গেমস তৈরি করা যায় এবং এতে মডেল, দর্শন এবং নিয়ামকের জন্য বেস উপাদান থাকতে পারে।
মাইকওয়াত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.