একে অপরের পাশে অনুরূপ টাইলস উত্পন্ন করার সম্ভাবনা বাড়ানো


9

আমি একটি টাইল মানচিত্র সিস্টেমে কাজ করছি, যা ইনফারটি দেখতে দেখতে (সবুজ ঘাস, বাতাস সাদা, পাথর ধূসর এবং নীল জল):

টাইলস

এটি একটি সাধারণ এলোমেলো সংখ্যার জেনারেটর ব্যবহার করে যাতে টালি ঘাস হওয়ার 45% সম্ভাবনা থাকে, এর জল হওয়ার 30% সম্ভাবনা থাকে এবং পাথর হওয়ার 25% সম্ভাবনা থাকে।

যাইহোক আমি কি ঘাস / পাথর ব্লকগুলি একসাথে জমির জনসাধারণ গঠনের প্রবণতা বাড়াতে এবং জলের ব্লকগুলি মহাসাগরগুলি তৈরি করতে পারি (মাইনক্রাফ্টের মতো খেলায় এর মতো কী দেখা যায়)?

উত্তর:


17

আপনি একটি অ্যালগরিদম ব্যবহার করতে পারেন যা ব্লকগুলির কাছাকাছি যাচাই করে এবং সেখানে যা আছে তার উপর নির্ভর করে সম্ভাবনাটি পরিবর্তিত করে - তবে আমি মনে করি এটি মূলত ভুল পদ্ধতির।

আপনি যা দেখতে চান তা হ'ল ভাঙা শব্দের ধরণ - এই ক্ষেত্রে পার্লিন বা সিম্পলেক্স শব্দের জন্য। আপনি যদি শব্দ তৈরি করেন, আপনি -1 থেকে 1 পর্যন্ত মান পাবেন values

http://en.wikipedia.org/wiki/Perlin_noise

তারপরে আপনি কী জল তোলে তার থ্রোহোল্ড সেট করে আপনার জলের স্তরটি সামঞ্জস্য করতে পারেন। অন্যান্য ব্লকগুলির জন্য আপনি শিলা এবং ঘাসের মধ্যে স্যুইচ করার জন্য দ্বিতীয় সেট শব্দ চালাতে পারেন। (এই উপায়ে আপনার কাছে বড় বড় জলের প্যাচ থাকতে পারে তবে পাথরের ছোট ছোট গুঁড়ো থাকতে পারে)।

