ধারণামূলকভাবে, কীভাবে কোনও গেমের জন্য কোনও নিয়ম / সীমাবদ্ধতা (গ্রাফিক্স / পদার্থবিজ্ঞান নয়) ইঞ্জিন তৈরি করে


16

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

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

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

স্পষ্টতই, শিরোনাম থেকে পাওয়া "গেম ইঞ্জিন" সংঘর্ষ সনাক্তকরণ বা অন্যান্য পদার্থবিজ্ঞান / গ্রাফিক্স মেকানিক্সকে বোঝায় না, তবে কোনও খেলোয়াড় কী কী বিকল্পগুলি পরিস্থিতি এবং তার বর্তমান অবস্থা দিয়েছে তা নির্ধারণ করার যুক্তিটি স্থির করে।


1
এই প্রশ্নটি কি গেমদেবের পক্ষে আরও উপযুক্ত ?
উয়ে প্লোনাস

2
@ ইউইউ প্লোনাস এটি বিবেচনা করে তবে আমি এটি বিশ্বাস করি না। আমার প্রশ্নটি সম্পূর্ণরূপে ধারণাগত এবং গ্রাফিক লাইব্রেরি, 3 ডি এবং গেমদেবকে আধিপত্য করে এমন অন্যান্য বিষয়গুলির সাথে কিছুই নেই। এটি ভাবতে আসুন, এই প্রশ্নের প্রতি গেমগুলির সাথে সামান্য কিছু করার আছে ... তবে কীভাবে এটি আরও ভাল উপাধি দেওয়া যায় তা নিশ্চিত নন।
কাকাকোও

দাবা এবং কার্ড গেম অ্যাডভেঞ্চারের থেকে খুব আলাদা।
হরিণ হান্টার

1
আপনার প্রশ্নটি বিশেষজ্ঞ সিস্টেম বিকাশকেও কভার করে বলে মনে হচ্ছে। যেখানে অনুসরণ করা প্রতিটি প্রশ্নের উত্তর এবং সম্ভাব্য নির্ণয়ের সীমাটি সীমাবদ্ধ হয়ে যায় answer সম্ভবত এটি আরও কিছু "ইনপুট" সন্ধান করতে চান?
মার্জন ভেনেমা

উত্তর:


7

আপনি মন্তব্যগুলিতে যা বলেছেন তার উপর ভিত্তি করে, আমি এটি হ্যান্ডেল করব:

মোড়ক দিয়ে একটি সসীম স্টেট মেশিন হিসাবে গল্পটি প্রয়োগ করুন। প্রতিটি রাজ্য গল্পের একটি পৃষ্ঠা এবং প্রতিটি ট্রানজিশন একটি পৃষ্ঠা থেকে অন্য পৃষ্ঠায় লিঙ্ক is কিন্তু প্রতিটি ট্র্যানজিশন এছাড়াও আছে শর্তাবলী । শর্তগুলি বাতিল হতে পারে, সেক্ষেত্রে ট্রানজিশনটি সর্বদা উপলভ্য বিকল্প হিসাবে প্রদর্শিত হয়, তবে যদি তা না হয় তবে পৃষ্ঠাটি প্রদর্শন করার সময় তাদের মূল্যায়ন করতে হবে এবং যদি মূল্যায়ন ফিরে আসে Falseতবে ট্রানজিশনটি প্রদর্শিত হবে না।

শর্তগুলি কার্যকর করতে পারে এমন দুটি প্রাথমিক উপায় রয়েছে। প্রথমটি হ'ল গেমের অভ্যন্তরে একটি পূর্ণ-বিকাশকারী স্ক্রিপ্ট ইঞ্জিন স্থাপন করা, এবং তারপরে শর্তটি দেখতে দেখতে return player.inventory.contains(GUN)। এটি প্রাথমিকভাবে সেট আপ করা আরও জটিল, তবে আরও উন্নত স্ক্রিপ্টিংয়ের অনুমতি দেয়।

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


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

