স্তর সম্পাদক + খেলা -> নকল রেন্ডারিং / গেম নির্দিষ্ট কোড?


14

আমি একটি গেমের জন্য কোড ডিজাইন করার পদ্ধতি সম্পর্কে পড়ছি। একটি জিনিস যা আমি বুঝতে সক্ষম হয়ে উঠতে পারি না তা হ'ল - আপনি গেমটি থেকে 'অনুলিপি' কোড না করে বাইরের গেম লেভেল এডিটর (কোনও 'ইন-গেম লেভেল এডিটর' নয়) কীভাবে লিখবেন? উদাহরণস্বরূপ, আপনাকে থাকতে পারে বিভিন্ন ধরণের সত্তা সম্পর্কে আপনার সমস্ত কোড অনুলিপি করতে হতে পারে। আপনাকে গেম রেন্ডারিং কোড যুক্ত করতে হবে।

আমার ধারণা এই যে গেমটির 'ইঞ্জিন' অংশের বাইরে একটি ডিএলএল তৈরি করে এটি করা যেতে পারে। তারপরে, এটিকে আসল খেলা এবং স্তর সম্পাদকের মধ্যে ভাগ করুন।

অথবা এটি করার আরও ভাল / সহজ উপায় আছে?

উত্তর:


13

আপনাকে নিজের কোডটি পৃথক প্রকল্পে (একই সমাধানে) আলাদা করতে হবে। সাধারণত আপনার নিম্নলিখিত সেটআপ করতে হবে:

-Engine Core       (DLL)
-Game + Game Logic (EXE)
-Content Pipeline  (DLL)
-Editor            (EXE)

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

তারা একে অপরকে রেফারেন্স দিলে বিচ্ছেদ অকেজো হবে।

যাইহোক এটির আপনাকে অন্য প্রকল্পগুলিতে আপনার ইঞ্জিনের কিছু অংশ পুনরায় ব্যবহার করতে সহায়তা করা উচিত। সম্পাদক হিসাবে উদাহরণস্বরূপ আপনাকে গ্রাফিক্স প্রকল্পটি উল্লেখ করতে হবে যা কোর নিজেই উল্লেখ করে।

এই বিচ্ছেদটির অর্থ হ'ল আপনি এখন উইন্ডোজ ও এক্সবিএলআইজি লক্ষ্যবস্তু করতে পারেন এমন সময়ে আপনার সম্পাদকটিতে ডাব্লুপিএফ এর মতো উইন্ডোজ কেবল প্রযুক্তি ব্যবহার করতে পারবেন।

ডাব্লুপিএফ পরিবেশের মধ্যে এক্সএনএ ব্যবহারের জন্য আরও তথ্যের জন্য এই লিঙ্কটি দেখুন: http://blogs.msdn.com/b/nicgrave/archive/2010/07/25/rendering-with-xna-framework-4-0-inside- একটি-wpf-application.aspx


ধন্যবাদ! আরও কিছুটা ঘুরে দেখছি এবং আমি এটি পেয়েছি - create.msdn.com/en-US/education/catolog/sample/… - এটি উইনফর্মগুলি ডাব্লুপিএফের চেয়ে ভাল সমর্থিত বলে মনে হয়!
উত্কর্ষ সিনহা

আরে এটি সত্য, তবে ডাব্লুপিএফ সত্যই মাটিতে নামার আগে সেই নমুনাটি ২০০৮ সালের। আমি এক বছর আগে উইনফোর্ডস থেকে ডাব্লুপিএফ পরিবর্তন করেছি এবং আমি বিশ্বকে ফিরে যেতে চাই না :)। আপনি যদি সেই নমুনাটির সাথে সামঞ্জস্য রাখতে চান তবে আপনি সর্বদা ডাব্লুপিএফ অ্যাপ্লিকেশনটিতে উইনফোর্ডসকন্ট্রোলহোস্ট ব্যবহার করতে পারেন :)।
রায় টি।

4

আপনার গেম ইঞ্জিনটি ডিজাইনের সময় বাস্তব গেম যুক্তি থেকে যতটা সম্ভব রেন্ডারিং লজিককে আলাদা করুন। এটি করার একটি উপায় হ'ল আপনার গেম ইঞ্জিনটি তৈরি করার সময় কম্পোনেন্ট প্যাটার্নটি ব্যবহার করা । উদাহরণস্বরূপ, এক্সএনএ নমনীয়তার জন্য কাঠামো স্তরে এই প্যাটার্নটি ব্যবহার করে। আপনার স্তর সম্পাদকের সাথে রেন্ডারিংয়ের জন্য একই কোড-বেস ব্যবহার করুন; আপনার যদি লিখতে হয় তবে র‍্যাপারগুলি লিখুন।

একইভাবে, আরেকটি জনপ্রিয় প্যাটার্ন হ'ল এমভিসি (মডেল-ভিউ-কন্ট্রোলার) যা সহায়তা করতে পারে। সাধারণত এমভিসি ব্যবহার করে আপনার ইঞ্জিনটি কোড করুন। তারপরে আপনি ভিউ এবং মডেলের জন্য একই কোডটি ব্যবহার করতে পারেন তবে গেম ইঞ্জিনের নিয়ন্ত্রকের পরিবর্তে আপনার স্তর স্তরের সম্পাদকের জন্য মডেল সম্পাদনা করার জন্য একটি কাস্টম কন্ট্রোলার ইনজেক্ট করুন যা গেম ইনপুট অনুসারে আপডেট হয়। গেম মডেলগুলি এডিটর বা গেম থেকে লোড / সেভ করার জন্য সিরিয়ালাইজেশন প্রয়োগ করুন।

পৃথক সমাবেশগুলিতে উপাদান রাখা অবশ্যই পৃথকীকরণকে উত্সাহিত করবে ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.