Directx

در ابتدایی ترین سطح Directx بعنوان یک واسطه بین سخت افزار در کامپیوتر شخصی و خود ویندوز ، بخشی از API ویندوز یا واسطه برنامه نویسی برنامه های کاربردی Application Programming Interface است .
برنامه های بازی و مالتی مدیا جزء رضایت بخش ترین برنامه های کامپیوتری می باشند ، ولی متأسفانه اجرای آنها به شیوه ای مناسب همیشه آسان نیست . علت اول اینکه ساختار کامپیوترهای شخصی هرگز به منظور استفاده بعنوان پایگاهی جهت بازی کردن طراحی نگردیده است . ثانیاً ماهیت طیف گسترده کامپیوترهای شخصی به معنای آن است که دستگاه یک نفر می تواند بسیار متفاوت با دستگاه دیگری باشد . لذا در حالیکه دستگاه های بازی همگی از سخت افزارهای مشابهی استفاده می کنند ، کامپیوترهای شخصی چنین نیستند : حیطه بسیار وسیع تفاوت های سخت افزاری می تواند دردسر بزرگی برای بازکردن این برنامه ها محسوب شود . جهت رهایی از این دردسر تا حد امکان ، مایکروسافت نیازمند معرفی استانداردی عمومی یا بهتر بگوئیم یک واسطه و میانجی عمومی بین سیستم عامل و هرگونه سخت افزار نصب شده بر روی کامپیوتر بود تا تمام برنامه های بازی و مالتی مدیا بتوانند از آن پیروی کنند . این واسطه عمومی همان Directx است ، یعنی چیزی که می تواند مانع سردرگمی های بسیاری شود .
Directx واسطه ای است که وظائف برنامه ریزی خاصی را بسیار ساده تر می سازد ، چه برای پدید آورنده بازی و چه برای ما که فقط می خواهیم بنشینیم و آخرین بازی پرفروش را بازی کنیم . لیکن قبل از ینکه بتوانیم Directx و چگونگی کارکرد آن را توضیح دهیم ، لازم است به تاریخچه آن نگاهی بیندازیم .

 تاریخچه Directx
هر بازی نیاز به اجرای وظائف خاصی بصورت مکرر دارد . بازی نیازمند زیر نظر داشتن و کنترل داده های ورودی شما از طریق ماوس ، جوی استیک و یا یک بورد بوده و همچنین نیاز به نمایش تصاویری بر روی صفحه مانیتور و اجرای اصوات و موسیقی دارد . این تقریباً توصیف هر بازی در ساده ترین سطح آن است .
حال تصور کنید که این امر برای برنامه نویسانی که در ساختارهای کامپیوتر شخصی پیش از ویندوز اقدام به برنامه نویسی می کردند تا چه حد باور نکردنی و پیچیده بود .
لازم بود هر برنامه نویس روشی مختص به خود جهت خواندن کی بورد و یاحتی ردیابی اینکه آیا اصلاً جوی استیکی به سیستم متصل است یا خیر بنویسد ، چه برسد به اینکه بتوان از آن جهت باز کردن استفاده نمود . اعمال تکراری خاصی مورد نیاز بود تا بتوان حتی ساده ترین نوع تصویر را در صفحه نمایشگر نمایش داد و یا حتی صدایی ساده را اجرا نمود .
اساساً ، برنامه نویسان بازی ها در سطحی بنیادی با سخت افزار کامپیوتر کار می کنند . هنگامی که مایکروسافت ویندوز را معرفی نمود ، جهت برقرای ثبات و موفقیت پایگاه کامپیوتر شخصی ضروری بود تا کارها قدری برای برنامه نویسان و بازیکنان ساده تر شود .
چه کسی حاضر بود زحمت نوشتن بازی برای ماشینی را بکشد که در آن هر بار که قصد کار بر روی بازی جدیدی را داشت ، می بایست همه چیز را از نو بنویسد ؟
ایده مایکروسافت ساده بود : کار کردن مستقیم برنامه نویسان با سخت افزار را متوقف کرده و بجای آن یک toolkit عمومی بسازد که بتوانند آن را مورد استفاده قرار دهند . پس Directx متولد شد .

 چطور کار می کند ؟
