এটি নির্ভর করে আপনি কীভাবে আপনার মোড সিস্টেমটি ডিজাইন করতে চান। আমি তাদের দুটি অন্বেষণ করব।
SDK এর
সম্ভবত আপনার প্রয়োজন হবে যে আপনার মোড্ডাররা আপনার মতো একই ভাষা ব্যবহার করুন এবং প্রতিবিম্বের মাধ্যমে মোডগুলি লোড করুন (বা আপনার পছন্দ অনুসারে আপনার ভাষা অনুসারে)। এটি আপনাকে স্পষ্টতই সেই ভাষাগুলির মধ্যে সীমাবদ্ধ রাখবে যা দেরীতে বাঁধাই করতে পারে - এবং এমন অনেকগুলি ভাল রয়েছে যা এটি করতে পারে (এমনকি সি কিছু চালাক LoadLibrary
কৌশলের সাথে দেরীতে বাঁধাই করতে পারে )। এমনকি আপনি কিছু মেটা-মোডিংও করতে পারেন, যেখানে কোনও মোড অন্যান্য মোড (যেমন স্ক্রিপ্টেড মোডগুলি) হোস্ট করতে পারে।
এই পদ্ধতির সাথে প্রথম সমস্যাটি হ'ল অভ্যন্তরীণ অবস্থা লুকিয়ে। উদাহরণস্বরূপ সি # নেওয়া, একজন মডডার কেবলমাত্র ব্যক্তিগত সদস্যদের অ্যাক্সেসের জন্য প্রতিচ্ছবি ব্যবহার করতে পারেন, সি এটি এটিও করতে পারে (যদিও আরও প্রচেষ্টা প্রয়োজন)।
দ্বিতীয় সমস্যাটি হোস্টিংয়ের। লোকেরা সত্যই পছন্দ করে না যে তাদের সিস্টেমে কোনও স্যান্ডবক্স নেই foreign সবচেয়ে খারাপ পরিস্থিতি হিসাবে আপনি একটি মোড লিখতে পারেন যা একটি সিডবক্স সেট আপ করে; এটি কোনও আইএসপি-তে ইনস্টল করা থাকলে এটি তাদের খ্যাতির জন্য মারাত্মক ক্ষতি করতে পারে।
স্ক্রিপ্টিং
মোড্ডাররা মোড তৈরি করতে লুয়ার মতো একটি ভাষা ব্যবহার করবে। আপনার হয় এমন একটি ভাষা প্রয়োজন যা স্থানীয় কোড (লুয়ার সাথে ইন্টারফেসে) চালাতে পারে; অথবা আপনার নিজের পছন্দ অনুযায়ী আপনার নিজের স্ক্রিপ্টিং ভাষা লিখতে হবে।
এখানে প্রথম সমস্যাটি হ'ল বেশিরভাগ স্ক্রিপ্টিং ভাষার ব্যাখ্যা করা হয় যা রিয়েল-টাইম সিস্টেমগুলির জন্য গ্রহণযোগ্য নাও হতে পারে (যদিও, লুয়াজিআইটি দেখুন); যেমন গেমস।
হাস্যকরভাবে দ্বিতীয় সমস্যা এখনও এখানে বিদ্যমান; লুয়াকে উদাহরণ হিসাবে গ্রহণ করে আমি অত্যন্ত হতাশ হয়েছি যেটি মূল / ডিফল্ট লাইব্রেরিতে অন্তর্ভুক্ত রয়েছে 'শেলিং-আউট' ফাংশনগুলি - এটি স্যান্ডবক্সযুক্ত পরিবেশ হিসাবে সম্পূর্ণরূপে অকেজো করে তোলে (প্রচুর পরিশ্রম, ভাগ্য এবং রক্ষণাবেক্ষণ ছাড়াই), এটি কঠিন চিত্রিত করুন যে আমি এ সম্পর্কে কতটা ক্ষুদ্ধ, তবে আমি সত্যই আশা করি তারা যখন এই বিরোধী বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করেছিল তখন তারা কিছু শক্ত ককটেল পান করছিল । আপনি যদি নিজের ভাষায় রোল করেন তবে আপনি স্পষ্টতই এড়াতে পারবেন (দেখুন: অবাস্তব স্ক্রিপ্ট)।
অবশেষে স্ক্রিপ্টিং ইঞ্জিনের সাথে আলাপচারিতার ব্যয়টি নিষিদ্ধ হতে পারে - আবার লুয়াকে উদাহরণ হিসাবে গ্রহণ করা, সি # এর সাথে মিলিয়ে: সি # এর নেটিভ ফাংশনগুলি (পি / ইনভোকের মাধ্যমে) ব্যবহার করার সময় যথেষ্ট ওভারহেড থাকে এবং লুয়া বেশ 'চ্যাটি' এপিআই হয়। আপনি 'স্ক্রিপ্ট এসডিকে' ডিজাইন করার জন্য যদি আপনার প্রাথমিক ভাষা এবং আপনার স্ক্রিপ্টিং ভাষার মধ্যে প্রচুর চ্যাটিং প্রয়োজন হয় তবে তা লক্ষণীয় হয়ে উঠতে পারে (নোট করুন যে সিটিতে আসলেই এই সমস্যা নেই)। আবার আপনি নিজের স্ক্রিপ্টিং ভাষা (এবং সি # এর ক্ষেত্রে এটি এমএসআইএলকে সংকলন করার ক্ষেত্রে) লিখে এবং আপনার [ভার্চুয়াল] পরিবেশের অধীনে দ্রুততম পদ্ধতিতে এটি চালিয়ে আপনি এটিকে ডজ করতে পারেন।
স্ক্রিপ্টটি মূলত আপনার প্রাথমিক কোডটিতে সম্পূর্ণ আলাদা সিস্টেমে চলছে বলে আপনি অভ্যন্তরীণ অবস্থার সম্পূর্ণ অ্যাক্সেসকে পুরোপুরি নিয়ন্ত্রণ করতে পারেন (যদি না তারা পূর্বে উল্লিখিত শেল ফাংশনগুলির সাথে কিছু অভিনব জিনিস না করে)।
উপসংহার
আমি কিছুটা অফ-টপিক প্রকাশ করেছি, তবে, আপনি মূলত পাঠ্যের সেই প্রাচীরটি থেকে কী অর্জন করতে পারেন তা হ'ল আপনার যে কোনও ভাষায় একটি মোডেবল গেম তৈরি করতে সক্ষম হওয়া উচিত (আমি বলতে চাই যে আপনি এটি করতে পারেন ) - তবে কিছু ভাষায় আরও কাজ হতে পারে। আমি কি সুরক্ষা সম্পর্কে কিছুটা বেঁচে আছি? হ্যাঁ, এটি ব্যবহারকারী-কোডের ক্ষেত্রে খুব বেশি হওয়া উচিত।