getTerrain(x,y) {
if(perlin_noise(x,y) > 0) {
    if(perlin_noise(x * scale,y * scale) > 0) {
        return rock
    } else {
        return dirt
    }
} else {
    return water
}

যেহেতু আমি মনে করি স্ক্যান এবং টস পদ্ধতি অত্যধিক জটিল এবং অত্যধিক দৃ rob়ভাবে স্কেলযোগ্য নয়, আমি অন্য একটি পদ্ধতিটি উপভোগ করেছি যা আমি উপভোগ করেছি:

আপনার মানচিত্রের গ্রিডটি রেখে মানচিত্রটিকে বড় স্কোয়ারে বিভক্ত করুন।

প্রতিটি মোড়ে একটি এলোমেলো সংখ্যা তৈরি করুন (0 থেকে 1 এর মধ্যে আপনার শতাংশের জন্য কাজ করবে)

প্রতিটি বর্গক্ষেত্রকে 4 এমনকি স্কোয়ারে কাটা দ্বারা মহকুমা - পুরানো রেখাগুলি অনুসরণ করুন এবং যেখানে আপনি মহকুমা রেখাগুলি খুঁজে পান সেখানে 2 সংলগ্ন পয়েন্টগুলির মধ্যে একটি এলোমেলো সংখ্যা তৈরি করুন, একইভাবে, ক্রসের কেন্দ্রের জন্য, একটি পয়েন্ট তৈরি করুন যা সর্বোচ্চের মধ্যে অবস্থিত এবং সর্বনিম্ন মান।

পাখলান পুনরাবৃত্তি. আপনি প্রথম পাস থেকে প্রাথমিক এলোমেলোতা পাবেন তবে পরের পাসগুলি কিছুটা অভিন্নতা দেবে পিয়েডো-র্যান্ডম সংখ্যার জন্য দুঃখিত:

0-------5  0---3---5 0-1-3-4-5 011233455
|       |  |   |   | | | | | | 012344555
|       |  |   |   | 0-2-4-6-5 002445665
|       |  |   |   | | | | | | 123445666
|       |  2---5---7 2-4-5-7-7 234455777
|       |  |   |   | | | | | | 233455688
|       |  |   |   | 2-3-5-5-9 223455589
|       |  |   |   | | | | | | 233455589
2-------9  2---4---9 2-4-4-5-9 234445579

এটি ত্রিভুজগুলির জন্য আরও ভাল কাজ করে, কারণ যখন আপনি উপ-বিভাজন করেন তখন আপনার কাছে ক্রস বারটি হারাতে পারে না।

অবশ্যই, পরম সর্বোত্তম ফলাফলটি এই পদ্ধতির সাথে একত্রিত হয়ে আসবে - স্তরকে স্তর করে দেবে, কিছু কৌশল আপনাকে দুর্দান্ত জমি-জনতা দেবে, অন্যরা আপনাকে ভয়ঙ্কর গুহা দেবে, অন্যরা পাহাড়ের জন্য কাজ করবে এবং আরও জল-সিস্টেমের জন্য কাজ করবে।


+1 যেহেতু আমি মনে করি যে শব্দে ঝাঁপিয়ে পড়লে সাধারণত এটি আসে .. তবে আমি ভাবছি যে এটি 'লাফ' কিছুটা বড় হতে পারে তবে প্রাথমিকভাবে 'স্ক্যান করে পার্সেন্ট বদলানো' আমাকে ভোটে সহজ করে দিয়েছে :)
জেমস

3

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

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


2

এটি করার একটি অপেক্ষাকৃত সহজ উপায় হ'ল এলোমেলো অবস্থানগুলিতে অনেকগুলি নিউক্লি তৈরি করা। এই পয়েন্টগুলির ভোরোনাই চিত্র আঁকুন । ফলাফলের প্রতিটি অঞ্চলে একটি উপাদান নির্ধারণ করুন।

এটি পরিবর্তে কুরুচিপূর্ণ এবং যান্ত্রিক দেখায় কিছুতে ফলাফল। সীমানা কিছুটা কাদা আপ করুন এবং আপনি শালীন আকারে থাকবেন।

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

একটি জাতির মধ্যে সম্পূর্ণ অন্তর্ভুক্ত সমস্ত ভেরিজাগুলিতে জাতির উপাদান থাকবে। দুই বা ততোধিক দেশগুলিতে আংশিকভাবে অন্তর্ভুক্ত ভিকারেজগুলি এলোমেলোভাবে তাদের সংযুক্তকারী দেশগুলির একটি উপাদান গ্রহণ করবে।

এই পোস্টটি একটি ছবি প্রাপ্য, কিন্তু আমি একটি সরবরাহ করতে খুব অলস।


2

বহুভুজীয় মানচিত্র জেনারেটর বিভিন্ন 'জোন' সহ মানচিত্র তৈরিতে ভাল পঠনযোগ্য যা আপনাকে আরও ভালভাবে তৈরি মানচিত্র দেয়। এটি ভোরোনাই চিত্রের উপর ভিত্তি করে তবে আমার ধারণা এটি এটির একটি ভাল শুরু হবে।


0

আপনি এই পদ্ধতিটি ব্যবহার করে এটি করতে পারেন:

  • সমস্ত টাইলস অনির্ধারিত তালিকায় রাখুন
  • অনির্ধারিত তালিকায় একটি টাইল রয়েছে
  • শুরু করা
  • সেই তালিকা থেকে একটি টাইল বেছে নিন
  • সেই টাইলের প্রতিবেশীদের পরীক্ষা করুন এবং তার প্রতিবেশীদের উপর নির্ভর করে কোনও প্রকার নির্বাচন করুন
  • অনির্দিষ্ট তালিকা থেকে সেই টাইলটি সরিয়ে দিন
  • শেষ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.