در ابتدایی ترین سطح Directx بعنوان یک واسطه بین سخت افزار در کامپیوتر شخصی و خود ویندوز ، بخشی از API ویندوز یا واسطه برنامه نویسی برنامه های کاربردی Application Programming Interface است .
برای مثال هنگامی که نویسنده یک برنامه بازی می خواهد یک فایل صوتی اجرا شود ، صرفاً فراخوانی (call) به تابع کتابخانه (library function) صحیح می باشد . هنگامی که بازی اجرا می شود ، عملکرد مزبور Directx API را فرا می خواند که به نوبه خود فایل صوتی را به اجرا در می آورد . برنامه نویس به دانستن نوع کارت صدایی که با آن سروکار دارد ، توانائی های کارت مزبور و چگونگی مکالمه با آن نیاز ندارد . ماکروسافت Directx را فراهم آورده است و سازنده کارت صدا نیز درایوی که توان اجرای Directx را داشته باشد فراهم کرده است . برنامه نویس تقاضای صدایی که باید اجرا شود را می نماید و صوت مزبور اجرا می شود بدون توجه به دستگاهی که صدا بر روی آن باید اجرا شود .
از دیدگاه ما بعنوان بازیکنان نیز Directx اوضاع را بطرز غیر قابل باوری تسهیل می نماید ، حداقل بصوت تئوری . شما کارت صدای جدیدی را جایگزین کارت قدیمی تان می کنید و کارت جدید به همراه درایو می آید . دفعه بعد که بازی مورد علاقه خود را بازی کردید ، هنوز می توانید صداها و موسیقی آن را شنیده و ناچار به انجام هیچگونه تغییرات پیکربندی پیچیده ای نمی باشید .
در ابتدا ، Directx زندگی خود را بعنوان یک Toolkit ساده آغاز نمود : سخت افزارهای اولیه محدود بوده و صرفاًَ گرافیکی بسیار ابتدایی مورد نیاز بود . با تکامل نرم افزارها و سخت افزارها از نظر پیچیدگی ، Directx نیز تکامل یافت .
اکنون Directx بسیار بیشتر از یک Toolkit گرافیکی بوده و اصطلاح مزبور ، در بر گیرنده گزیده گسترده ای از روتین ها می باشد . برای مثال روتین DirectInput می تواند با همه گونه ابزار ورودی از ماوس دو دکمه ای گرفته تا جوی استیک های پیچیده مخصوص عملیات پرواز سروکار داشته باشد و سایر بخش ها شامل DirectSound برای ابزارهای صوتی است و DirectPlay که یک Toolkit برای بازی های چند بازیکنی Online فراهم آورده است .

 نسخه های Directx
نسخه فعلی Directx در زمان نوشتن این مقاله Directx ۹.۰c است . این واسطه بر روی کلیه نسخ ویندوز از ویندوز ۹۸ گرفته تا ویندوز سرور ۲۰۰۳ به همراه کلیه نسخ فی مابین آن ها اجرا می گردد . لیکن این Toolkit بر روی ویندوز ۹۵ اجرا نمی شود : اگر دستگاهی دارید که روی آن ویندوز ۹۵ نصب شده است ، ناچارید به استفاده از نسخه قدیمی تر و کم توان تر ۸.۰a می باشید . ویندوز NT۴ نیز نیازمند نسخه خاص خودش است که در این مورد خاص Directx ۳.۰a است .
با این همه نسخ متفاوت Directx که طی سنوات متمادی در دسترس قرار گرفته است ، ردیابی نسخه هایی که به آن ها نیاز دارید مشکل و مشکل ترمی شود . در تمام موارد به جز موارد بسیار نادر ، کلیه نسخ Directx قابلیت سازگاری با نسخ قدیمی تر را نیز دارند . یعنی بازی هایی که می گویند نیازمند Directx ۷ هستند ، به راحتی با نسخه های جدید تر نیز اجرا خواهند گردید ، ولی با نسخ قدیمی تر خیر . بسیاری از عناوین جدید بازی ها بطور دقیق اعلام می نمایند که نیازمند Directx ۹ بوده و بدون نصب دقیقاً آخرین نسخه آن ، اجرا نخواهد گردید . این امر بخاطر آن است که بازی های مزبور از ویژگی های جدیدی که با این نسخه معرفی گردیده است ، استفاده می نمایند . البته دیده شده که برنامه نویسان تنبل نیز گاهی آخرین نسخه Directx را بعنوان نسخه مورد نیاز بازی خود معرفی می کنند ، در حالیکه بازی مورد بحث از هیچ کدام از موارد تقویت یافته جدید استفاده نمی کند . لیکن بطور کلی ، اگر عنوان یک بازی به نسخه ای از Directx به اینصورت پیوند خورده باشد ، قبل از اینکه بتوانید بازی کنید ، لازم است Directx خود را ارتقاء دهید .
اصلاحات انجام گرفته در ریشه کد Directx بدین معناست که ممکن است حتی در بعضی از بازی ها بهبودهایی را پس از ارتقاء به آخرین نسخه ساخته شده از Directx ، مشاهده نمایید . دان لود و نصب Directx نیز نباید چندان پیچیده باشد .

 ارتقاء Directx
