আমি কীভাবে এলোমেলো মানচিত্রগুলি তৈরি করতে পারি যা এম্পায়ার্স -2 এর এলোমেলো মানচিত্রের মতো মনে হয়?


18

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

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

AoE2 এলোমেলো মানচিত্রের মতো মনে হয় এমন র্যান্ডম মানচিত্র তৈরি করতে আমি কোন অ্যালগরিদম এবং হিউরিস্টিক ব্যবহার করতে পারি?

আরও নির্দিষ্ট হতে সম্পাদনা করুন:

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

আমি বেশ কয়েকটি এওই 2 র্যান্ডম মানচিত্র যুক্ত করেছি যা তাদের ম্যাপিং ইঞ্জিন সম্পর্কে আমার কী পছন্দ তা হাইলাইট করে, যা আমার নিজের প্রচেষ্টা পুনরুত্পাদন করতে ব্যর্থ হচ্ছে। সমস্ত স্ক্রিনশটগুলি এলোমেলো মানচিত্রের প্রকার, "কাস্টম" -> "অজানা" থেকে নেওয়া হয়েছে। আমি আর্কিপেলাগোসের মতো নির্দিষ্ট ভৌগলিক ব্যবহারের জন্য গেমটি নির্দেশ করিনি।

নীচে আমার নিজস্ব মানচিত্র ইঞ্জিনের চিত্রগুলি রয়েছে। প্রতিটি পিক্সেল একটি AoE2 মানচিত্র টাইল অনুরূপ।

আমার প্রকল্পের জন্য একটি জটিলতা হ'ল আমি চাই মানচিত্রটি AoE2 মানচিত্রের চেয়ে অনেক বেশি, বহুগুণ বড় হোক। সুতরাং, আমি যে কোনও ইঞ্জিন ব্যবহার করি তা অবশ্যই প্রতিটি মানচিত্রে বায়োমগুলির সম্পূর্ণ পরিসীমা তৈরি করতে সক্ষম হতে হবে, এবং মানচিত্র প্রতি বায়োমগুলির একটি সংকীর্ণ সেট নয়, যেমন এওই 2 ব্যবহার করে।

দ্বিতীয় সাম্রাজ্যের বয়স maps

অভ্যন্তরীণ হ্রদ

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

সংযুক্ত দ্বীপপুঞ্জ

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

দ্বীপপুঞ্জ

আমি পছন্দ করি যে এই মানচিত্রটি জলের প্রচুর ব্যবহার করে তবে অনেক অভ্যন্তরীণ হ্রদ অন্তর্ভুক্ত করে না । এটি প্রথম চিত্রের সাথে বৈসাদৃশ্য করুন। AoE2 একই বিল্ডিং ব্লকগুলি ব্যবহার করে সম্পূর্ণ ভিন্ন ভৌগলিক তৈরি করার উপায়টি আমার পছন্দ হয়। পার্লিন শব্দটি ব্যবহার করার আমার প্রচেষ্টা এখানে ব্যর্থ হয়েছে - আমি হয় প্রচুর বিস্তীর্ণ মহাসাগরগুলি পাই যা ভূমির ভরকে বামন করে, অথবা 10,000 টি হ্রদের ভূমি। দ্বীপপুঞ্জ এবং সংযুক্ত মহাদেশগুলি (উত্তর / দক্ষিণ আমেরিকা মনে করুন) পাওয়া আমার পক্ষেও কঠিন ছিল ।

শুকনো, লীলা শুকনো, মরুভূমি

এই চিত্রটির উপরের চিত্রের সাথে বৈকল্পিক করুন। তারা দেখায় যে কোনও মানচিত্রের জলবায়ু পানির স্তরের উপর নির্ভর করে না। প্রথম চিত্রটিতে এমন একটি মানচিত্র রয়েছে যা প্রায় জল বিহীন, তবুও বন এবং ঘাস রয়েছে। দ্বিতীয় চিত্রটিতে মাঝারি পরিমাণে জল রয়েছে, তবুও মরুভূমি। আমি এটি সম্ভব বলে মনে করি (আপনার বিশ্বে নিউ মেক্সিকো বা সাহারা এবং কোস্টারিকা উভয়ই থাকার কথা ভাবেন)।

আমার নিজস্ব মানচিত্র

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

আমি দুটি পার্লিন মানচিত্র নিয়েছি, প্রতিটি থেকে মানকে একটি সাধারণের মাধ্যমে সংখ্যায়িত করে if perlin_val < x { i=some_int } else if perlin_val < y..., তারপরে (উচ্চতা, আর্দ্রতা) পূর্ণসংখ্যার জোড়কে টেরিটের ধরণের (যেমন, [1,0] -> গ্রীষ্মমন্ডলীয় মরুভূমিতে ম্যাপ করেছিলাম, [1,1 ] -> তৃণভূমি)। মহাসাগরগুলি এই সিস্টেমে অন্তর্ভুক্ত ছিল - উচ্চতা = 0 সংজ্ঞায়িত সমুদ্র।

g1_success

