পদ্ধতিগত প্রজন্মের সাথে কীভাবে শুরু হয়?


147

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

আমার প্রশ্নগুলি হ'ল:

  • পদ্ধতিগত প্রজন্মের কৌশলগুলি ব্যবহার করে এমন কোনও মাঝারি আকারের প্রকল্পগুলি সম্পর্কে আপনি কি জানেন?
  • পদ্ধতিগত প্রজন্মের জন্য কোন ভাষা / ভাষার শ্রেণি সেরা?
  • আপনি কি "গুরুতর" কোডের জন্য পদ্ধতিগত প্রজন্ম ব্যবহার করতে পারেন? (যেমন, খেলা নয়)

1
আপনি যদি এই নিবন্ধটি এক্স-টিম থেকে সহায়ক মনে করেন তবে আশ্চর্য? x-team.com/blog/…
অ্যাডাম জেরার্ড

উত্তর:


117

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

ফ্র্যাক্টালগুলি প্রক্রিয়াজাত জেনারেশনের সাথে নিবিড়ভাবে সম্পর্কিত।

টেরেজেন এবং স্পিডট্রি আপনাকে পদ্ধতিগত প্রজন্মের কিছু আশ্চর্যজনক সম্ভাবনা দেখাবে।

কার্যনির্বাহী প্রজন্ম এমন একটি কৌশল যা কোনও ভাষায় ব্যবহার করা যেতে পারে (এটি অবশ্যই সি এর মতো প্রক্রিয়াজাত ভাষাগুলির মধ্যেই সীমাবদ্ধ নয়, কারণ এটি জাভা, ও প্রোলোগের মতো লজিক ভাষাগুলিতে ব্যবহার করা যেতে পারে)। যে কোনও ভাষায় পুনরাবৃত্তি সম্পর্কে ভাল ধারণা আপনার কার্যপ্রণালী জেনারেশনকে শক্তিশালী করবে।

'সিরিয়াস' বা অ-গেম কোড হিসাবে, পদ্ধতিগত প্রজন্মের কৌশলগুলি ব্যবহার করা হয়েছে:

  • ট্র্যাফিক ব্যবস্থাপনার পরিকল্পনা করার জন্য শহরগুলির বৃদ্ধি অনুকরণ করুন
  • রক্তনালীগুলির বৃদ্ধি অনুকরণ
  • স্পিডট্রি চলচ্চিত্র এবং স্থাপত্য উপস্থাপনায় ব্যবহৃত হয়

এই পার্লিন নয়েজটি ফটোশপের "ক্লাউড" ফিল্টারটির মতো দেখতে খুব বেশি লাগে।
ডাবলআর্ট

প্রথম লিঙ্কটি নষ্ট হয়েছে
জিন কার্লো মাচাদো

কিছু ইলেক্ট্রো সংগীত তৈরি হওয়ার জন্য পদ্ধতিগত প্রজন্মকে ব্যবহার করে
পোয়দা

50

পদ্ধতিগত সামগ্রী তৈরি উইকি:

http://pcg.wikidot.com/

আপনি যা চান তা সেখানে না থাকলে এটি যুক্ত করুন;)


11
আমি এখানে পুরো উইকিটি অনুলিপি করতে পারি না! কোনও 'অত্যাবশ্যক অংশ' নেই।
মার্টিন

12

প্রসেসরাল কনটেন্ট জেনারেশন এখন সমস্ত জিপিইউ-র জন্য লিখিত, সুতরাং আপনাকে শেডের ভাষা জানা দরকার। তার মানে জিএলএসএল বা এইচএলএসএল। এগুলি যথাক্রমে ওপেনজিএল এবং ডাইরেক্টএক্সের সাথে বাঁধা ভাষা।

যদিও আমার ব্যক্তিগত পছন্দটি গতির কারণে Dx11 / HLSL এর পক্ষে, একটি সহজ শেখার বক্ররেখা এবং ফ্রাঙ্ক ডি লুনা , ওপেনজিএল আরও প্ল্যাটফর্মগুলিতে সমর্থিত।

