মাইক্রোসফ্ট এক্সএনএ হ'ল মাইক্রোসফ্ট দ্বারা সরবরাহিত পরিচালিত রানটাইম এনভায়রনমেন্ট সহ এমন একটি সরঞ্জাম যা কম্পিউটার গেম বিকাশ এবং পরিচালনার সুবিধার্থে করে। এক্সএনএ গেম ডেভেলপারদের "পুনরাবৃত্তিমূলক বয়লারপ্লেট কোড" লেখা থেকে মুক্ত করার এবং গেম উত্পাদনের বিভিন্ন দিককে একক সিস্টেমে আনার চেষ্টা করে।
এটি একটি কাঠামো হিসাবে ডিজাইন করা হয়েছে - আসলে, এক্সএনএ হ'ল মাইক্রোসফ্ট এক্সএনএ ফ্রেমওয়ার্ক - সুতরাং প্রযুক্তিগতভাবে এটি নাম অনুসারে ইঞ্জিন নয়।
কোনও 'ইঞ্জিন' নেই - যদি আপনি লক্ষ্য করেন তবে আপনি আপনার মূল ক্লাসটি এক্সএনএ.ফ্রেমওয়ার্ক.গেইম থেকে পেয়েছেন এবং ড্র এবং আপডেট ফাংশনগুলি নিজেই ওভাররাইড করতে হবে। কোনও কেন্দ্রীয় রেন্ডারিং সিস্টেম বা ইনপুট সিস্টেম বা বাক্সের বাইরে প্রস্তুত অডিও সিস্টেম নেই। স্প্রিটব্যাচ এবং ভার্টেক্স ক্লাস রয়েছে, আছে কিবোর্ডস্টেট এবং কিছু অডিও ক্লাস রয়েছে..কিন্তু এগুলি নিম্ন স্তরের অঙ্কন কোডের উপর কেবল বিমূর্ততা।
সম্পাদনা: দরকারীতার জন্য, কেন এটি ইঞ্জিন, কাঠামো, গ্রন্থাগার বা টুলসেট হিসাবে লেবেলযুক্ত যদি কিছু লাগে?
কিছুটা পরিষ্কার করার জন্য: আমি এক্সএনএতে একটি ইঞ্জিন বিকাশ করছি। অবশ্যই জোনাথন যেমনটি বলেছিলেন, অবাস্তব জাতীয় কিছুতে আমি তা করতে পারি না। যাইহোক, কয়েকটি জিনিস আমার কাছে গুরুত্বপূর্ণ মনে হচ্ছে যে এক্সএনএ-তে কেবল না থাকা:
প্লাগ-এন-প্লে: আমি কোনও ধরণের টেম্পলেট তৈরি করতে সক্ষম হতে চাই - এইচপি, এই জাল, এই অ্যানিমেশন এবং বুম রয়েছে! আমার গেমটিতে আমার একটি এনপিসি আছে।
গোপনীয় নিম্ন স্তরের - এক্সএনএ এটি ইতিমধ্যে করে তবে আমি গেমস সার্ভিস প্রোভাইডারগুলির সাথে চারপাশে ঝাঁকুনি দিতে চাই না। আমি শুধু একসাথে জিনিস নড়াতে চাই।
ইঞ্জিন থেকে গেমটি বিচ্ছিন্ন - একটি 'গেম' শ্রেণি থাকতে পারে তবে আমি আমার যুক্তি এবং আমার কোডটি বেস সিস্টেম থেকে আলাদা করতে চাই। আমি if(player.hasitem(Item.SECRET_SWORD_OF_SECRETNESS)
আমার গ্রাফিক্স রেন্ডারারে বাফারগুলি আপডেট করার সাথে মিশ্রিত হতে চাই না ।