کلیه نسخ قابل دسترس ویندوز به هرماه شکلی از Directx بعنوان جزئی از هسته (core) سیستم ، که قابل حذف نمی باشد می آیند .
لیکن بسیاری از بازی های جدید نیازمند آخرین نسخه Directx جهت اجرای کامل و یا اصولاً هر گونه اجرایی می باشند .
عموماً بهترین محل جهت نصب آخرین نسخه Directx ، بخش اختصاص یافته به آن در سایت اینترنتی مایکروسافت می باشد که در آدرس www.microsoft.com/windows/directx یافت می شود . در هنگام چاپ این مقاله ، آخرین نسخه در دسترس برای دان لود عمومی نسخه Directx.۹.۰c بود . می توانید یک installer ساده را دان لود کنید که هنگام نصب به نوبه خود آن اجرایی که سیستم جهت ارتقاء نیاز دارد را دان لود می نماید و یا بسته نرم افزاری توزیع شده را بطور کامل جهت نصب Offline بعدی دان لود نمائید .
منبع خوب دیگر برای Directx خود بازی ها هستند . اگر بازی به نسخه خاصی از Directx نیاز داشته باشد ، نسخه مزبور روی CD نصب بازی خواهد بود و ممکن است حتی بطور خودکار توسط Installer بازی روی سیستم نصب گردد .

 تشخیص علت مشکلات
تشخیص علت مشکلات نصب Directx می تواند مشکل ساز باشد ، بخصوص اگر ندانید کدامیک از اجزاء آن سبب از کار افتاده بازی جدیدی شده است که به تازگی خریداری نموده اید .
خوشبختانه ، مایکروسافت یوتیلیتی مفید بنام Directx Diagnostic Tool را فراهم کرده ، هر چند که آن را مشخص نساخته است . این ابزار را در هیچ نسخه ای از ویندوز در منوی Start نمی توانید بیابید ، و هر نسخه ویندوز نیز ابزار مزبور را در جایی متفاوت با سایر ویندوزها نصب کرده است .
راحت ترین راه استفاده از این ابزار چنین است که کادر محاوره RUN را در منوی Start باز و در آن dxdiag را تایپ و سپس روی OK کلیک کنید . هنگامی که این برنامه برای اولین بار بارگذاری می شود ، چند ثانیه ای طول می کشد تا نسخه نصب شده Directx را بررسی کرده و مشکل را بیابد .
ابتدا برگه Directx File اطلاعاتی راجع به هر یک از فایل هایی که نسخه نصب شده مورد استفاده قرار می دهد را نشان می دهد .
بخش Notes در ذیل برگه مزبور نیز ارزش بررسی را دارد ، زیرا فایل های مفقودی یا معیوب در اینجا علامتگذاری می گردند .
برگه هایی که علامت های Display ، Music ، Input و Network را دارند ، همگی با مناطق خاص همنام خود در Directx مرتبط می باشند و بجز برگه Input ابزارهایی را جهت آزمایش عملکرد صحیح برروی سخت افزار دستگاه در اختیارتان می گذارند . نهایتاً برگه Move Help روشی مفید جهت شروع Directx Troubleshooter را فراهم می آورد که ابزار حل مشکل خط ساده مایکرو سافت برای بسیاری از موارد معمول و عمومی Directx می باشد .

  
نویسنده : ali gooliof ; ساعت ۱٢:۱٠ ‎ب.ظ روز ۱۳۸٧/٢/٢
تگ ها :