আপনি যদি ওপেনগিএল / ডাইরেক্টএক্স গেম ইঞ্জিনটি সেটআপ করতে সময় নেয় (যথেষ্ট পরিমাণ) সময় ব্যয় না করে ডান শেডারগুলি লেখার জন্য ডানদিকে ঝাঁপিয়ে পড়তে চান তবে আপনার ওয়েবজিএলও পরীক্ষা করা উচিত।

প্রক্রিয়াজাতীয় বিষয়বস্তু শব্দ সঙ্গে শুরু হয়।

সুতরাং আপনাকে পার্লিন শব্দ (এবং এর উত্তরসূরী সিম্প্লেক্স গোলমাল ) সম্পর্কে শিখতে হবে ।

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

Shadertoy একটি পদ্ধতিগত প্রতিভা, দ্বারা তৈরি করা হয়েছে Inigo Quilez , ডেমো দৃশ্য যারা পিক্সারের এ কাজ করে একটি পণ্য। তিনি হয়েছে YouTube- এর কিছু ভিডিও ( বড় উদাহরণ ) লাইভ কোডিং সেশন এবং আমি এই সুপারিশ করতে পারে।


17
আপনার কী অর্থ "প্রসেসিয়াল কনটেন্ট জেনারেশন এখন সমস্ত জিপিইউ-র জন্য লেখা আছে"? আপনি কেবল ঘাসের ফলক জাতীয় জিনিস নিয়ে কথা বলছেন? আপনি গেমসের জন্য মানচিত্র বা শহরগুলির প্রজন্ম বোঝাতে চান না, উদাহরণস্বরূপ, আপনি কি?
দ্রোঞ্জ

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

1
এমন কেউ যিনি কীভাবে জটিল শেডগুলি শেডারগুলি লিখতে চান বা তাদের নকশায় জটিল নিদর্শনগুলি কীভাবে ব্যবহার করতে পারেন তা শিখতে চান। এবং এটি কেবল পৃষ্ঠতল স্ক্র্যাচিং।
আলট্রোম্যান দ্য টাকোম্যান

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

9

আপনি যদি কোনও জেনারেটর সিমুলেশন প্লেট টেকটোনিক্স, ক্ষয়, বৃষ্টি-ছায়া ইত্যাদির উদাহরণ চান তবে দেখুন: https://github.com/ftomassetti/lands

এর উপরে একটি সভ্যতা বিবর্তন সিমুলেটর রয়েছে:

https://github.com/ftomassetti/civs

আকর্ষণীয় সম্পদে পূর্ণ ব্লগ হ'ল:

dungeonleague.com/

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


আকর্ষণীয় উত্স।
সালাহএডডিন

8

আমি এ বিষয়ে বিশেষজ্ঞ নই, তবে আমি কয়েকটি উত্তর চেষ্টা করে অবদান রাখতে পারি:

  1. নেট হ্যাক এবং এটি ব্রেথেন ওপেন সোর্স এবং প্রক্রিয়াগত প্রজন্মের স্তরগুলির (মানচিত্র) উপর প্রচুর নির্ভর করে। এটি ডাউনলোডের লিঙ্ক । আপনি ভূদৃশ্য / জমিন / মেঘ প্রজন্ম আরও আগ্রহী, আমি আপনাকে বলতে চাই Gamasutra এবং GameDev যা তাদের বিষয়ের উপর বেশ কিছু নিবন্ধ আছে।

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

  3. এটি নির্ভর করে যদি আপনার এমন কোনও প্রকল্প রয়েছে যা এই জাতীয় প্রযুক্তি থেকে উপকৃত হতে পারে। আমি দেখেছি পদ্ধতিগত প্রজন্ম সেনাবাহিনীর সিমুলেটরগুলিতে ব্যবহৃত হয়েছে (যা একটি খেলা হিসাবে বিবেচনা করা যেতে পারে, যদিও তারা খুব খেলতে পারা যায় না :))।

