প্রথমে আপনার মূল প্রশ্নের সংক্ষিপ্তসারটির জন্য, প্রক্রিয়াগতভাবে উত্পন্ন গেম জগতের প্রধান সুবিধা হ'ল:
বিশ্ব বিশাল হতে পারে , ম্যানুয়ালি ডিজাইন করা গেমের জগতের চেয়ে অনেক বড়।
বিশ্বটি (বা এর কমপক্ষে কিছু অংশ) প্রতিটি গেমের জন্য পুনরায় জেনারেট করা যেতে পারে, সম্ভাব্যভাবে রিপ্লে মান বাড়িয়ে দেয়, যেহেতু প্লেয়ারটি সর্বদা নতুন কিছু আবিষ্কার করতে পারে।
বিপরীতে, পদ্ধতিগত প্রজন্মের প্রধান অসুবিধাগুলি হ'ল :
ব্যবহৃত প্রজন্মের পদ্ধতিগুলির উপর নির্ভর করে, বিশ্বজুড়ে সর্বদা খেলতে পারা যায় তা নিশ্চিত করা কঠিন, অর্থাত প্লেয়ার বিশ্ব প্রজন্মের সাথে দুর্ভাগ্যজনক হওয়ার কারণে কেবল এগিয়ে যাওয়ার কোনও পথ নিয়ে আটকাতে পারবেন না।
এমনকি আপনি যদি পুরোপুরি খেলতে না পারার মতো পৃথিবী তৈরি করতে এড়াতে পারেন তবে এলোমেলো বিশ্ব প্রজন্ম একটি অত্যন্ত পরিবর্তনশীল অসুবিধা স্তরকে ডেকে আনতে পারে: কখনও কখনও, খেলোয়াড়টি তাদের সুবিধার জন্য প্রয়োজনীয় সমস্ত কিছু সন্ধান করতে পারে যা গ্রহণের জন্য খুব সহজেই প্রস্তুত থাকে, কখনও কখনও তারা দরকারী কিছু না পেয়ে দীর্ঘ সময় যেতে পারে might ।
দীর্ঘ সময় ধরে, এ জাতীয় এলোমেলো ওঠানামা গড়পড়তা প্রবণতা অর্জন করে, তবে গেমের অসুবিধা যেমন ভারীভাবে সামনের-বোঝা (বেঁচে থাকার গেমগুলির জন্য সাধারণ) হয়, একটি খারাপ শুরু একটি খেলাকে ধ্বংস করতে পারে এবং খুব ভাগ্যবান শুরুটি সমস্ত চ্যালেঞ্জকে ছিনিয়ে নিতে পারে।
দুর্বলভাবে সম্পন্ন পদ্ধতিগত প্রজন্ম বিশ্বকে একঘেয়ে ও বিরক্তিকর অনুভব করতে পারে: আপনি এক ডজন এলোমেলোভাবে তৈরি করা ম্যাজগুলি দেখার পরে, তারা বিশদে আলাদা হলেও এমন কি তারা সমস্ত দেখতে একইরকম হতে শুরু করে।
এছাড়াও, যদি গেমের জগতটি প্রতিটি গেমের জন্য সম্পূর্ণরূপে পুনরায় জন্মানো হয় তবে কোনও নির্দিষ্ট অবস্থান বা বৈশিষ্ট্য নেই যা প্লেয়ারটি আগের গেমগুলি থেকে স্বীকৃতি দিতে পারে। এই জাতীয় পরিচয়ের অভাব খেলোয়াড়ের জন্য সংবেদনশীল স্তরে খেলায় জড়িত হওয়া বা অন্যান্য খেলোয়াড়দের সাথে অভিজ্ঞতা ভাগ করে নেওয়া আরও শক্ত করে তুলতে পারে।
আপনি যে কোনও একটি তালিকায় গণনা করতে পারেন এমন একটি জিনিস রয়েছে: এমন একটি খেলায় যেখানে বিশ্ব প্রতিটি গেমের জন্য এলোমেলোভাবে পুনর্গঠিত হয়, সেখানে "ওয়াকথ্রু" গাইডের মতো কোনও জিনিস থাকতে পারে না, যেহেতু প্রতিটি খেলাধুলা আলাদা হবে।
(এই অপ্রাপ্তির পরীক্ষা-নিরীক্ষা এবং ডিবাগিংয়ের জন্যও সমস্যা হতে পারে, যদিও এটি আরএনজি বীজকে নির্দিষ্ট করে, কমপক্ষে ডিবাগ মোডে এবং / অথবা "চিট" কমান্ড সরবরাহ করে যা ব্যবহার করা যেতে পারে তা দিয়ে আংশিকভাবে এড়ানো যেতে পারে দ্রুত-ফরোয়ার্ডে বিভিন্ন পর্যায়ে খেলুন))
তবে, যদি আপনি অসুবিধাগুলির তালিকার দিকে লক্ষ্য করেন তবে দেখতে পাবেন এটি বেশিরভাগ ক্ষেত্রে বিশুদ্ধ পদ্ধতিগত প্রজন্মের অসুবিধাগুলি বর্ণনা করে ; ম্যানুয়ালি এবং পদ্ধতিগতভাবে উত্পাদিত সামগ্রী মিশ্রণ করে তাদের মধ্যে অনেকগুলি এড়ানো যায় ।
উদাহরণস্বরূপ, প্লেয়ারটি সর্বদা স্থির, ম্যানুয়ালি ডিজাইন করা শহরে শুরু হতে পারে, সম্ভবত আরও কম বা কম স্থির হোম অঞ্চল দ্বারা বেষ্টিত ছিল, তবে শহর থেকে আরও দূরের জায়গাগুলি এলোমেলোভাবে প্লেয়ারকে অন্বেষণের জন্য অপরিচিত অঞ্চল সরবরাহ করার জন্য তৈরি করা যেতে পারে।
পৃথিবীতে এলোমেলোভাবে অন্য নকশাগুলি তৈরি করা শহরগুলি বা অন্যান্য অবস্থানগুলি (আরও বা কম) থাকতে পারে, যেমন প্লেয়ারকে তাদের খুঁজে পেতে হবে, তবে তারা সেখানে পৌঁছে একবার কী আশা করবে তা জানতে পারবে will বিপরীতভাবে, পর্বতগুলির মতো বিশিষ্ট বৈশিষ্ট্যগুলি ম্যানুয়ালি স্থাপন করা যেতে পারে (কমপক্ষে নির্দিষ্ট শুরু করার জায়গার আশেপাশে) তবে তাদের অঞ্চলগুলির বিশদটি এলোমেলো করে দেওয়া যেতে পারে।
অবিচ্ছিন্নভাবে প্লেসমেন্ট তৈরির কারণে অচলাবস্থা এবং অসুবিধার পার্থক্যের বিষয়ে, যা আপনার কার্যবিবরণীয় বিশ্ব জেনারেশন অ্যালগরিদমের শীর্ষে বিভিন্ন ধারাবাহিকতা এবং ভারসাম্য পরীক্ষাগুলি প্রয়োগ করে সমাধান করা যেতে পারে। উদাহরণস্বরূপ, যদি প্লেয়ারকে জল ক্রস করতে সক্ষম হওয়ার জন্য কোনও নির্দিষ্ট আইটেমের প্রয়োজন হয় তবে আপনি কিছু কোড অন্তর্ভুক্ত করতে পারেন যাতে নিশ্চিত হওয়া যায় যে কমপক্ষে একটি আইটেম স্থাপন করা হয়েছে যাতে প্লেয়ার জল ছাড়িয়ে না পৌঁছে যেতে পারে।
একইভাবে, আপনি তাই আপনার আইটেমটি বসানো নিয়ম খামচি কোনো চাইতে পারেন ভারসাম্য ভাঙার বিস্ময়ে এর জাদু জাদুদণ্ড সামনে খেলোয়াড় পৌঁছেছে স্তর স্থাপন করা হয় এক্স এবং হয়তো তা নিশ্চিত করার জন্য অন্তত একটি একটি স্থাপন করা হয় সংশোধন করা হয়েছে অবস্থান যেখানে খেলোয়াড় পৌঁছতে পারে এটি যে পর্যায়ে পৌঁছানোর আগে তাদের বেঁচে থাকার প্রয়োজন হবে।
উপায় দ্বারা, প্রক্রিয়াজাত এবং ম্যানুয়ালি উত্পাদিত সামগ্রীর জাল কম-বেশি নির্বিঘ্নে তৈরি করার একটি সাধারণ উপায় হ'ল প্রক্রিয়াগত বিশ্ব জেনারেটর ব্যবহার করে ম্যানুয়াল জেনারেশন প্রক্রিয়া শুরু করা (সম্ভবত উপযুক্তভাবে টুইট করা সম্ভব, যেমন কোনও গ্রাম বা একটি পর্বতশৃঙ্গ যেখানে আপনি চান সেখানে জেনারেট করা ) আপনি যে অঞ্চলটি ডিজাইন করছেন সেটিকে আরম্ভ করার জন্য, এবং তারপরে নিজের পছন্দ মতো বিশদ সংযোজন এবং সমন্বয় করতে ম্যানুয়ালি এটি টুইট করে। (এটি কেবল ম্যানুয়াল পরিবর্তনগুলি এবং জেনারেটরের বীজ এবং ব্যবহৃত প্যারামিটারগুলি সংরক্ষণ করে খুব কমপ্যাক্ট স্তরের সঞ্চয় স্থানের অনুমতিও দিতে পারে))
ম্যানুয়াল এবং পদ্ধতিগত বিষয়বস্তুগুলির একত্রিত করার অন্যান্য উপায়গুলির মধ্যে আপনার ম্যানুয়ালি ডিজাইন করা স্তরে ফাঁকা দাগ ছেড়ে যাওয়া, এলোমেলো বিষয়বস্তু দ্বারা পূরণ করা উচিত (উদাহরণস্বরূপ একটি দুর্গটি কেবলমাত্র রূপরেখা এবং প্রস্থানগুলি স্থির করে ডানঘনে একটি এলোমেলোভাবে উত্পন্ন ধাঁধা অন্তর্ভুক্ত করতে পারে), বা ম্যানুয়াল ডিজাইনটি স্তরের কিছু অংশের বিস্তৃত রূপরেখা নির্দিষ্ট করতে পারে (উদাহরণস্বরূপ কোনও শহরে ঘর বসানো) এবং বিশদভাবে (যেমন প্রতিটি বাড়ির যথাযথ উপস্থিতি) এলোমেলোভাবে বাছাই করতে ছেড়ে যায়।
প্রকৃতপক্ষে, এমনকি অনেকগুলি গেমস যা সম্পূর্ণরূপে গেম বিশ্বকে স্থির করে থাকে তাদের স্তর নকশা প্রক্রিয়াটির অংশ হিসাবে প্রক্রিয়াজাত প্রজন্মের কিছু রূপ ব্যবহার করে, যেহেতু বিশ্ব প্রজন্মের কিছু দিক রয়েছে (যেমন প্রাকৃতিক দেখায় ভূখণ্ড উত্পাদন করা, বা বনে পৃথক গাছ লাগানো) যেগুলি হাত দ্বারা করা কঠিন এবং / অথবা ক্লান্তিকর, তবে স্বয়ংক্রিয়ভাবে তুলনামূলক সহজ।
বিপরীতভাবে, বেশিরভাগ পদ্ধতিগত বিশ্বের জেনারেটর বিশ্বকে তৈরির জন্য কমপক্ষে কিছু ম্যানুয়ালি ডিজাইন করা অবজেক্ট এবং উপাদান ব্যবহার করবে । কারও কাছে সহজেই নেস্টেড এলোমেলো / ম্যানুয়াল জেনারেশনের একাধিক স্তর থাকতে পারে: উদাহরণস্বরূপ, একটি পদ্ধতিগতভাবে উত্পাদিত বিশ্বে একটি ম্যানুয়ালি উত্পাদিত শহর অন্তর্ভুক্ত থাকতে পারে যা ম্যানুয়ালি অঙ্কিত রূপরেখার সাথে প্রক্রিয়াগতভাবে উত্পন্ন কাঠ দ্বারা ঘিরে থাকে, প্রক্রিয়াজাতভাবে উত্পন্ন গাছগুলি ম্যানুয়ালি ডিজাইন করা পাতা বহন করে।
এছাড়াও নোট করুন যে প্রক্রিয়াগত সামগ্রী তৈরি জরুরীভাবে স্থির বিশ্বের সাথে সামঞ্জস্যপূর্ণ নয়: আপনি কেবলমাত্র একটি নির্দিষ্ট আরএনজি বীজ বাছাই করতে পারেন এবং এটি আপনার বিশ্ব উত্পাদন করতে ব্যবহার করতে পারেন। খেলোয়াড়দের অন্বেষণ করার জন্য আপনি যদি একটি বিশাল বিশ্ব চান তবে এটি প্রতিটি গেম এবং প্রতিটি খেলোয়াড়ের জন্য একই রাখতে চাইলে এটি কার্যকর হতে পারে।
মনে রাখবেন, আপনি যদি এটি করেন (অথবা সম্ভবত আপনি নাও করেন) তবে একাধিক আরএনজি দৃষ্টান্ত ব্যবহার করে আপনার বিশ্ব জেনারেটরকে একটি শ্রেণিবদ্ধ ফ্যাশনে কাজ করার জন্য সত্যই ডিজাইন করা উচিত, যেমন সামগ্রিক মানচিত্রের জেনারেটর একটি একক আরএনজি উদাহরণ রাখে এটি উপ-অঞ্চলগুলি উত্পন্ন করতে ব্যবহার করবে এবং প্রতিটি মহকুমাকে আলাদা বীজমূল্য নির্ধারণ করবে যা অঞ্চল জেনারেটর তখন পৃথক আরএনজি উদাহরণ বীজ করতে ব্যবহার করবে যা অঞ্চলটি তৈরি করতে ব্যবহার করবে, ইত্যাদি। এটি "প্রজাপতি প্রভাব" এড়ানোর জন্য, যেখানে মানচিত্রের অতি ক্ষুদ্রতম অংশের এমনকি ক্ষুদ্রতম বিবরণ পরিবর্তন করা আরএনজিকে সিঙ্কের বাইরে ফেলে দিতে পারে এবং বিশ্বের সমস্ত কিছু একেবারে আলাদা হতে পারে।
প্রজাপতির প্রভাব এড়ানোর আরেকটি গুরুত্বপূর্ণ উপায়, বিশেষত যদি আপনি "ফ্লাইতে" প্লেয়ারটি আবিষ্কার করেন তবে সাধারণ আরএনজি সম্পূর্ণরূপে এড়ানো (প্লেয়ারের দৃষ্টিকোণ থেকে "তাত্ক্ষণিকভাবে ঘটে যাওয়া প্রক্রিয়াগুলি বাদ দেওয়া) উত্সাহের মতো যখন খেলোয়াড় এতে প্রবেশ করে তখন একটি নতুন স্তর) এবং এর পরিবর্তে এলোমেলো সংখ্যা জেনারেশন পদ্ধতি ব্যবহার করুন যা কোনও অভ্যন্তরীণ স্থিতি সঞ্চয় করে না। উদাহরণস্বরূপ, প্লেয়ারটি সাবগিরিয়নের জন্য বীজ নির্বাচন করার সময়, সামগ্রিক বিশ্ব জেনারেটর সাবগিওনের স্থানাঙ্কগুলি (এবং তার নিজস্ব সামগ্রিক বীজ) নিতে পারে এবং সাবগ্রিগান বীজ উত্পাদন করতে একটি হ্যাশ ফাংশনে তাদের খাওয়াত। এইভাবে, খেলোয়াড়টি যে ক্রমে enুকেছে তা নির্বিশেষে প্রতিটি অঞ্চল সর্বদা এক রকম দেখায়।
গীত। এই সমস্ত অবনতির পরেও, আমি সংক্ষিপ্তভাবে পদ্ধতিগত প্রজন্মের জন্য ব্যবহৃত প্রকৃত কোড সম্পর্কে আপনার চূড়ান্ত প্রশ্নটি সম্বোধন করি। হায়রে, আমি এটা সত্যিই একটি ছাড়া কোনো অর্থপূর্ণ অর্থে জবাবদিহি মনে করি না অনেক আরো বিস্তারিত চেয়ে থাকেন, তাহলে সেখানে তাদের ব্যবহার গেম আছে পদ্ধতিগত বিশ্বের প্রজন্ম করতে বিভিন্ন উপায়ে যেমন আক্ষরিক যেহেতু।
উদাহরণস্বরূপ, সমস্ত প্রক্রিয়াগতভাবে উত্পন্ন এক্সপ্লোরেশন গেমগুলির দুর্দান্ত গ্র্যান্ড-বাবা সম্ভবত রোগ , যার স্তর প্রজন্মের অ্যালগরিদম কেবল এলোমেলোভাবে একটি বৃহত আয়তক্ষেত্রাকার স্তরের অভ্যন্তরে একটি আয়তক্ষেত্রাকার কক্ষ স্থাপন করে এবং সেই কক্ষগুলিকে প্যাসেজগুলির সাথে সংযুক্ত করে (এবং একটি সিঁড়ি স্থাপন করে) থাকে and এর মধ্যে একটিতে পরবর্তী স্তর)। নেথাক থেকে ডায়াবলো সিরিজ পর্যন্ত এর বিবিধ উত্তরসূরিরা এই পদ্ধতিটি বিভিন্নভাবে ব্যাখ্যা করেছেন, তবে বেশিরভাগই গ্রিড মানচিত্রে এলোমেলোভাবে কক্ষ, অন্ধকূপ এবং মেজ সমন্বিত স্বতন্ত্র স্তরের মূল ধারণাটি ধরে রেখেছেন।
বিপরীতে, খোলা বহিরঙ্গন সেটিংস বৈশিষ্ট্যযুক্ত গেমগুলির জন্য, আপনি সম্ভবত কিছুটা ফ্র্যাক্টাল টেরেন প্রজন্মের অ্যালগরিদম দিয়ে শুরু করতে চান এবং তার উপরে অন্যান্য বৈশিষ্ট্য (নদী, বন, শহর ইত্যাদি) তৈরি করতে চান। অথবা আপনি মাইনক্রাফ্ট যা করেন তার মতো কিছু করতে পারেন এবং আপনার ল্যান্ডস্কেপের কোন অংশগুলি যথাক্রমে স্থল এবং বায়ু রয়েছে তা নির্ধারণ করে একটি র্যান্ডম 3 ডি প্রক্রিয়াজাতীয় টেক্সচার তৈরি করতে পারেন (ছোট আকারের এবং পক্ষপাতযুক্ত যাতে নীচের ব্লকগুলি স্থল হওয়ার সম্ভাবনা বেশি) এবং তারপরে জলের মতো ওভারলে বৈশিষ্ট্যগুলি এর উপরে মাটি / শিলা, গাছপালা ইত্যাদি।
অবশ্যই, উপরেরগুলির কোনওটি প্রযোজ্য নয় যদি আপনি বলুন যে মহাকাশ অনুসন্ধানের একটি গেমটি লিখেছেন, সেক্ষেত্রে আপনাকে কিছু ঘনত্বের ফাংশন অনুসারে এলোমেলোভাবে স্থাপন করা তারকা সিস্টেমগুলি তৈরি করতে হবে এবং তারপরে একটি এলোমেলো উত্পন্ন করতে হবে say তাদের প্রত্যেকটিতে তারা এবং গ্রহের সেট। অথবা আপনি আপনার খেলোয়াড়কে একটি ইউক্লিডিয়ান-ল্যান্ডস্কেপ অন্বেষণ করতে সেট করছেন, এক্ষেত্রে আপনি সম্পূর্ণ ভিন্ন চ্যালেঞ্জের মুখোমুখি হবেন (যেমন যে প্রদত্ত ব্যাসার্ধের ভলিউম বহুত্বের পরিবর্তে তাত্পর্যপূর্ণভাবে বৃদ্ধি পায়, এটি তৈরি করে স্মৃতিতে একটি বড় মানচিত্র রাখা সত্যিই শক্ত)।