আমি বর্তমানে কেবলমাত্র সুবিধাটিই ভাবতে পারি তা হ'ল আপনি পুনরায় সংশোধন না করে লুয়ার মাধ্যমে কিছু কোডিং আপডেট করতে পারবেন।
এর ইউটিলিটিটি এত সহজে ছাড় করবেন না। আপনি কখনই বুঝতে পারবেন না যে আপনি পুনর্নির্মাণের পদক্ষেপটি সরিয়ে না নেওয়া পর্যন্ত আপনি কতটা উত্পাদনশীল হবেন।
"প্রবাহিত" যখন এটি কাজ আসে মোটামুটি ভালভাবে বোঝা মানসিক ধারণা। প্রবাহটি হ'ল আপনি যখন কোনও ক্রিয়াকলাপের দিকে মনোনিবেশ করেন, যখন আপনি প্রায় কোনও চিন্তাভাবনা না করেই বিশ্লেষণ এবং সমস্যার সমাধান করেন তখন আপনার অনুভূতিটি পাওয়া যায় আপনি যখন "প্রবাহিত" হন তখন আপনি আপনার সবচেয়ে উত্পাদনশীল হন।
সংকলন বার যে সমস্ত স্ক্রু। কোনও কিছু পরীক্ষার মধ্যে যদি আপনার কাছে 10-সেকেন্ডের সংকলনও থাকে তবে প্রবাহে থাকা শক্ত hard
আপনি যখন গেমপ্লে বিকাশ করছেন, আপনার কাছে যা থাকে তা হ'ল "টাইট লুপ"। আপনার ধারণা আছে, এটি কার্যকর হয় কিনা তা পরীক্ষা করার জন্য আপনি একটি কোড আপ করেন এবং তারপরে আপনি এটি ব্যবহার করে দেখুন। যদি এটি কাজ না করে, আপনি এটিকে পরিবর্তন করে আবার চেষ্টা করুন। "কোড-টু-টেস্ট" সময় প্রবাহ বজায় রাখার জন্য অত্যন্ত গুরুত্বপূর্ণ। এটি যতটা সম্ভব ছোট হওয়া গুরুত্বপূর্ণ is
লুয়া (বা কোনও এম্বেডেড স্ক্রিপ্টিং ভাষা) আপনাকে যা করতে দেয় তা হ'ল "সংকলন" না করে পরিবর্তনগুলি পরীক্ষা করা, তবে গেমটিতে লাইভ করুন । আপনি কীভাবে আপনার গেমটি তৈরি করেন তার উপর নির্ভর করে আপনি একটি কমান্ড চালাতে পারেন যা ডেটা বন্ধ করে এবং পুনরায় লোড না করেই নতুন স্ক্রিপ্টগুলি দিয়ে গেমটি পুনরায় চালু করবে and শুধু আপনাকে পুনরায় সংকলন করতে হবে না, আপনাকে পুনরায় চালাতে হবে না।
যথাযথ ইঞ্জিন সমর্থন করে এটি করার ক্ষমতা নাটকীয়ভাবে উত্পাদনশীলতা বাড়িয়ে তুলতে পারে।
স্ক্রিপ্টিংয়ের আরেকটি বড় সুবিধা হ'ল কেবল যত্ন না করার ক্ষমতা। আপনি যদি সি ++ লেখার জন্য দীর্ঘ সময় ব্যয় করেন, আপনি মিনিটায় কতটা সময় ব্যয় করেছেন তা অবাক করে দিয়ে যাবেন। যেখানে স্মৃতি মুছে ফেলা হয়। যেখানে এটি মুক্তি পায়। এমনকি আপনি যদি shared_ptr
সর্বত্র ব্যবহার করছেন , কেবলমাত্র সেই সমস্ত পরিবর্তনশীল প্রকারের নাম টাইপ করার কাজ আপনাকে ধীর করে দেয়।
গতিশীল টাইপযুক্ত স্ক্রিপ্টিং ভাষায় আপনাকে যত্ন নিতে হবে না। স্কোপিং সহজ। ফাংশনগুলি প্রথম শ্রেণীর অবজেক্টস; আপনাকে ম্যানুয়ালি ফান্টেক্টর তৈরি করতে হবে না। কিছু কাজ করা এত সহজ ।
আপনি যদি কোনও শৃঙ্খলাবদ্ধ প্রোগ্রামার না হন তবে এখন তার নেতিবাচকতা রয়েছে। লুয়ায় গ্লোবালগুলি ব্যবহার করা খুব সহজ (যদিও এটি প্রতিরোধের উপায় রয়েছে)। যত্নশীল না হওয়ার অর্থ আপনি কোড দেওয়ার সময় আপনি খুব স্লোপি হতে পারেন।
তবে তারপরে আবার খুব ঝাপটায় থাকার সুবিধা থাকতে পারে ।
লুয়ার আরেকটি উত্সাহ হ'ল এটি একটি সুন্দর ডেটা বর্ণনার ভাষা করে। অনেকটা যেমন জেএসন হ'ল একটি জাভাস্ক্রিপ্ট ফাইল যা একটি অ্যারে / টেবিল তৈরি করে এবং ফেরত দেয়, আপনি লুয়া স্ক্রিপ্টগুলি তৈরি করতে পারেন যা টেবিলগুলি ফেরত দেয়।
এটি কনফিগারেশন ফাইলগুলির জন্য দরকারী; লুয়ার টেবিল ফর্ম্যাট .ini ফর্ম্যাটগুলির চেয়ে অনেক ভাল। ফর্ম্যাটটি এখনও বরং পরিষ্কার, কমপ্যাক্ট এবং এক্সটেনসিবল।
ওহ, এবং এটি এখনও একটি লুয়া স্ক্রিপ্ট, যাতে এটি আসল যুক্তি সম্পাদন করতে পারে। এর খারাপ দিকটি হ'ল ... ভাল, এটি একটি লুয়া স্ক্রিপ্ট, যাতে এটি আসল যুক্তি সম্পাদন করতে পারে । এটি খেলায় বিপর্যয়কর হতে পারে, যেহেতু ব্যবহারকারী সম্ভাব্যভাবে জিনিসগুলি স্ক্রু করা শুরু করতে পারে।
তবে আসলে, এটি সহজেই মোকাবেলা করা হয়। লুয়া এমবেডিংয়ের জন্য ডিজাইন করা হয়েছে যার অর্থ বিচ্ছিন্নতা আসলে বেশ সহজ। আসলে, একটি তাজা লুয়া রাষ্ট্র ডিফল্টরূপে কিছুই সরবরাহ করে না ; মানক লুয়া লাইব্রেরিগুলির মধ্যে এমনকি সর্বাধিক বুনিয়াদি প্রকাশ করতে আপনাকে কিছু করতে হবে। ফাইল অ্যাক্সেস, গেম-স্টেট অ্যাক্সেস ইত্যাদি সমস্ত অপ্ট-ইন, অপ্ট-আউট নয়। এবং প্রতিটি লুয়া রাষ্ট্র একে অপরের থেকে পৃথক। আপনি এআই স্ক্রিপ্টগুলির জন্য যে লুয়া রাষ্ট্রটি ব্যবহার করেন তা কনফিগার ফাইলগুলির জন্য আপনি যে লুয়া রাষ্ট্র ব্যবহার করেন তা হতে পারে না।
আমার কাছে আসলে কিছু কোড রয়েছে যা আপনাকে অনেক লুয়া স্ট্যান্ডার্ড লাইব্রেরি নিবন্ধ করার অনুমতি দেয় তবে সমস্ত ফাইল আইও দিয়ে যায় এবং সরিয়ে দেয়। শেষ পর্যন্ত, কোনও লুয়া স্ক্রিপ্ট-ভিত্তিক কনফিগারেশন ফাইলটি সবচেয়ে খারাপ করতে পারে তা হ'ল এটির স্মৃতিশক্তি চালিয়ে যাওয়ার সাথে সাথে আপনার গেমটি চালানোর সাথে সাথে তার ক্রাশ হয়ে যায়। এবং যেহেতু আপনি এই কনফিগারেশন ফাইলগুলি ম্যানুয়ালি ভাগ করে নিচ্ছেন না, হ্যাকারের পক্ষে এটি খুব মজাদার হবে না।
আমি বলব যে কোনও স্ক্রিপ্টিং ভাষার সবচেয়ে বড় অবক্ষয় হ'ল ডিবাগিং। বেশিরভাগ স্ক্রিপ্টিং ভাষার ডিবাগার থাকে না এবং লুয়াও আলাদা নয়। ডিবাগিং সরঞ্জামগুলি তৈরি করার জন্য লুয়ার সমস্ত সরঞ্জাম রয়েছে তবে এটিতে বিল্ট-ইন কোনও ডিবাগার নেই। আপনাকে একসাথে রাখতে হবে। এবং এটি কাজের একটি যুক্তিসঙ্গত ডিগ্রী প্রয়োজন।
অথবা আপনি "প্রিন্টফ ডিবাগিং" দিয়ে উপযুক্ত করতে পারেন। এটি আসলে আপনি কত লুয়া কোড লেখেন তার উপর নির্ভর করে।