দ্রষ্টব্য: আমি স্ট্যাক ওভারফ্লোতে কিছু দিন আগে এটি জিজ্ঞাসা করেছি তবে খুব কম ভিউ এবং কোনও প্রতিক্রিয়া ছিল না। অঙ্কিত আমার পরিবর্তে gamdev.stackex بدلে জিজ্ঞাসা করা উচিত।
পূর্ববর্তী উত্পন্ন সামগ্রীটি না ভেঙে একাধিক রিলিজ পোস্টের মাধ্যমে প্রক্রিয়াগত প্রজন্মের ব্যবস্থা রক্ষণ সম্পর্কে পরামর্শের জন্য এটি সাধারণ প্রশ্ন / অনুরোধ।
গেমসের জন্য পদ্ধতিগত সামগ্রী তৈরি করার সময় "প্রজাপতি প্রভাব" সমস্যাগুলি এড়াতে তথ্য এবং কৌশলগুলি অনুসন্ধান করার চেষ্টা করছি to বীজযুক্ত এলোমেলো সংখ্যা জেনারেটর ব্যবহার করার সময়, পুনরুত্পাদনযোগ্য বিশ্ব তৈরি করতে এলোমেলো সংখ্যার পুনরাবৃত্তি ক্রম ব্যবহার করা যেতে পারে। কিছু গেমগুলি কেবল একবার তৈরি হওয়া ডিস্কে জেনারেট ওয়ার্ল্ডকে কেবল সংরক্ষণ করে, পদ্ধতিগত প্রজন্মের শক্তিশালী বৈশিষ্ট্যগুলির মধ্যে একটি হ'ল আপনি একইভাবে একাধিকবার অঞ্চলকে পুনরায় তৈরি করতে সংখ্যার ক্রমের পুনরুত্পাদনযোগ্যতার উপর নির্ভর করতে পারেন, প্রয়োজনীয়তা অপসারণ করে অধ্যবসায়। আমার নির্দিষ্ট পরিস্থিতির সীমাবদ্ধতার কারণে, আমাকে অবশ্যই দৃistence়তা হ্রাস করতে হবে এবং যথাসম্ভব খাঁটি বীজযুক্ত মনোনিবেশের উপর নির্ভর করতে হবে।
এই পদ্ধতির প্রধান বিপদটি হল যে পদ্ধতিগত প্রজন্মের সিস্টেমে সামান্যতম পরিবর্তনও একটি প্রজাপতির প্রভাব তৈরি করতে পারে যা পুরো বিশ্বকে পরিবর্তিত করে। এটি খেলোয়াড়দের অন্বেষণ করা বিশ্বকে ধ্বংস না করে গেমটি আপডেট করা খুব জটিল করে তোলে।
এই সমস্যাটি এড়াতে আমি যে প্রধান কৌশলটি ব্যবহার করছি তা হ'ল একাধিক পর্যায়ে পদ্ধতিগত প্রজন্মকে ডিজাইন করা, যার প্রত্যেকটির নিজস্ব বীজযুক্ত এলোমেলো নম্বর জেনারেটর রয়েছে। এর অর্থ হ'ল প্রতিটি উপ-সিস্টেম স্বয়ংসম্পূর্ণ এবং কোনও কিছু যদি ভেঙে যায় তবে এটি বিশ্বের সমস্ত কিছুকে প্রভাবিত করবে না। তবে এটি মনে হয় এটি গেমের বিচ্ছিন্ন অংশে থাকলেও এটি "ব্রেক্সিট" হওয়ার অনেক সম্ভাবনা রয়েছে।
এই সমস্যাটি মোকাবেলার আর একটি সম্ভাব্য উপায় হ'ল কোডের মধ্যে আপনার জেনারেটরের সম্পূর্ণ সংস্করণ বজায় রাখা এবং কোনও প্রদত্ত বিশ্ব উদাহরণের জন্য সঠিক জেনারেটরটি ব্যবহার করা। এটি যদিও আমার কাছে রক্ষণাবেক্ষণের দুঃস্বপ্নের মতো বলে মনে হয় এবং কেউ যদি বাস্তবে এটি করে তবে আমি আগ্রহী।
সুতরাং, আমার প্রশ্নটি তিতলি প্রভাবের এই সমস্যাটি মোকাবেলার জন্য বিশেষত সাধারণ পরামর্শ, কৌশল এবং ডিজাইন-প্যাটার্নগুলির অনুরোধ, বিশেষত রিলিজ-পরবর্তী গেম আপডেটের প্রসঙ্গে। (আশা করি এটি খুব বিস্তৃত প্রশ্ন নয়।)
আমি বর্তমানে ইউনিটি 3 ডি / সি # তে কাজ করছি, যদিও এটি একটি ভাষা অজ্ঞাত প্রশ্ন।
হালনাগাদ:
উত্তরের জন্য আপনাকে ধন্যবাদ।
এটি আরও বেশি সন্ধান করছে যেমন স্থির ডেটা সর্বোত্তম এবং নিরাপদ পদ্ধতির, এবং এটিও যে প্রচুর স্ট্যাটিক ডেটা সংরক্ষণ করা কোনও বিকল্প নয়, একটি উত্পন্ন বিশ্বে দীর্ঘ প্রচার চালানো জেনারেটরগুলির কঠোর সংস্করণ প্রয়োজন। আমার ক্ষেত্রে সীমাবদ্ধতার কারণ হ'ল মোবাইল ভিত্তিক ক্লাউড সেভ / সিঙ্কের প্রয়োজন। আমার সমাধান হতে পারে প্রয়োজনীয় জিনিসগুলি সম্পর্কে কম পরিমাণে কমপ্যাক্ট ডেটা সঞ্চয় করার উপায়গুলি খুঁজে পাওয়া।
আমি স্টর্মউইন্ডের "খাঁচা" সম্পর্কে ধারণাটি বিশেষভাবে জিনিসগুলির বিষয়ে চিন্তাভাবনা করার উপায় বলে মনে করি। একটি খাঁচা মূলত একটি রিসেড পয়েন্ট হয়, ছোট পরিবর্তনগুলির রান-বরাবর প্রভাবগুলি প্রতিরোধ করে, অর্থাত্ প্রজাপতিকে খাওয়ানো।