چندی پیش توسعه بازی یکی از حوزه های انحصاری و دشوار برنامه نویسی به شمار می رفت، اما امروزه با ارائه شدن کتابخانه ها و ابزارهای ساده امکان یادگیری برنامه نویسی بازی برای هر فرد علاقمند فراهم شده است. در این مقاله به صورت ساده و اجمالی به معرفی دو کتابخانه مهم در حوزه دات نت برای برنامه نویسی بازی خواهیم پرداخت.

  • Microsoft DirectX
  • Microsoft XNA

DirectX چیست؟



Microsoft DirectX مجموعه اي از رابط هاي برنامه نویسی کاربردي (Application Programming Interfaces (API است که براي اداره كردن وظايف مربوط به برنامه هاي چند رسانه اي، به ويژه برنامه ريزي بازي و ويدئو، در پايگاه مايکروسافت ارائه شده است. در اصل، نام های موجود در این مجموعه تماما با Direct شروع مي شوند، از قبيل Direct3D DirectDraw، DirectMusic، DirectPlay و DirectSound که کاراکتر X جایگزینی برای هر بخش به شمار می رود. پس از معرفي Xbox، شرکت مايکرسافت رابط هاي برنامه نویسی کاربردي براي طراحي بازي چند پايگاهي را که براي مکمل کردن و يا جايگزين کردن اجزای منفرد DirectX طراحي شده اند، منتشر کرد که از جمله آن ها می توان XInput را نام برد.
Direct3D (API گرافيک سه بعدي ارائه شده توسط DirectX) در گسترش بازي هاي کامپيوتري براي ويندوز مايکروسافت، Xbox مايکروسافت و Xbox 360 مايکروسافت استفاده مي شود. علاوه بر این Direct3D در پیاده سازی وظایف گرافیکی و تصویری توسط ديگر نرم افزارهاي کاربردي مورد استفاده قرار می گیرد که در این میان می توان برنامه های بخش مهندسی براي CAD/CAM را نام برد.
تاريخچه
اواخر سال 1994 شرکت مایکروسافت در آستانه انتشار سیستم عامل جدید خود Windows 95 قرار داشت. در آن زمان ارزیابی کارشناسان نشان می داد که گرایش طراحان و برنامه نویسان بازی به سمت سیستم عامل جدید ممکن است با مشکل بزرگی مواجه شود. دلیل این امر این بود که سیستم عامل قبلی شرکت مایکروسافت یعنی MS-DOS اجازه دسترسي مستقيم به كارت ويدئو، صفحه کليد، موس، وسايل صدا و ديگر قسمت هاي سيستم را مي داد. در حالي که Windows 95، با نمونه حافظه حفاظت شده اش، دستيابي به سخت افزار را محدود مي کرد. ازین رو مایکروسافت نیازمند راه حلی سریع برای رفع این محدودیت بود تا موانع موجود را از سر راه توسعه دهندگان و برنامه نویسان بازی بردارد. در آن زمان سه نفر از اعضای شرکت مایکروسافت Craig Eisler،Alex St. John و Eric Engstrom با همکاری یکدیگر و پس از چند ماه کار راه حل این مشکل را ارائه کردند. این راه حل و حاصل کار DirextX بود.
اجزاء تشکيل دهنده DirectX
DirectDraw: براي کشيدن تصاوير دو بعدي به کار می رود که هنوز در تعدادي از بازي ها مورد استفاده قرار می گیرد.
(Direct3D (D3D: کشيدن تصاوير سه بعدي را امکان پذیر می سازد.
DXGI: براي شمارش آداپتورها و نظارت و مديريت زنجيره هاي مبادله اي در Direct3D 10 و بالاتر استفاده می شود.
DirectInput: براي واسطه قرار دادن سخت افزار ورودي شامل صفحه کليد، موس، دسته هاي بازي و ديگر کنترل گرهاي بازي به کار می رود.
DirectPlay: براي برقراري ارتباط در يك شبكه محلي يا گسترده استفاده می شود.
DirectSound: براي پخش و ركورد كردن صداهاي موجي شكل به کار می رود.
DirectSound3D: براي پخش صداهاي سه بعدي مورد استفاده قرار می گیرد.
DirectMusic: براي پخش آرم هاي برنامه ساخته شده در DirectMusic Producer به کار می رود.
DirectX Media: شامل DirectAnimation براي فيلم هاي انيميشن دو بعدي شبكه، DirectShow براي پخش صوت، تصوير، فيلم و صداي زنده بر روي مرورگر (streaming media)، DirectX Transform براي برنامه هاي دو سويه شبکه (بين برنامه و کاربر) و Direct3D Retained Mode براي گرافيک هاي سه بعدي سطح بالاتر. DirectShow داراي DirectX plugins براي پردازش سيگنال صوتي مي باشد و DirectX Video Acceleration براي پخش ويدئو شتاب داده شده مورد استفاده قرار می گیرد.
DirectShow: از تاريخ آوریل 2005 DirectShow به عنوان بخش مستقل و جدا از DirectX معرفی شد. اين بخش در SDK موجود مي باشد.
SDK) Software Development Kit): برنامه اي است که برنامه نويسان از آن براي ساخت پروژه هايشان استفاده مي کنند.
DirectX Media Objects: پشتيباني آبجکت های جرياني مثل رمزگذارها، رمزگشاها و جلوه ها را به عهده دارد.
DirectSetup: براي نصب اجزاء DirectX مورد استفاده قرار می گیرد.
DirectX 10
آخرین نسخه ارائه شده از DirextX، نسخه 10 آن می باشد که همراه ویندوز ویستا ارائه شده است. نسخه هاي قبلي ويندوز قادر به اجراي برنامه هاي انحصاري DirectX 10 نيستند. تغييرات عمده ای در DirectX 10 دیده می شوند. ازجمله آن ها اینکه DPLAY.DLL در DirectPlay حذف و dplayx.dll جایگزین آن شده است. بازي هاي که بر اين فايل تکيه مي کنند باید نسخه ای از آن را به dplay.dll تغيير نام دهند.
برنامه نویسی در محیط دات نت
اگر قصد استفاده از کتابخانه های DirectX را دارید، باید SDK آن را از وب سایت شرکت مایکروسافت دانلود کنید:

  • DirectX End-User Runtimes (June 2008) ( ^ )
  • DirectX Software Development Kit ( ^ )

یک نمونه ساده برنامه نویسی با DirectX و زبان سی شارپ اینجا ارائه شده است.



XNA Framework چیست؟
XNA Framework بر پایه دات نت فریم ورک 2.0 ارائه شد و هدف از طراحی آن ارائه دادن مجموعه کتابخانه ها و کلاس های توسیعی بود که توسعه دهندگان بازی بتوانند با کمترین مقدار کدنویسی و اجرای کد در محیطی مدیریت شده، از پلتفرم های مختلف حداکثر استفاده را ببرند. کدهای نوشته شده بر پایه XNA Framework مانند کدهای دات نت فریم ورک در محیطCommon Language Runtime اجرا می شوند. از این رو بازی های ایجاد شده قابل اجرا بر روی پلتفرم ویندوز XP، ویستا و پلتفرم Xbox 360 مایکروسافت می باشند.
XNA Framework مجموعه ای از تکنولوژی های سطح پایین را بسته بندی کرده و به این ترتیب تضمین می کند که فریم ورک خود مسئول هماهنگ کردن تغییرات بین پلتفرم های مختلف هنگام جابجا شدن بازی از یک پلتفرم به پلتفرم دیگر خواهد بود و این امر به توسعه دهندگان کمک می کند به جای درگیر شدن با جزئیات پلتفرم، بیشتر به محتوا و طراحی بازی خود توجه داشته باشند. این فریم ورک به همراه ابزارهای کمکی از قبیل XACT ارائه شده است که به برنامه نویسان اجازه می دهد ویژوال، صدا و مدل کاراکتری را به بازی های خود اضافه کنند.
برای توسعه بازی ها تحت XNA Framework از زبان برنامه نویسی #C استفاده می شود.
XNA مخفف چیست؟
کاراکتر X در این عبارت نشان می دهد که فریم ورک مذکور ابتکاری بین پلتفرم های مهم شرکت مایکروسافت یعنی DirectX و Xbox می باشد. کاراکتر N برای Next-Generation در نظر گرفته شده است چرا که توسعه دهندگان این فریم ورک معتقدند که نرم افزار در نسل بعدی بازی ها بیشتر از سخت افزار ایفای نقش خواهد کرد. و در نهایت کاراکتر A معرف کلمه Architecture می باشد. فلسفه حضور این کلمه در نام فریم ورک مذکور ادغام ابزارهای مختلفی است که در اختیار توسعه دهندگان بازی قرار می گیرند تا بازی های خود را ایجاد کنند.
XNA Game Studio چیست؟
XNA Game Studio محیط توسعه مجتمع برای برنامه نویسی بازی می باشد که بر پایه Visual Studio 2005 Team System طراحی شده است. XNA Game Studio ساختارهای لازم برای همکاری بین ایجاد کنندگان محتوای بازی، برنامه نویسان، مدیران و تست کنندگان بازی را فراهم می کند. وظایف مدیریت پروژه زیر توسط XNA Game Studio ارائه می شوند:

  • asset management
  • defect tracking
  • project automation
  • work item lists

برنامه نویسی با XNA
XNA Game Studio نسخه 2.0 برای ویژوال استودیو 2005 به صورت نهایی ارائه شده است. نسخه XNA Game Studio 3.0 که برای ویژوال استودیو 2008 طراحی شده است به صورت CTP توسط مایکروسافت ارائه شده است. برای شروع کار با XAN لازم است یکی از استودیوهای آن را دانلود کنین:

  • XNA Game Studio 2.0 ( ^ )
  • Visual Studio Service Pack 1 (برای نصب XNA Game Studio 2.0 ضروری است) ( ^ )
  • XNA Game Studio 3.0 CTP ( ^ )

پس از دانلود و نصب XNA Game Studio، تمپلیت های آن به ویژوال استودیو اضافه خواهند شد:


منابع XNA بر روی وب
اطلاعات بیشتر برای کدنویسی و دریافت بازی های طراحی شده با فریم ورک XNA را می توانید از منابع زیر کسب کنید:
· XNA Creators Club Online

· XNA Developer Center

بسته برنامه نویسی و توسعه بازی (اختصاصی برای PersiaDevelopers)
بسته برنامه نویسی و توسعه بازی با ارائه کامل نیازمندی های برنامه نویسی بازی معرفی شده در این مقاله و بیش از سی عنوان کتاب الکترونیکی برای علاقمندان ارائه شده است. اطلاعات بسته اینجا ارائه شده است.
از خوانندگان محترم وب سایت درخواست می شود پس از مطالعه این مقاله نظر خود را در بخش پیغام منعکس کنند. این امر بنده را در ارائه کمی و کیفی بهتر مطالب برای مقاله های آتی یاری خواهد کرد.