بررسی ضرورت نصب DirectX مخصوص هر بازی
اگر از کاربران سیستم عامل ویندوز باشید مطمئناً می دانید که DirectX یکی از بسته های نرم افزاری شرکت مایکروسافت است که به صورت پیشفرض همراه با سیستم عامل ویندوز نصب می شود. تمامی بازی های مبتنی بر DirectX برای اجرا نیاز به همین بسته دارند. همانطور که گفتیم به صورت پیشفرض این بسته در ویندوز نصب شده است. اما سوال اینجاست پس چرا اغلب بازی های جدید که تحت پلتفرم هایی نظیر استیم، اوریجین و موارد دیگر نصب می شوند نیاز به نصب یک DirectX اختصاصی دارند. اگر دقت کرده باشید تمامی بازی هایی که به صورت رسمی توسط خود شرکت ها و یا حتی شرکت های زیر مجموعه در داخل دی وی دی ها عرضه می شوند در درون هر کدام علاوه بر راه اندازهای مختلف، یک بسته DirectX جداگانه هم گنجانده شده است. اگر دنبال علت این موضوع هستید ادامه این مقاله را از دست ندهید. با ما همراه باشید.
پیش از توضیح چرایی پرسش بالا اجازه دهید توضیحاتی مقدماتی راجع به بسته DirectX داده و ببینیم این بسته دقیقاً چیست و کاربرد آن در چه زمینه هاییست. با ما همراه باشید.
DirectX چیست؟
همانطور که گفته شد DirectX بخشی از سیستم عامل مایکروسافت ویندوز است. این بسته شامل مجموعه ای از رابطهای برنامه نویسی کاربردی(APIها) بوده که توسعه دهندگان بازی ها و نرم افزارهای گرافیکی و چندرسانه ای از آنها برای اهدافی همچون گرافیک سه بعدی، ویدئو، چندرسانه ای، صدا و گیم پدها استفاده می کنند. اغلب بازی هایی که تحت ویندوز ارائه می شوند از کتابخانه کاربردی Direct3D متعلق به همین بسته، یعنی DirrectX استفاده می کنند. بازی هایی که از این بسته برای پیشبرد کار خود بهره نبرند ناچاراً در آنها از ساختار کراس پلتفرم OpenGL یا APIهای Vulkan استفاده می کنند. همچنین برنامه ها و نرم افزارهای دیگر که جزء بازی ها تلقی نمی شوند نیز برای اهدافی همچون گرافیک سه بعدی از مجموعه کتابخانه های موجود در بسته DirectX بهره می برند.
همانطور که احتمالاً می دانید ویندوز 7 دربردانرده DirectX 11 بوده و ویندوز 10 نیز حاوی بسته DirectX12 است. زمانی که توسعه دهندگان قصد ساخت یک بازی را داشته باشند با توجه به نیازهای مد نظر خود یکی از این دو بسته را برای هدف مد نظر خود انتخاب می کنند. در حقیقت اگر یک بازی تحت DirectX11 نوشته شده باشد، روی سیستم عامل ویندوز XP اجرا نخواهد شد چرا که حداکثر نسخه ای که این سیستم عامل از آن پشتیبانی می کند، DirectX 9 است.
برای اینکه از نسخه بسته نصب شده روی سیستم عامل ویندوز خود مطلع شوید، کافیست روی دکمه Start کلیک کرده، کلمه dxdiag را داخل کادر جست و جو تایپ کرده و سپس کلید Enter روی صفحه کلید خود را فشار دهید. با انجام این که پنجره ای تحت عنوان DirectX Diagnostic Tool باز خواهد شد. برای اطلاع از نسخه، وارد اولین زبانه با نام System Infromation شده و شماره نسخه ای که بعد از DirectX Version مشخص شده را رویت کنید.
حال اجازه دهید به بحث اصلی خود یعنی اینکه چرا با وجود نصب بودن پیشفرض DirectX، بازی های امروزی نیز به صورت خودکار آنرا نصب می کنند؟ با ما همراه باشید.
جواب کوتاه پرسش بالا این است که نسخه پیشفضرض نصب شده DirectX به نوعی متناسب با بازی های توسعه دهندگان نبوده و ممکن است بعضی از خواسته های توسعه دهندگان را برآورده نکند.
در واقع DirectX یک کتابخانه Direct3D ثابت نبوده که بازی ها بتوانند صرفاً روی آن تکیه کنند. حقیقت آن است که توسعه دهندگان بازی ها، مجبورند یک نگارش دقیق را با توجه به نیازهایشان مد نظر قرار داده و منتشر کنند. به عنوان مثال اگر یک توسعه دهنده هدف خود را روی استفاده از فایل d3ddx10_40.dll قرار دهد، بازی قادر به استفاده از نسخه جدید این فایل در نگارش جدیدتر نسخه DirectX نخواهد بود. این بازی دقیقاً به همان فایل یعنی d3ddx10_40.dll برای پیشبرد اهدافش نیاز دارد چرا که در اینجا فایل جدید صرفاً دربردارنده دستورات جدید نبوده و ممکن است تغییرات و یا حذفیاتی را نیز در برگرفته باشد.
شما می توانید این فایل های را در مسیر C:\Windows\System32 رویت کنید. روی یک سیستم و ویندوز 64 بیتی، کتاب خانه های 64 بیتی در داخل C:\Windows\System32 قرار گرفته اند و کتاب خانه های 32 بیتی نیز در C:\Windows\SysWOW64 قرار دارند.
این حالت بدین معناست که حتی اگر شما آخرین نسخه DirectX عرضه شده را روی سیستم خود نصب کنید تضمینی قطعی برای اینکه مطمئن باشید نسخه های فرعی کتابخانه های DirectX هم نصب شده اند، وجود ندارد. از طرفی شرکت مایکروسافت نیز هیچ اقدامی مبنی بر قرار دادن این نسخه های فرعی در مجموعه DirectX خود انجام نداده و این امر را به عهده خود توسعه دهندگان گذاشته است. در چنین شرایطی حتی ممکن است برخی از کتابخانه های عرضه شده پیش از ویندوز10، نیز به صورت پیشفرض همراه با ویندوز 10 نصب نشده باشند. در واقع این سری فایل های فرعی باید توسط نسخه DirectX مخصوص هر بازی و برنامه نصب شود. مایکروسافت هم طی بیانیه ای اعلام کرده که Windows Update و Service Packها دربردارنده هیچ گونه اجزای اختیاری و اضافی تحت DirectX نبوده و این امر را به عهده خود توسعه دهندگان قرار داده است.
با توجه به اینکه بازی های 32 بیتی به نسخه های 32 بیتی این مجموعه و بازی های 64 بیتی هم طبیعتاً به کتابخانه های 64 بیتی برای اجرا نیاز دارند این قضیه به خودی خود پیچیده تر هم می شود.
این قضیه در مورد کتابخانه های VisualC++ نیز صدق می کند. در واقع به همین دلیل است که همراه هر بازی به مانند قضیه DirectX، نسخه هایی مخصوصی از VC+ نیز گنجانده شده است.
چرا هر بازی مجبور است نسبت به نصب مجدد این مجموعه اقدام کند؟ برای پاسخ به این سوال ادامه این مطلب را از دست ندهید. با ما همراه باشید.
تا اینجا فهمیدیم که هر بازی باید نسبت به نصب نسخه های فرعی کتابخانه مورد نیاز خود اقدام کند. حقیقت این است که هیچ روش آسانی برای اینکه بازی ها بتوانند کتابخانه های درست مورد نیاز خود را شناسایی کرده و بدانند که آنها در داخل سیستم نصب شده اند یا خیر، وجود ندارد. بنابراین توسعه دهندگان نمی توانند به صورت دستی فایل های مورد نیاز ناموجود را شناسایی کرده و آنها را به صورت دستی در حین نصب بازی کپی کنند. جدای از این مورد، این قضیه نقض قوانین مایکروسافت محسوب می شود. همچنین حتی اگر قصد چنین کاری هم داشته باشند ممکن است با خطاها و اشکالات متعددی در زمینه اجرای بازی روبرو شوند.
البته تمامی بازی ها نیاز به نصب DirectX نداشته و ندارند. این دست از عناوین در واقع بازی هایی هستند که تحت بستر OpenGL یا Vulkan پیاده سازی شده اند. بنابراین نیازی به نصب DirectX ندارند. همچنین برخی از بازی ها هستند که تنها به نسخه های اصلی و رسمی عرضه شده توسط خود شرکت مایکروسافت وابسته بوده و در نتیجه نیازی به نصب نسخ های فرعی مجموعه DirectX ندارند.
آیا می توان برخی از کتابخانه های DirecX داخل سیستم را نصب کرد؟
شما نباید نسبت به حذف یا تغییر هر یک از کتابخانه های این مجموعه، چه نسخه های 32 بیتی و چه 64 بیتی اقدام کنید چرا که بازی یا برنامه های نصب شده، برای اجرا به آنها نیاز دارند. در صورت حذف باید عواقب احتمالی عدم اجرای برنامه یا بازی ها را نیز پذیرا باشید. به صورت واقعی روشی نیست که بتوان تشخیص داد یک بازی به کدام مجموعه از کتابخانه های DirectX نیاز دارد بنابراین هیچ روش امنی برای حذف این فایل ها وجود ندارد.
از این رو به هیچ وجه سمت آنها نروید و بدانید که مشکلی برای سیستم شما پدید نمی آورند در واقع وجود آنها تنها برای اجرای برنامه ها و بازی ها لازم است نه چیز دیگری.
در صورت وجود مشکل مرتبط با DirectX، چه کار باید کرد؟
اگر به هنگام اجرای یک بازی یا برنامه با خطایی مواجه شدید که مرتبط با DirectX بود احتمال دارد که در حین نصب بازی، نسخه DirectX مخصوص بازی به طور مناسب نصب نشده باشد. در چنین شرایطی تنها دانلود این مجموعه از وبسایت مایکروسافت کافی نبوده و باید نسبت به نصب نسخه گنجانده شده در داخل خود بازی اقدام کنید. برای این منظور وارد پوشه محتویات نصب بازی شده و بعد وارد پوشه DirectX شوید. بعد از بین فایل های موجود در این پوشه، فایل اجرایی DXSETUP.exe را اجرا کنید. به طورکلی در صورتی که با خطاهای مرتبط با DirectX به هنگام اجرای یک بازی یا برنامه مواجه شدید، ابتدا پیشنهاد می کنیم جست و جویی در این زمینه با ذکر نام و شرح خطا در موتور جست وجوی گوگل داشته تا سریعتر به نتیجه برسید.
این مقاله هم به پایان رسید. منتظر مقالات اختصاصی عصربازی در روزهای آتی باشید.