আমি এই পদ্ধতির বেশ কিছুটা পছন্দ করি। ধন্যবাদ! আরও তদন্ত করবে। কোন সুযোগ আপনি একটি দরকারী গ্রন্থাগার জানেন?
কাকাকোও

@ ওয়েগজেন: না, দুঃখিত জাভা বিকাশকারী নয়।
ম্যাসন হুইলারের

@ মেসনওহিলার: লাজার সম্পর্কে আপনার কী ধারণা ?
রবার্ট হার্ভে

1
যেহেতু আজ এই প্রশ্নটি জনপ্রিয় প্রশ্ন তালিকায় আঘাত করেছে, তাই আমি পূর্ববর্তী মন্তব্যে যা বলেছিলাম ঠিক তেমনই এটি প্রয়োগ করেছি বলে জানাব। আমি একটি দুর্দান্ত ডিএসএল তৈরি করেছি এবং এফএসএম যুক্তিটি নিজেকে বাস্তবায়িত করেছি কারণ এটি সত্যই, সত্যই সহজ। সমাধানের সাথে আরও সন্তুষ্ট হতে পারে না। @ ম্যাসনভিয়েল একটি দুর্দান্ত পরামর্শের জন্য আবার ধন্যবাদ!
kaqqao

5

আমি মনে করি উত্তরটি শিরোনামে রয়েছে: আপনার একটি নিয়ম ইঞ্জিন দরকার। আপনি যদি জাভা দিয়ে আপনার অ্যাপ্লিকেশনটি লেখার পরিকল্পনা করছেন তবে গিলবার্ট লে ব্ল্যাঙ্কের পরামর্শ মতো আপনি অবশ্যই নিজের লেখা লিখতে পারেন, বা আপনি কোনও নিয়ম ইঞ্জিন দ্রোলসকে একবার দেখে নিতে চাইতে পারেন ।

কোনও খেলোয়াড় পরিস্থিতি এবং তার বর্তমান অবস্থা কী কী বিকল্প দেয়

ড্রলস বা অন্য কোনও নিয়ম ইঞ্জিনের সাহায্যে আপনি একটি প্যারামিটারাইজড পরিস্থিতি সংজ্ঞায়িত করতে পারেন যা সম্ভাব্য ক্রিয়াকলাপগুলির তালিকা তৈরি করে। আপনি সহজ নিয়মগুলিকে এনকোড করতে পারেন সফলভাবে:

  • প্লেয়ার পৃষ্ঠায় রয়েছে:

    • পছন্দ 1: শিরোনাম: "বামে যান", ক্রিয়া: "পৃষ্ঠা 45"
    • পছন্দ 2: শিরোনাম: "ডানদিকে যান", ক্রিয়া: "পৃষ্ঠা56"
    • যদি খেলোয়াড়ের ফায়ারবলসের স্টাফ থাকে তবে তারা পছন্দ 3: শিরোনাম "লঞ্চ ফায়ারবল", ক্রিয়া: "পৃষ্ঠা 32"
    • যদি খেলোয়াড়ের 10 তম পছন্দ 4 এর উপলব্ধি দক্ষতা থাকে: শিরোনাম "দেয়ালে লেখাগুলি পরীক্ষা করুন", ক্রিয়া: "পৃষ্ঠা 67"

ড্রলসের সাথে আকর্ষণীয় বিষয়টি হ'ল আপনি আপনার সমস্ত নিয়ম কোনও এক্সেল ফাইলে এনকোড করতে পারেন এবং তারপরে গেমের শুরুতে ড্রলসকে সেই ফাইলটি পড়তে বাধ্য করে। এর পরে সবকিছু মেমরির মধ্যে রয়েছে, আপনার কেবল আপনার ইউজার ইন্টারফেস সম্পর্কে মাথা ঘামানো উচিত।

