এমএমও কোয়েস্ট মেকানিক্স বাস্তবায়নের জন্য টিপস?


14

নীচের তালিকাভুক্ত প্রয়োজনীয়তা অনুসারে কোয়েস্ট মেকানিকগুলি বাস্তবায়নের জন্য কোন সরঞ্জাম, নিদর্শন বা সেরা অনুশীলনগুলির পরামর্শ দেবেন?

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

প্রয়োজনীয়তা:

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

    এ এর সাথে কথা বলুন - 5 বি কে হত্যা করুন - এ এর ​​সাথে কথা বলুন - স্থায়ীভাবে স্বাস্থ্য বৃদ্ধি করুন

  • বেশ জড়িত:

    এক্স অঞ্চলের আইটেমটি ব্যবহার করুন - এয়ার ওয়াইডে যান - একটি বট স্প্যান করবে - 10% এর বেশি ক্ষতি না নিয়ে বটকে মেরে ফেলবে - বট ড্রপস আইটেমটি তুলে ফেলবে - পোর্টালটি আনলক করবে - পোর্টালের পিছনে জেতে আইটেম সরবরাহ করুন - স্বর্ণ এবং অভিজ্ঞতা পান - এই প্লেয়ারের জন্য লক পোর্টাল - আরও একবার পোর্টাল পাস করার অনুমতি দিন

  • স্তর উদাহরণগুলি একটি সম্ভাবনা (খেলোয়াড়রা দল বা বিচ্ছিন্নতার কিছু নির্দিষ্ট অনুসন্ধান সম্পূর্ণ করতে পারে যা কেবলমাত্র সেই অংশগ্রহণকারীদের জন্য স্তরের অবস্থান স্প্যান করবে)

  • অনুসন্ধানগুলি স্ক্রিপ্টিং বা প্রোগ্রামিং জ্ঞান ছাড়াই বিশ্ব সম্পাদক ব্যবহার করে পরিচালনাযোগ্য হওয়া উচিত ( সম্পাদনা করুন: সাধারণভাবে স্ক্রিপ্টিংয়ের বিরুদ্ধে পরামর্শ দিচ্ছেন না)
  • আমি বাস্তবায়নের ভাষা হিসাবে সি ++ ধরে নিই

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


আপনি কোনও স্ক্রিপ্টিং এড়িয়ে যাওয়ার জন্য কেন কোনও নির্দিষ্ট কারণ আছে? (যেমন লুয়া / গেমমনকি ইত্যাদি)।
সাইমন

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

1
আমি একমত, স্ক্রিপ্টিং সমর্থন ছাড়াই ইঞ্জিন প্রোগ্রামারদের জড়িত না করে অনুসন্ধানগুলিতে বিভিন্ন যোগ করা কঠিন হবে।
drxzcl

1
স্ক্রিপ্টিং ল্যাঙ্গুয়েজগুলি যথেষ্ট দ্রুত হয়ে থাকে যে এটি কোনও সমস্যা নয়। আমি তাদের দৃ strongly়ভাবে ব্যবহার করার পরামর্শ দিই। এটি বলেছিল যে, ওয়া এর স্ক্রিপ্টিংয়ের বেশিরভাগটি মন্ত্র এবং ইভেন্টগুলি ট্রিগার করার আশেপাশের। পর্দার আড়ালে "টক টু এ" প্লেয়ারকে "একটি স্পেল" দেয় এবং কোয়েস্টটি আসলে কোডড হয়ে যায় "প্লেয়ারের উপর # 55728 বানানটি তৈরি করা হলে" এটি সফল হয় "। তারপরে প্লেয়ারটিতে ম্যাসেজ ছড়িয়ে দেওয়ার জন্য প্রাণীদের পেতে আপনার কেবলমাত্র একটি এআই কোডিং দরকার এবং আপনি সেট হয়ে গেছেন।
জোর্বাথুত

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

উত্তর:


6

প্রথমে একটি সতর্কতা, তারপরে কিছু পরামর্শ।

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

আমি অনুসন্ধানের সাথে জড়িত সমস্ত বস্তুর উপর স্ক্রিপ্টগুলি স্টাফ করে শেষ করেছি হাতে কম-বেশি, যেমন (সিউডোকোড):

Lever004_on_activate() {
    if isOnQuest(player, QUEST_0012) do_something();
    if isOnQuest(player, QUEST_0015) do_something_else();
}

এটি একটি সম্পূর্ণ দুঃস্বপ্ন। গেমটির মধ্য দিয়ে সমস্ত অনুসন্ধান ছাড়াই কোয়েস্ট কীভাবে কাজ করে তা বের করার কোনও উপায় নেই। এটা করো না.

আমি এমন একটি সিস্টেম তৈরি করার পরামর্শ দিচ্ছি যেখানে পুরো কোয়েস্ট (লাইন) সীমাবদ্ধ রাষ্ট্রের মেশিন হিসাবে উপস্থাপিত হয়, যেখানে ট্রানজিশনগুলি এবং স্ক্রিপ্টগুলি পরীক্ষা করার জন্য ইভেন্টগুলির সাথে প্রতিক্রিয়া জানায় said এটি আপনি প্রদত্ত কোয়েস্টে (লাইন) কোথায় আছেন তা ট্র্যাক রাখা সহজ করে তোলে এবং সমস্ত অনুসন্ধানের অবস্থা ঝরঝরেভাবে আবদ্ধ করে রাখে।

আপনি যদি চান তবে সাধারণ ঘটনাগুলির জন্য আপনি নিজের বিশ্ব সম্পাদকে স্ক্রিপ্ট / স্ক্রিপ্ট টেম্পলেটগুলির একটি লাইব্রেরি তৈরি করতে পারেন (প্লেয়ার এনপিসির সাথে কথা বলে, প্লেয়ার মবকে হত্যা করে ইত্যাদি)

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


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

হ্যাঁ, কাজ ঠিক আছে। এই মুহুর্তে কেবলমাত্র ওয়ার্ল্ড ফোরামের দিকে যান এবং অবিচ্ছেদ্য অনুসন্ধানগুলির বিষয়ে অভিযোগকারী লোকদের সম্পর্কে পড়ুন। এটি সর্বদা ঘটে থাকে, এমনকি বড় লিগেও। সবকিছু ঠিক করা সত্যিই কঠিন hard
drxzcl

3

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

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

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