কেন আমরা উন্নয়নে স্ক্রিপ্ট ব্যবহার করি?


67

আমার বর্তমান প্রকল্পে, লুয়া স্ক্রিপ্টগুলি সার্ভারের পাশে সি ++ ফাংশন দ্বারা ডাকা হয়। এর পরে, স্ক্রিপ্টগুলি আবার সেই সমাধানে সি ++ ফাংশনগুলি কল করে। আমাদের কেন এই জাতীয় কাজ করা উচিত এবং সরাসরি সি ++ ফাংশনটি কল করা উচিত নয়? কোন পরিস্থিতিতে স্ক্রিপ্টগুলির প্রয়োজন?

উত্তর:


73

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

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

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

এটি খুব ভাল সম্ভব যে আপনি কোনও স্ক্রিপ্টিং করে কোনও বিদ্যমান গেম ইঞ্জিন ব্যবহার করে একটি গেম তৈরি করেন। খেলা ইঞ্জিন স্তর এইভাবে সম্পূর্ণরূপে খেলা যুক্তিবিজ্ঞান স্তর থেকে decouple হয় । আধুনিক ইঞ্জিনগুলি সাধারণত এ জাতীয় সহজেই এফপিএস বা আরটিএস গেম তৈরি করতে ব্যবহৃত হতে পারে তবে কোনও জেনার পক্ষে এটি সম্ভব নয়। একটি এমএমও সম্ভবত অন্য ধরণের ইঞ্জিনের প্রয়োজন require

সুতরাং নীচের লাইন decoupling হয়। উপরে উল্লিখিত সুবিধাগুলি প্রায়শই কোনও স্ক্রিপ্টিং ভাষা তৈরি বা সংহত করার জন্য অতিরিক্ত কাজকে ওজন করে।


7
+1 বলার জন্য যে স্ক্রিপ্টগুলি অ-প্রোগ্রামার দ্বারা আপডেট করা সাধারণত সহজ হয়। ডিজাইনাররা সবসময় প্রোগ্রামার হয় না এবং তাদের হতে হবে না।
ওক

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

5
জো - এটি যুক্তিটিকে অকার্যকর করে না, এর অর্থ হ'ল আপনার "ডিজাইনের স্টাফ" থেকে "প্রোগ্রামিং স্টাফগুলি" কোথায় ডিকুয়াল করবেন এবং আপনার ডিজাইনারদের প্রযুক্তিগত দক্ষতার ভিত্তিতে বিভাজক রেখাটি আলাদা হবে (বা অভাব রয়েছে) উহার)।
ইয়ান শ্রায়বার

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

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

38

আপনি ভুল প্রশ্ন জিজ্ঞাসা করেছেন। আসল প্রশ্নটি, আমার মনে হয়, আমরা কেন সি, সি ++, জাভা ইত্যাদির মতো "নন-স্ক্রিপ্টিং" ভাষা রাখি? এবং উত্তর একটি কারণ: কর্মক্ষমতা। (এবং সম্ভবত জড়তা, তবে জড়তা সেখানে পারফরম্যান্সের কারণেই রয়েছে এবং যে কেউ ভাল সি / সি ++ / জাভা লিখতে পারে সে কমপক্ষে পাসেবল রুবি / পাইথন / লুয়া / জাভাস্ক্রিপ্ট লিখতে পারে))

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


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

10

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


8
  1. প্রতিটি নতুন লুয়া ক্লাস দুটি লাইন। প্রতিটি নতুন সি ++ শ্রেণি ব্যথা।
  2. যখন আপনি চান তার চারপাশের মানগুলি বদলের ক্ষেত্রে কোনও ধরণের ঝকঝকে।
  3. আবর্জনা সংগ্রহ.
  4. স্ক্রিপ্ট কোডটি ভার্চুয়াল মেশিনগুলিতে খুব ভালভাবে বিচ্ছিন্ন হয়ে গেছে those সমস্ত কদর্য ঘুরে বেড়ানো সেগফল্ট এবং অ্যারে ওভারফ্লোগুলি থেকে দূরে।

5

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

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


4

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

এর দুর্দান্ত উদাহরণ হ'ল ওয়ার্ক অব ওয়ারক্রাফ্ট। এটি সম্প্রদায় দ্বারা নির্মিত হাজার হাজার অ্যাডন রয়েছে। এই অ্যাডনগুলি LUA + XML ব্যবহার করে লেখা হয়।

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