যেকোনও গেম ডেভেলপমেন্ট প্রজেক্ট শুরু করার সময় সবচেয়ে পঙ্গু করে দেয় এমন অনুভূতিগুলির মধ্যে একটি যা আপনি আপনার প্রাথমিক গেম ডিজাইন শেষ করার পরেই পেয়ে যান, সেটা গেম জ্যামের জন্য ন্যাপকিনে লেখা কয়েকটি ধারণা হতে পারে বা প্রথাগত 10-পৃষ্ঠার ডিজাইন। নথি
কারণ আপনি সিদ্ধান্ত নেওয়ার পরে যে আপনার গেমটি একটি ROGUELITE-RTS-MMORPG হতে চলেছে, আপনাকে আসলে জিনিসটি তৈরি করতে হবে, দেখুন?
এবং ধরা যাক আপনি সিদ্ধান্ত নিয়েছেন যে আপনি প্রথম যে জিনিসটি তৈরি করতে যাচ্ছেন সেটি হল এর আরটিএস অংশ। তাই আপনি ব্যবহারকারীর গল্প, কাজ বা কাজের যে কোনো ইউনিট আপনি নিজেকে সংগঠিত করতে ব্যবহার করেন তা লিখে রাখুন।
তারপর ধরা যাক যে তালিকার প্রথম আইটেমটি হল “Emplement Scrollable Map”।
আর উফ! আপনি কখনই একটি স্ক্রোলযোগ্য মানচিত্র প্রয়োগ করেননি। কিন্তু কোন বিরক্তি নেই, উদ্ধারের জন্য গুগল , আমি কি ঠিক?
কিন্তু যদি আপনি অনলাইনে যে সমাধানটি খুঁজে পান তা ঠিক আপনার যা প্রয়োজন তা না করে তাহলে কী হবে? অথবা আপনি যে সমাধানটি খুঁজে পান তা 15 বছর বয়সী? অথবা নীচে প্রচুর মন্তব্য রয়েছে যে এটি একটি সমাধান কতটা খারাপ কিন্তু একটি একক ছাড়া একটি আরও ভাল [^0] উল্লেখ করে?
সুতরাং, আপনি যা তৈরি করার চেষ্টা করছেন তার জন্য আপনি একটি কোড রেফারেন্স খুঁজে পাচ্ছেন না। একটি গেম ডেভেলপার কি করতে হবে?
উত্তর হল ক্যাওস গবলিন মোডে প্রবেশ করা।
আপনারা যারা গবলিনের সাথে অপরিচিত তাদের জন্য, তারা ফ্যান্টাসির বিভিন্ন কাজের মধ্যে একটি বৈশিষ্ট্যযুক্ত জাতি, সাধারণত আরও গুরুতর orc বা হবগোবলিনের ছোট কাজিন হিসাবে চিত্রিত হয়। কিছু অন্যান্য বৈশিষ্ট্যে, তাদের একটি খুব নির্দিষ্ট উপায়ে যান্ত্রিকভাবে দক্ষ হিসাবে চিত্রিত করা হয়েছে। এবং সেই পথটি অবিশ্বস্ত। এর মানে হল যে গবলিনের জিনিসগুলি কখনও কখনও কাজ করে, খুব বেশি নয় কারণ সেগুলি ভালভাবে ডিজাইন করা বা তৈরি করা হয়েছে, বরং নিছক চতুরতা এবং কঠোর মাথার থেকে।
এটি গেম ডেভেলপমেন্টের জন্য ক্যাওস গবলিন পদ্ধতির সারমর্ম। এখন, আমি নিশ্চিত যে আমি আপনাকে এখানে কিছুটা হারাতে শুরু করছি, তাই আমাকে ফিরে আসতে দিন এবং ক্যাওস গবলিনের সারমর্মটি সংক্ষিপ্ত করুন:
ব্যবহারকারীর অভিজ্ঞতা কী তা একমাত্র গুরুত্বপূর্ণ। এটি কীভাবে কাজ করে তা কারও ব্যবসা নয়।
এই বিন্দুটিকে আরও ব্যাখ্যা করার জন্য আমি আপনাকে ফলআউট 3 এর প্রেসিডেন্সিয়াল মেট্রো হেড সম্পর্কে বলি (আপনি সম্পূর্ণ গল্পটি এখানে পড়তে পারেন)। এর সারাংশ হল যে গেমের একটি দৃশ্যের সময় যেখানে খেলোয়াড় মনে করে যে তারা একটি মেট্রোর ভিতরে দাঁড়িয়ে আছে, প্লেয়ারের হেডগিয়ারটি আসলে একটি মেট্রো কারের মডেল দিয়ে প্রতিস্থাপিত হয়েছে এবং এটি খেলোয়াড়ের নিজস্ব মডেল যেটি একটি গাড়িতে চলছে পূর্বনির্ধারিত ট্র্যাক।
কিছু খেলোয়াড় এটি পড়ে মনে করতে পারে যে বিকাশকারীরা অলস ছিল। কিন্তু বিষয়টির সত্যতা হল যে ডেভেলপাররা সব সময় এই ধরনের কাজ করে থাকে।
এবং এটি ঠিক সেই ধরণের অনুশীলন যা ক্যাওস গবলিন মোডের নীতিগুলি গঠন করে, যা নিম্নরূপ।
ধরা যাক আপনার গেমের একটি অংশে, খেলোয়াড় একটি দুর্গ টাওয়ারের ভিতরে দাঁড়িয়ে আছে এবং বাইরে উড়ে আসা একটি ড্রাগনের দিকে তীর নিক্ষেপ করছে। বারবার ড্রাগনটি কাছে আসে এবং প্লেয়ারটিকে কামড়ানোর চেষ্টা করার জন্য জানালা দিয়ে মাথা ঠেলে দেয়।
এখন, যতদূর খেলোয়াড় উদ্বিগ্ন ড্রাগন আসলে সেখানে উড়ে যাচ্ছে. কিন্তু আমরা, গেম ডেভেলপার হিসাবে, এই বিভ্রম থেকে সাহায্য করার জন্য এবং পরিস্থিতিটি অনুকূল করার জন্য কিছু কৌশল নিযুক্ত করতে পারি।
কিছু জিনিস যা করা যেতে পারে তা নিম্নরূপ:
প্লেয়ার থেকে ড্রাগন কত দূরে তার উপর নির্ভর করে বিভিন্ন মডেল ব্যবহার করুন। প্লেয়ার শুধুমাত্র ড্রাগনের বিবরণ দেখতে পারে যখন এটি কাছাকাছি থাকে, তাহলে কেন ড্রাগনের 3D মডেলটিকে এমন কিছু দিয়ে প্রতিস্থাপন করবেন না যার বিস্তারিত কম, কিন্তু মেমরিতে কম জায়গাও দখল করবে?
প্লেয়ার যখন এটির দিকে তাকায় না তখন ড্রাগনটি বন্ধ করুন। প্লেয়ারটি কোথায় খুঁজছে তা ট্র্যাক করে, আমরা রেন্ডারিং সংরক্ষণ করতে বেছে বেছে 3D মডেল চালু এবং বন্ধ করতে পারি।
প্লেয়ারকে অসমাপ্ত কাজ দেখতে বাধা দিন। বলা যাক যে কারণেই হোক, টাওয়ারের বাইরের পরিবেশের জন্য শিল্পটি অসমাপ্ত। তাই প্লেয়ার যদি কখনও জানালার কিনারায় চলে যায় তবে তারা কিছুই দেখতে পাবে না। এটিতে সহায়তা করার জন্য, গেম ডিজাইনাররা সিদ্ধান্ত নিয়েছিলেন যে জানালার প্রান্তটি তাত্ক্ষণিক মৃত্যুর স্পট হয়ে উঠবে। সুতরাং যখন প্লেয়ারটি প্রান্তে দাঁড়ায়, তখন একটি ড্রাগনের গর্জনের 3-সেকেন্ডের শব্দ বাজবে এবং প্লেয়ারের পর্দা অন্ধকার হতে শুরু করবে। একবার 3-সেকেন্ডের সাউন্ড শেষ হয়ে গেলে, আমরা প্লেয়ারটিকে খাওয়া ড্রাগনের একটি দ্রুত অ্যানিমেশন বাজাই (সম্ভবত আমাদের ইতিমধ্যেই একটি পুনরায় ব্যবহার করছি)। যতদূর খেলোয়াড় উদ্বিগ্ন, প্রান্তটি এমন একটি জায়গা যেখানে ড্রাগন তাদের তুলে নিতে পারে; তাদের জানার দরকার নেই যে এটি তাদের অসমাপ্ত কাজ দেখতে বাধা দেওয়ার জন্য করা হয়েছিল।
সম্ভবত যখন ড্রাগন জানালা দিয়ে মাথা রাখে তখন আমরা সম্পূর্ণ ড্রাগন মডেলটিকে একটি ছোট কিন্তু আরও বিস্তারিত হেড মডেল দিয়ে প্রতিস্থাপন করি। এটি আমাদের প্লেয়ারকে একটি উন্নত অভিজ্ঞতা দেওয়ার সময় আমরা ব্যবহার করছি না এমন একটি মডেল থেকে মেমরি মুক্ত করার অনুমতি দেবে।
আপনি যদি গেম ইন্ডাস্ট্রিতে যেকোন দৈর্ঘ্যের জন্য থাকেন, আপনি সম্ভবত উপরেরটিকে মানক অনুশীলন হিসাবে চিনতে পারেন, কিন্তু এমন একটি সময় ছিল যখন এই কৌশলগুলিকে চতুর প্রতারণামূলক এবং বেশ উদ্ভাবনী হিসাবে বিবেচনা করা হত।
এটা এখন আপনার উপর নির্ভর করে যে আপনার খেলোয়াড়দেরকে তারা যা দেখছে তার থেকে অনেক বেশি কিছু আছে ভাবতে প্রতারণা করার নতুন উপায় নিয়ে আসা।
অনেক গেম ডেভেলপার আটকে যায় কারণ তারা এমন সমাধান নিয়ে আসার চেষ্টা করে যা ভবিষ্যতের সমস্ত সম্ভাব্য পরিস্থিতি কভার করে। এই মনোভাব সঠিক পরিস্থিতিতে মূল্যবান হতে পারে, কিন্তু আপনি যখন ক্যাওস গবলিন মোডে থাকেন, তখন উদ্দেশ্য হল যত দ্রুত সম্ভব কিছু কাজ করা।
এর একটি সংযোজন:
উপরের পয়েন্টের মতোই, অনেক ডেভেলপার যখন কোনো বৈশিষ্ট্য বাস্তবায়নের চেষ্টা করে তখন হিমায়িত হয়ে যায় কারণ তারা খুব তাড়াতাড়ি অপ্টিমাইজ করার চেষ্টা করে।
অপ্টিমাইজেশানটি ছেড়ে দেওয়া উচিত যতক্ষণ না প্রকল্পটিকে ডেভেলপারদের নিয়ন্ত্রণের বাইরের মেশিনগুলিতে চালানোর প্রয়োজন হয়[^1]।
এটি আরেকটি হোঁচট খাওয়া যা অনেক শিক্ষানবিস গেম ডেভেলপাররা আসে। তারা একটি বৈশিষ্ট্য বাস্তবায়ন বন্ধ করে দেবে যাতে তারা আরও একটি কোর্স, আরও একটি অনলাইন টিউটোরিয়াল নিতে পারে, আরও একটি ভিডিও দেখতে পারে এবং তারপরে তারা তাদের গেমটি বাস্তবায়নের জন্য প্রস্তুত হবে।
আমি এর জন্য বিশেষভাবে দোষী এবং জানি এটা কতটা ছলনাময়ী হতে পারে।
আপনাকে একটি আরও সুনির্দিষ্ট উদাহরণ দিতে, ধরা যাক যে আপনাকে স্ক্র্যাচ থেকে একটি পং গেম প্রোগ্রাম করার দায়িত্ব দেওয়া হয়েছে।
আপনি যা জানেন বা জানেন না তার উপর নির্ভর করে, এটির জন্য বিভিন্ন পন্থা অবলম্বন করা যেতে পারে:
আপনি যদি ইউনিটির পদার্থবিদ্যা সিস্টেমের সাথে পরিচিত হন তবে এটি একটি অপেক্ষাকৃত সহজ প্রচেষ্টা। আপনি শুধু কয়েকটা অনমনীয় বডি, এবং কোলাইডার ব্যবহার করতে পারেন, বল এবং বেগ প্রয়োগ করতে পারেন, বলের বাউন্সিনেসের জন্য একটি পদার্থবিজ্ঞানের উপাদান ব্যবহার করতে পারেন এবং এটাই। একটি barebones পং ক্লোন.
কিন্তু ধরা যাক যে আপনি ইউনিটির সংঘর্ষ পদ্ধতির সাথে পরিচিত নন, আপনি শুধুমাত্র ইউনিটির রূপান্তর উপাদানগুলি কীভাবে ব্যবহার করতে হয় তা জানেন, তাই আপনি যা পেতে পারেন তা হল একটি বস্তুর অবস্থান এবং আকার।
কিন্তু! এটি পং বাস্তবায়নের জন্য যথেষ্ট, আপনি একটি স্ক্রিপ্ট লিখতে পারেন যা বলের অবস্থান এবং আকার ট্র্যাক রাখে এবং এটিকে প্যাডেলের অবস্থান এবং আকারের সাথে তুলনা করে একটি সংঘর্ষ হয়েছে কিনা তা পরীক্ষা করে।
অথবা সম্ভবত আপনি ইউনিটিও জানেন না, আপনি যা জানেন তা হল C++ এবং কীভাবে কনসোলে প্রিন্ট করতে হয়।
কিন্তু এটাও যথেষ্ট! আপনি বল, প্যাডেল এবং খেলার ক্ষেত্রকে প্রতিনিধিত্ব করতে প্রতীকগুলির সারি এবং কলামগুলি মুদ্রণ করতে টার্মিনাল কৌশল ব্যবহার করতে পারেন। এটি, একটি গেম লুপের ধারণার সাথে, একটি রিফ্রেশিং UI প্রোগ্রাম করার জন্য যথেষ্ট যা ইনপুটে সাড়া দেয়৷
অথবা আপনি কম্পিউটার সায়েন্স ব্যাকগ্রাউন্ড থেকেও আসেননি বা C++ ক্লাস নেননি এবং শুধুমাত্র জাভাস্ক্রিপ্ট জানেন?
সমস্যা নেই! আপনি Phaser ব্যবহার করতে পারেন যা JS কে এর প্রধান ভাষা হিসাবে ব্যবহার করে এবং রেন্ডারিং এবং পদার্থবিদ্যা উভয় উপাদানের সাথে আসে।
এমনকি প্রোগ্রাম করতে পারেন না? একেবারে কোন সমস্যা নেই.
আপনি বুঝতে পেরেছেন যে আমি এই নিয়ে কোথায় যাচ্ছি, তাই না?
বেশিরভাগ গেম ডেভেলপারদের সাধারণত এক বা দুটি (বা 10,000) পরিত্যক্ত প্রকল্প কোথাও পড়ে থাকে। তাদের নষ্ট করার কোন মানে নেই। যদি সেখানে একটি পজ সিস্টেমের মতো কোড থাকে তবে এটি পুনরায় ব্যবহার করুন। একই জিনিস পুনরায় লেখার কোন মানে নেই. এমনকি যদি আপনি এটি কিভাবে লিখতে হয় তা ঠিক মনে রাখলেও অনুলিপি করুন; যদি এটি মানিয়ে নেওয়া কঠিন হয় তবে এটি পুনরায় পুনরাবৃত্তি করুন যাতে এটি পরের বার সহজ হবে।
সম্ভবত আপনার কাছে একটি ওয়ার্কশপ প্রজেক্ট [^2] আছে যেটিতে কোডের কয়েকটি বিট রয়েছে যা আপনি পুনরায় ব্যবহার করতে পারেন।
একটি সংলাপ সিস্টেম প্রয়োজন? একটি ওপেন সোর্স সনাক্ত করুন এবং এটি পুনরায় ব্যবহার করুন। এটা কি আপনার সমস্ত প্রয়োজনীয়তা পূরণ করে? না? এটা কি 50% এর বেশি পূরণ করে? হ্যাঁ? তারপর স্ক্র্যাচ থেকে একটি নতুন তৈরি করার পরিবর্তে এটি ব্যবহার করা মূল্যবান।
ইনভেন্টরি সিস্টেম? itch.io-তে একটি ওপেন সোর্স গেম খুঁজুন এবং তাদের সিস্টেম গ্রহণ করুন।
একটি প্রথম ব্যক্তি ক্যামেরা প্রয়োজন? এটি পরিচালনা করার জন্য একটি পূর্বনির্মাণ সম্পদ ব্যবহার করুন[^3]।
সেখানে অনেক উজ্জ্বল গেম ডেভেলপার আছে, নিঃসন্দেহে আপনার বা আমার চেয়ে বেশি দক্ষ।
আপনার একটি বিশেষ কারণ না থাকলে, সবকিছুই একটি প্রি-বিল্ট সিস্টেম ব্যবহার করার জন্য প্রার্থী হিসাবে বিবেচনা করা উচিত। যাইহোক, বুদ্ধিমান ব্যতিক্রমগুলি বিদ্যমান, যেমন: আপনার গেমের মেরুদণ্ড হিসাবে আপনি যে কোডটি কপি-পেস্ট করেছেন তা ব্যবহার করবেন না (অন্তত নিশ্চিত করুন যে আপনি এটি বুঝতে পেরেছেন, এটি পরিষ্কার করুন এবং মন্তব্য করুন), এবং একটি ব্যবহার এড়িয়ে চলুন মডিউল যা এক দশকের পুরনো, এর লেখক সম্ভবত গ্রীষ্মমন্ডলীয় কোথাও লুঙ্গে, এলভিস, টুপাক এবং মেরিলিন মনরোর সাথে পাপারাজ্জি-মুক্ত স্বর্গে মাই তাইসকে চুমুক দিচ্ছেন।
আপনি যদি একটি বৈশিষ্ট্য বাস্তবায়নের বিষয়ে অনিশ্চিত হন, তাহলে এমন একটি গেম খুঁজুন যা আপনি যা চান তার অনুরূপ কিছু করেছে এবং এটি অনুকরণ করুন।
"কপি" বলতে আমি আর্ট স্টাইল, গল্প বা চরিত্রের পরিবর্তে কন্ট্রোল হ্যান্ডলিং, ক্যামেরা ভিউ এবং মেকানিক্সের মতো ডিজাইনের দিকগুলিকে বোঝাচ্ছি।
উদাহরণস্বরূপ, আমাদের এখন ভুলে যাওয়া অনুমানমূলক ROGUELIKE-RTS-MMORPG-এ স্ক্রোলটি কত দ্রুত হওয়া উচিত?
অনুমান করার পরিবর্তে, আপনি দেখতে পাচ্ছেন কিভাবে অন্য আরটিএস এটি পরিচালনা করেছে। ধরুন আপনি Age Of Empires II (একটি ঐতিহাসিকভাবে উল্লেখযোগ্য RTS) পর্যবেক্ষণ করেছেন এবং আবিষ্কার করেছেন যে এটি ব্যবহারকারীদের তাদের কার্সার চলাচলের গতি নিয়ন্ত্রণ করতে দেয়। এমনকি আপনি AoEII-এর সাথে আপনার গেমটি পাশাপাশি রাখতে পারেন এবং আপনার কার্সারকে সামঞ্জস্য না করা পর্যন্ত এটি সমতুল্য মনে করতে পারেন। আপনি বিস্মিত হবেন যে কতজন বিকাশকারী তাদের লক্ষ্য অর্জনের জন্য এই জাতীয় সহজ, কম প্রযুক্তির সমাধানগুলির উপর নির্ভর করে।
সুতরাং, আপনি আপনার ক্যাওস গবলিন অ্যান্টিক্স শেষ করার পরে আপনার কী করা উচিত? ভাল, একটি শ্বাস নিন, নিজেকে একটি কাপ তৈরি করুন এবং পরে আপনার কোডে ফিরে যান।
আপনার কোডকে বিশ্রামের অনুমতি দেওয়ার পরে (আবহাওয়া খুব শুষ্ক হলে একটি স্যাঁতসেঁতে তোয়ালের নীচে), আপনার এটিকে কিছুটা স্প্রুস করে শেয়ার করা উচিত। হ্যাঁ! এটি শেয়ার করুন, আদর্শভাবে একজন সিনিয়র ডেভেলপার, একজন সহকর্মী, একজন সহকর্মী, অথবা, সবচেয়ে খারাপ ক্ষেত্রে, একটি অনলাইন সম্প্রদায়ের সাথে[^4]।
কেন আপনি এটা শেয়ার করছেন? কারণ ক্যাওস গবলিন হওয়া মানে টেকসই বা সর্বোত্তম কিছু তৈরি করা নয়; এটি এমন কিছু নির্মাণ সম্পর্কে যা কাজ করে। এটিকে নিখুঁতভাবে কাজ করতে বা সুন্দর দেখতে হবে না, এটি কেবল কাজ করতে হবে। এই ধরনের উন্নয়ন ফলাফল উত্পাদন করে, কিন্তু ফলাফল খুব কমই অবিলম্বে উত্পাদনের জন্য প্রস্তুত হয়। সুতরাং, প্রতিক্রিয়া প্রদানের জন্য কারো সাথে পরামর্শ করা সমালোচনামূলকভাবে গুরুত্বপূর্ণ।
আপনার প্রকল্পের পর্যায়ে নির্ভর করে, আপনার কাছে এই ব্যক্তির মন্তব্য অবিলম্বে বাস্তবায়ন করার সময় নাও থাকতে পারে। যদি তা হয়, তাহলে আপনাকে অন্তত কোড[^5]-এ সেই মন্তব্যগুলি নথিভুক্ত করা উচিত।
এবং এটাই! আপনার কাছে এখন সমস্যা সমাধানের জন্য বিশ্বব্যাপী পেশাদার গেম ডেভেলপারদের দ্বারা ব্যবহৃত #1 কৌশল রয়েছে।
আমি আপনাকে দ্বিতীয় কাপের জন্য পরামর্শ দিচ্ছি, তাই না?
[^0] - এটি একটি আশ্চর্যজনকভাবে সাধারণ ঘটনা এবং এটি "দ্য ডেনভার প্যারাবল" নামে পরিচিত, আরও তথ্যের জন্য, নিম্নলিখিত পণ্ডিত নিবন্ধটি পড়ুন।
[^1] - এটি কিছুটা সাধারণীকরণ, এবং বেশিরভাগ সাধারণীকরণের মতো, এটি আপনার প্রকল্পের প্রয়োজনীয়তাগুলির পুঙ্খানুপুঙ্খ বিশ্লেষণের মতো সহায়ক নাও হতে পারে। যাইহোক, এটি সঠিকভাবে প্রয়োজন না হওয়া পর্যন্ত অপ্টিমাইজেশান স্থগিত করা একটি ভাল নিয়ম। আজকাল, ভিডিও গেমগুলি অপ্টিমাইজ করা আগের তুলনায় যথেষ্ট কম দুঃসাধ্য। ইউনিটির মতো কিছু গেম ইঞ্জিন কোম্পানি, এমনকি আপনাকে প্রশংসাসূচক পরামর্শের সাথে সহায়তা করার প্রস্তাব দিতে পারে। সর্বোপরি, আপনার গেমটি সফলভাবে লঞ্চ করা তাদের জন্য সর্বোত্তম স্বার্থে।
[^2] - ওয়ার্কশপ হল একটি কাট বা অনুশীলন যা আমি একতা সম্পর্কে আমার বোধগম্যতা বাড়াতে ব্যবহার করি। আপনি এখানে এটি এবং অন্যান্য কৌশল সম্পর্কে আরও পড়তে পারেন।
[^3] - আপনি এই নিবন্ধে অন্যান্য দরকারী টুলের পাশাপাশি একটি সত্যিই ভাল FPS কন্ট্রোলার প্যাকেজ খুঁজে পেতে পারেন
[^4] - এটি একটি সতর্কতা বহন করে যে আপনি অনলাইনে প্রাপ্ত মন্তব্যগুলির প্রায় 95% অর্থহীন, অসম্পূর্ণ, পুরানো, অথবা লেখকের গভীর ব্যক্তিগত বিশ্বাসকে প্রতিফলিত করে, সেগুলি যাই হোক না কেন। অতএব, সর্বদা একটি ডিগ্রী সংশয় সঙ্গে এই ধরনের প্রতিক্রিয়া যোগাযোগ. দরকারী মন্তব্য খোঁজার চেষ্টা করুন, অবহেলা করুন বা বাকিগুলি বাদ দিন এবং এমন কাউকে খুঁজে বের করার জন্য একটি সত্যিকারের প্রচেষ্টা করুন যার সাথে আপনি আপনার কোড ভাগ করতে পারেন৷
[^5] - বিভিন্ন দল তাদের কোড ডকুমেন্টেশন কোথায় বজায় রাখে সে বিষয়ে বিভিন্ন নিয়ম মেনে চলে এবং আপনার তা মেনে চলা উচিত। যাইহোক, সাধারণত, আমি কোডের ডকুমেন্টেশনের জন্য কোডের পাশেই থাকার জন্য সমর্থন করব। যদি এটি সম্ভব না হয়, আপনার নির্বাচিত কোড সংস্করণ সিস্টেমে একটি গিট সাবমডিউল বা এর সমতুল্য ব্যবহার করার কথা বিবেচনা করুন। যদি ডকুমেন্টেশন প্রধান সংগ্রহস্থলে না হতে পারে তবে এটি অন্তত গিট সাবমডিউলে থাকা উচিত।
এছাড়াও এখানে প্রকাশিত.