মাইনক্রাফ্টের মতো গেমগুলি কীভাবে একটি বীজ সংখ্যা থেকে পুরো বিশ্ব তৈরি করে?


32

আমি বায়োমগুলি (মাইনক্রাফ্ট এবং অনুরূপ গেমগুলি যেমন করে) এর সাথে একটি সম্পূর্ণ অনন্য বিশ্ব উত্পাদন করতে চাই। আমি বুঝতে পারি না যে তারা কীভাবে একটি একক "বীজ" নম্বর থেকে এই পুরো পৃথিবী তৈরি করে। কেউ কি প্রযুক্তির প্রাথমিক ধারণা দিতে পারে?


13
নচ প্রকৃতপক্ষে ভূখণ্ড প্রজন্ম সম্পর্কে একটি ব্লগ পোস্ট লিখেছিল যা নতুন কোডের বায়োমস এবং ফ্র্যাক্টালস এবং এই জাতীয় অন্যান্য উইজার্ড্রি পাওয়ার পরে এটি এখন সম্পূর্ণ অপ্রচলিত। কোন অংশ 2 ছিল না।
একটি বিড়াল

উত্তর:


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

    // C example
    srand(1);
    for(i=0; i<3; i++)
        printf("%d\n", rand());
    srand(1);
    for(i=0; i<3; i++)
        printf("%d\n", rand());
    
    1270216262 
    1085377743 
    1481765933
    1270216262 
    1085377743 
    1481765933
    

    আপনি দেখতে পাচ্ছেন, যখনই আপনি একটি নির্দিষ্ট মান দিয়ে বীজ বপন করেন (আমি বীজ হিসাবে 1 ব্যবহার করেছি), ফলাফলটি এলোমেলো সংখ্যাগুলি একই।

  2. আপনি এলোমেলো সংখ্যার উপর ভিত্তি করে মাইনক্রাফ্ট-লাইফ ওয়ার্ল্ড কীভাবে তৈরি করবেন? খাঁজ এই সম্পর্কে একটি পোস্ট আছে। এছাড়াও, আপনি "মাইনক্রাফ্টের মতো ওয়ার্ল্ডস" এর অন্যান্য লোকের টিউটোরিয়ালগুলি পরীক্ষা করে দেখতে পারেন। আমি এটি উপভোগ করেছি, উদাহরণস্বরূপ: ওপেনজিএল 4-এ মাইনক্রাফ্টের মতো রেন্ডারিং । মূল ধারণাটি হ'ল পার্লিন শব্দ (বা সিম্পলেক্স শব্দ) use শব্দ শব্দগুলি সম্পর্কে এখানে একটি ভাল প্রশ্ন: পার্লিন নয়েজ বোঝা


1
আসলে, আপনি পার্লিন নয়েজটি ব্যবহার করতে সক্ষম হবেন না আমি ভয় করি মিনক্রাফ্টের ওভার-হ্যাঙিং ক্লিফস, গুহা ইত্যাদি রয়েছে এবং পিএন তাতে প্রবেশ করতে পারে না।
jcora

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

1
+1 কাইলোটান। এখানে নচের ব্লগের উদ্ধৃতিটি দেওয়া আছে: "বিশেষত, [2D পার্লিন উচ্চতা ম্যাপ] এর জন্য কোনও ওভারহ্যাং উত্পন্ন করার কোনও উপায় নেই So সুতরাং আমি সিস্টেমটি 3 ডি পার্লিন শব্দের ভিত্তিতে একটি অনুরূপ সিস্টেমে স্যুইচ করেছি।" স্থল উচ্চতা "স্যাম্পলিংয়ের পরিবর্তে, শব্দটির মানটিকে "ঘনত্ব" হিসাবে বিবেচনা করা হয়েছিল, যেখানে 0 এর চেয়ে কম কিছু বায়ু হতে পারে এবং 0 এর চেয়ে বড় বা সমান কিছু স্থল হবে ""
জিমি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.