এবং একটি ছোট নোট - আমার সংজ্ঞা যদি পদ্ধতিগত প্রজন্মের কিছু কিছু নিয়ম বা নিদর্শন এবং প্রচুর এলোমেলো থেকে প্রচুর পরিমাণে ডেটা তৈরি করে থাকে তবে আপনার ফলাফলগুলি পৃথক হতে পারে :)


8

বিষয়টি নিয়ে একটি দুর্দান্ত বই রয়েছে:

http://www.amazon.com/Texturing-Modeling-Third-Procedural-Approach/dp/1558608486

এটি অ-রিয়েল-টাইম ভিজ্যুয়াল এফেক্ট এবং অ্যানিমেশন প্রজন্মের পক্ষে পক্ষপাতদুষ্ট, তবে তত্ত্ব এবং ধারণাগুলি এই ক্ষেত্রগুলির বাইরে ব্যবহারযোগ্য, আমার ধারণা।

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

যদিও এটি একটি ব্যয়বহুল প্যাকেজ, এটির একটি বিনামূল্যে মূল্যায়ন লাইসেন্স রয়েছে, যা একটি খুব সুন্দর শিক্ষাগত এবং / বা ইঞ্জিনিয়ারিং সরঞ্জাম হিসাবে ব্যবহার করা যেতে পারে।


7

একটি কার্যনির্বাহী জটিল জটিল গ্রাফিক্স তৈরি করতে ডেমোসিসিনে কার্যনির্বাহী প্রজন্মের ভারী ব্যবহার করা হয়। উইল রাইট এমনকি বলেছিলেন যে স্পোর তৈরির সময় তিনি ডেমোসেসিন দ্বারা অনুপ্রাণিত হয়েছিলেন। এটি আপনার সেরা জায়গা হতে পারে।

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


3

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

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

ট্র্যাক আলগা না করার জন্য আপনার প্রচুর অপারেটর সেট আপ করা উচিত যা পুরো প্রক্রিয়াটির সামান্য অংশের জন্য কেবল দায়ী। এটি আপনার সিস্টেমকে ডিবাগিং, প্রসারিত এবং উন্নত করে তোলে আরও সহজ। পরবর্তী পদক্ষেপে আপনার সেই অপারেটরদের লিঙ্ক করা উচিত এবং পরামিতি পরিবর্তন করে ফলাফলগুলি পরীক্ষা করা উচিত।

আমি অনেকগুলি "সিটি জেনারেটর" দেখেছি যা মূলত এলোমেলো আকারের বাক্সগুলির সাথে কয়েকটি উইন্ডো টেক্সচার সহ থাকে: (


3

(10 বছরেরও বেশি পরে ...)

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

সাধারণভাবে কয়েকটি নিয়মের সাথে একধরনের ইন্টারঅ্যাকশন রয়েছে , এছাড়াও আপনি কিছু নিজস্ব র্যান্ডমনেস এবং যুক্তি যুক্ত করতে পারেন, এই সমস্ত কৌশলগুলিকে একত্রিত করতে পারেন ... কিছুটা বিশৃঙ্খলাযুক্ত তবে খুব বিশৃঙ্খলাযুক্ত না এমন কিছু আকর্ষণীয় ফলাফল আনতে পারে।

এখানে কয়েকটি উল্লেখযোগ্য কৌশল রয়েছে:

তাদের পদ্ধতিগত প্রজন্মের জন্য বিখ্যাত কয়েকটি গেম:

পদ্ধতিগত ল্যান্ডমাস জেনারেশন সম্পর্কে ভিডিও টিউটোরিয়াল

গেমসের জন্য প্রক্রিয়াগত বিষয়বস্তু উত্পন্নকরণের সম্মেলনে, এই বিষয়টিতে প্রচুর ভিডিও রয়েছে: সমস্ত কিছু ced

আনন্দ কর.

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