এখানে ভাল পার্থক্য রয়েছে এবং বিভিন্ন দিক থেকে এটি বাস্তব বিশ্বের মতো অনুভূত হয় তবে কয়েকটি সমস্যা রয়েছে:

  • প্রথমত, সমুদ্রের গভীরতায় কোনও প্যাটার্ন নেই। আপনি উপকূলের কাছাকাছি অগভীর জল এবং আরও গভীর জলের প্রত্যাশা করতেন, কোন ছড়া বা কারণ নেই তা কোথায় where

  • দ্বিতীয়ত, সমস্ত জল সমুদ্রগুলিতে কেন্দ্রীভূত হয়; কোনও হ্রদ বা নদী নেই, কারণ পার্লিনের শব্দটি হঠাত্ কোনও মহাদেশের মাঝখানে নিম্ন মানের কাছে ডুব দেয় না।

  • প্রতিটি বায়োমের পরিমাণের মধ্যে ভারসাম্য তৈরি করা খুব, খুব কঠিন। আমি এটিকে দায়ী করি:

    • পার্লিন গোলমাল একটি সাধারণ বিতরণ অনুসরণ করে, সুতরাং প্রতিটি মাত্রার ম্যাপিংয়ের সম্ভাব্যতা কীভাবে সমন্বয় করা যায় তা অনুমান করা কঠিন

    • একাধিক মাত্রার ভারসাম্য বজায় রাখার চেষ্টা করা শক্ত - সম্ভবত আমি আরও (2,3) চাই তাই আমি (এন, 3) পাওয়ার অসুবিধাগুলি বাড়িয়ে তুলি। ঠিক আছে, এখন আমার কাছে খুব বেশি (3,3) আছে এবং সমস্ত কিছুই ভুল দেখাচ্ছে।

    • মসৃণ ডেটা রাখার জন্য আমি যখন শব্দটি ঘনিষ্ঠভাবে জুম করেছিলাম তখন আমি পার্লিন মানগুলির খুব সম্পূর্ণ নমুনা পাচ্ছিলাম না। সুতরাং আমি আমার সামনে মানচিত্রের জন্য আমার বিতরণগুলি সাম্প্রতিক করব, একটি নতুন এলোমেলো মানচিত্র পুনরায় লোড করব এবং খুব আলাদা ফলাফল পাব।

এক্স-পৃথক জল

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

এক-মাত্রিক ব্যর্থতা

উপরের সমস্যাগুলি দেখে, আমি একটি সহজ অ্যালগরিদম চেষ্টা করেছি যা কেবল পার্লিন শব্দকে এক মাত্রায় ম্যাপ করে। আমার কাছে এখন 0 = গভীর মহাসাগর -> 1 = অগভীর সমুদ্র -> 2 = সৈকত ... -> এন = তুষারপাত থেকে প্রসারিত অঞ্চলগুলির ধরণের একটি অ্যারে রয়েছে। যদিও এই দ্বীপগুলি এবং মহাদেশগুলি ফলন করে এবং প্রতিটি ভূখণ্ডের অনুপাতে ভারসাম্য বজায় রাখা আরও সহজ করে তোলে, ভূখণ্ডের প্রকারগুলি খুব বেশি ক্লাস্টারযুক্ত। প্রতিটি স্থলভাগ একটি উত্থানের মানচিত্রের মতো দেখায়, সাধারণত ভূখণ্ডের প্রকারগুলি তার পৃষ্ঠতল জুড়ে ছড়িয়ে ছিটিয়ে থাকে। প্রতিটি স্থলভাগের প্রায় একই বৈশিষ্ট্য থাকে, সর্বদা একই ক্রমে এবং সর্বদা একই রিং-জাতীয় আকারে।


আমি নিশ্চিত নই যে আসল বিকাশকারী দলের কেউই আপনার প্রশ্নের জবাব সত্যিই দিতে পারে, তবে আমি পরামর্শ দিচ্ছি যে বীজটি আপনি প্রত্যাশার চেয়ে অনেক কম। বীজ প্রায় অবশ্যই বেস মানচিত্রের প্রকারে বিভিন্ন মানচিত্র উত্পন্ন করে এবং এগুলিকে যে কোনও সংমিশ্রণে অন্তর্ভুক্ত করে এটি সম্ভবত এটি 10,000,000 এ পৌঁছানোর অনুমতি দেয়।
মাগাস

এই প্রশ্নটি অফ-টপিক হিসাবে উপস্থিত বলে মনে হচ্ছে কারণ এটি একটি গেম তৈরির পরিবর্তে একটি নির্দিষ্ট ইতিমধ্যে বিদ্যমান গেম সম্পর্কে বাস্তবায়ন বিশদ চেয়েছে।
ট্রেভর পাওয়েল

@ ট্রেভরপওয়েল এই সাইটের বিষয়ে টপিক প্রশ্নগুলির জন্য গাইডলাইনগুলি পর্যালোচনা করার পরে, আমি প্রশ্নটি পুনরায় লিখেছি।
spiffytech

আপনি আমার মন্তব্যের প্রায় দশ সেকেন্ড পরে এই সম্পাদনাটি পোস্ট করেছিলেন। এখন যে পরিষেবা! ;)
ট্রেভর পাওয়েল

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

উত্তর:


9

অমিত প্যাটেলের চমৎকার নিবন্ধটি দেখুন যা আমার মনে হয় ভূখণ্ডের পদ্ধতিগত প্রজন্মের জন্য এক প্রকারের পঞ্চম সম্পদ ...

http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/

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

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


2
অমিতের গাইড ভূখণ্ড তৈরি করে যা যুগের সাম্রাজ্যের জন্যও বাস্তবসম্মত। :)
শেঠ ব্যাটিন

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

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

5

আমি বয়স 2 এম্পায়ার্সের জন্য এলোমেলো মানচিত্রের স্ক্রিপ্ট তৈরি করি । আমার অতি সাম্প্রতিক একটিটি এইচডি সংস্করণের জন্য।

আপনি যদি 2 বছর বয়সী এম্পায়ার্সের জন্য কীভাবে মানচিত্র তৈরি করবেন তা বুঝতে সন্ধান করছেন তবে আরএমএসের জন্য এই দুর্দান্ত গাইড (র্যান্ডম ম্যাপ স্ক্রিপ্টিং) রয়েছে

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

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