আপনাকে ড্রলস দিয়ে শুরু করতে সহায়তা করার জন্য এখানে কিছু রিসোর্সগুলি দেওয়া হয়েছে:


সাধারণভাবে - আপনার পছন্দের কোনও নিয়ম ইঞ্জিনে প্রয়োগ করা রিট অ্যালগরিদম সন্ধান করুন ।
হরিণ হান্টার

হ্যাঁ, ড্রলস আমি যে জিনিসগুলি দিয়ে শুরু করেছি তার মধ্যে একটি ছিল। আমি একবারে কেবলমাত্র একটি প্যাকেজ নিয়মের মূল্যায়ন করতে পারি কিনা তা দেখতে আমাকে আরও তদন্ত করতে হবে, কারণ এটি আমার ক্ষেত্রে বরং গুরুত্বপূর্ণ rather ধন্যবাদ!
কাকাকোও

@ ওয়েগজেন সাহায্য করতে পেরে আনন্দিত!
জালান

2

আপনার গেমের মডেল করার জন্য রাষ্ট্রীয় মেশিনটি সুরক্ষিত পদ্ধতির মতো শোনাচ্ছে। ইন্টারেক্টিভ কল্পকাহিনীর জন্য প্রচুর গ্রন্থাগার রয়েছে:

http://en.wikipedia.org/wiki/Category:Text_adventure_game_engines

উইকিপিডিয়া উল্লেখ নেই, কুণ্ডলী মুহূর্তে খুব জনপ্রিয়।


2

ধারণামূলকভাবে, আপনার খেলাটি সোজা। স্যুডিওকোডে, এটি দেখতে এমন কিছু দেখাচ্ছে:

while not at end of adventure story
    display text
    get response

এখন, সমস্ত পাঠকে এক সাথে শৃঙ্খলাবদ্ধ করে তোলা যাতে এটি একটি ক্রিয়া থেকে পরবর্তী ক্রমে প্রবাহিত হয় শক্ত অংশ। আপনি একটি সম্পর্কিত ডেটাবেস ব্যবহার করতে পারেন। আপনি একটি গাছ ব্যবহার করতে পারে।

আপনি কোন কম্পিউটারের ভাষা ব্যবহার করতে চান তা না জেনে আরও নির্দিষ্ট হওয়া কিছুটা শক্ত। যেহেতু আপনি জাভা উল্লেখ করেছেন, আমি গাছের কাঠামোর দিকে আরো ঝুঁকতে চাই।

একটি প্রতিক্রিয়া শ্রেণি তৈরি করুন যা একটি প্রতিক্রিয়া এবং একটি পাঠ্য শ্রেণীর লিঙ্ক রাখে।

অ্যাডভেঞ্চারের পাঠ্য ধারণ করে এমন একটি পাঠ্য শ্রেণি তৈরি করুন এবং প্রতিক্রিয়া শ্রেণীর উদাহরণ হিসাবে প্রতিক্রিয়াগুলির তালিকা।

মন্তব্যটির উত্তর দিতে সম্পাদিত:

আপনি এই মডেল উপর ভিত্তি করে কিছুই গণনা করবেন না। আপনার উদাহরণ ব্যবহার করে, গাছটি দেখতে এমন কিছু দেখাচ্ছে, যেখানে টি পাঠ্য এবং এটি একটি ক্রিয়া পছন্দ:

T You stumble on a dead police officer
    A Take the gun
    T You hear footsteps
      A Run away
      A Hide and see who comes
    A Don't touch anything
    T You hear footsteps
      A Run away

হ্যাঁ, পাঠ্যের কিছু নকল রয়েছে তবে শৃঙ্খলা অনুসরণ করে ভবিষ্যতের ক্রিয়াগুলি অতীতের সিদ্ধান্তগুলি বিবেচনায় নিতে পারে। এটি একটি বিশাল সিদ্ধান্তের গাছ।


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

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