উত্তর:
স্ক্রিপ্টগুলি সাধারণত রান সময়ে সংকলিত হয় , যখন হোস্ট ভাষা সংকলনের সময় সংকলিত হয়। এর অর্থ হ'ল স্ক্রিপ্ট পরিবর্তন হলে আমাদের পুনরায় সংকলনের দরকার নেই। একটি সম্পূর্ণ গেমটি সংশোধন করতে কয়েক মিনিট থেকে কয়েক ঘন্টা সময় নিতে পারে, যা একটি বড় উত্পাদনশীলতার হিটকে বোঝায়।
সাধারণত, সমালোচনামূলক কোড বা ব্যাকএন্ড কোড স্ক্রিপ্ট করা হবে না। এই কোডটি দ্রুত চালানো উচিত এবং প্রায়শই মেমরি পরিচালনা অত্যন্ত গুরুত্বপূর্ণ।
গেমগুলিতে, গেম লজিক এবং কনফিগারেশন সাধারণত স্ক্রিপ্ট ফাইলগুলিতে থাকে। এই স্ক্রিপ্টগুলি সহজেই গেমপ্লেটি টুইট করতে নন-প্রোগ্রামাররা (ডিজাইনারের মতো) আপডেট করতে পারে । স্ক্রিপ্টের ভাষাগুলি সহজ এবং সেই উদ্দেশ্যে ক্ষমা করার পদ্ধতিতে কাজ করে।
প্রায়শই, স্ক্রিপ্টিং ভাষাটি বাস্তব সময়ে স্ক্রিপ্টিং করতেও ব্যবহৃত হয় । এটি কিছু গেমপ্লে উপাদানগুলি টুইট করার জন্য এমনকি ডিবাগিংয়ের জন্যও কার্যকর। অনেক গেম এটি (বেশিরভাগ অভ্যন্তরীণ) উদ্দেশ্যটির জন্য একটি কনসোল সরবরাহ করে।
এটি খুব ভাল সম্ভব যে আপনি কোনও স্ক্রিপ্টিং করে কোনও বিদ্যমান গেম ইঞ্জিন ব্যবহার করে একটি গেম তৈরি করেন। খেলা ইঞ্জিন স্তর এইভাবে সম্পূর্ণরূপে খেলা যুক্তিবিজ্ঞান স্তর থেকে decouple হয় । আধুনিক ইঞ্জিনগুলি সাধারণত এ জাতীয় সহজেই এফপিএস বা আরটিএস গেম তৈরি করতে ব্যবহৃত হতে পারে তবে কোনও জেনার পক্ষে এটি সম্ভব নয়। একটি এমএমও সম্ভবত অন্য ধরণের ইঞ্জিনের প্রয়োজন require
সুতরাং নীচের লাইন decoupling হয়। উপরে উল্লিখিত সুবিধাগুলি প্রায়শই কোনও স্ক্রিপ্টিং ভাষা তৈরি বা সংহত করার জন্য অতিরিক্ত কাজকে ওজন করে।
আপনি ভুল প্রশ্ন জিজ্ঞাসা করেছেন। আসল প্রশ্নটি, আমার মনে হয়, আমরা কেন সি, সি ++, জাভা ইত্যাদির মতো "নন-স্ক্রিপ্টিং" ভাষা রাখি? এবং উত্তর একটি কারণ: কর্মক্ষমতা। (এবং সম্ভবত জড়তা, তবে জড়তা সেখানে পারফরম্যান্সের কারণেই রয়েছে এবং যে কেউ ভাল সি / সি ++ / জাভা লিখতে পারে সে কমপক্ষে পাসেবল রুবি / পাইথন / লুয়া / জাভাস্ক্রিপ্ট লিখতে পারে))
আমরা "স্ক্রিপ্টিং" ভাষা ব্যবহার করি (যার অর্থ সত্যই, খুব উচ্চ স্তরের, আবর্জনা সংগ্রহ করা এবং সাধারণত কিছুটা আলগা টাইপিং এবং গতিশীল সংকলনের কোনও রূপ) কারণ কোডটি লেখার জন্য এগুলি সাধারণত কারও পক্ষে সহজতর ভাষা - প্রোগ্রামার অন্তর্ভুক্ত রয়েছে less বোকা স্টাফগুলি আপনাকে ম্যালোক করার পরে মুক্ত মনে রাখা বা আপনার কোডটি ব্যতিক্রম-নিরাপদ কিনা তা নিশ্চিত করা বা আপনার সমস্ত ডেস্ট্রাক্টরগুলিকে ভার্চুয়াল করার বিষয়টি মনে রাখা ing যদি আমাদের কম্পিউটারগুলি সীমাহীনভাবে দ্রুত হয় তবে আমরা সমস্ত কিছুর জন্য "স্ক্রিপ্টিং" ভাষা ব্যবহার করতাম।
খেলা যুক্তিবিজ্ঞান জন্য ভাষায় স্ক্রিপ্টিং সফ্টওয়্যার স্থাপত্য প্যাটার্ন একটি খুব ভাল উদাহরণ বিকল্প হার্ড এবং নরম স্তরসমূহ । এটি করার সুবিধাগুলি সম্পর্কে সেই সাইটে (এবং অন্যরাও আমি নিশ্চিত) একটি ভাল আলোচনা আছে।
স্ক্রিপ্ট পরিবর্তনগুলি মোতায়েন করা সহজ। উদাহরণস্বরূপ, আপনি একটি ডাটাবেসে স্ক্রিপ্টগুলি রাখতে পারেন যার অর্থ একটি সম্পূর্ণ বাইনারি পুনর্নির্মাণের পরিবর্তে এবং সম্ভাব্য পরিষেবা পুনরায় চালু করার পরিবর্তে আপনি কেবলমাত্র একটি একক এসকিউএল আপডেটের বিবৃতি জারি করেন, সম্ভবত স্ক্রিপ্টটি পুনরায় লোড করার জন্য আপনার চলমান পরিষেবার সংকেত অনুসরণ করবে by
এছাড়াও স্ক্রিপ্টের ভাষাগুলি প্রায়শই বুঝতে সহজ এবং সহজেই প্রোগ্রাম করা সহজ হয় তাই আপনার সংখ্যাগরিষ্ঠ কোডের জন্য (হার্ড মেমোরি ম্যানেজমেন্ট / পয়েন্টার এবং সিপিই-লেভেল অপ্টিমাইজেশানগুলির সাথে সম্পর্কিত) আপনার প্রয়োজন হয় না (যদি কোনও বৃহত আরপিজি হয়, এআই, বানান, আইটেম ইফেক্টগুলির জন্য স্ক্রিপ্টগুলি এবং বিশ্ব নিজেই ইঞ্জিন কোডের চেয়ে প্রায়শই বড়) স্ক্রিপ্টের ভাষাগুলি আবর্জনা সংগ্রহের কারণে 'লু'র ক্ষেত্রে' কীভাবে 'এবং' বিমূর্ততার উচ্চতর স্তরের 'চেয়ে' কী 'তার চেয়ে বেশি মনোযোগ নিবদ্ধ করে।
স্ক্রিপ্টগুলি কার্যকর হওয়ার একটি দৃশ্যটি হ'ল যখন আমরা আমাদের ইঞ্জিনটি প্লাগিন / অ্যাডোন দ্বারা এক্সটেনসিবল করতে চাই। এই এক্সটেনশনগুলি অনেক ক্ষেত্রে অ পেশাদারদের দ্বারা তৈরি করা হয় (উন্নত গেমার এবং উত্সাহীদের মতো)। এই কাজের জন্য স্ক্রিপ্টগুলি নিরাপদ এবং সহজ। স্ক্রিপ্টগুলি ব্যবহার করে, তাদের সংকলকগুলি ব্যবহার করার দরকার নেই, এবং পয়েন্টারগুলি সম্পর্কে সচেতন হওয়ার প্রয়োজন নেই ...
এর দুর্দান্ত উদাহরণ হ'ল ওয়ার্ক অব ওয়ারক্রাফ্ট। এটি সম্প্রদায় দ্বারা নির্মিত হাজার হাজার অ্যাডন রয়েছে। এই অ্যাডনগুলি LUA + XML ব্যবহার করে লেখা হয়।