چرا هر بازی کامپیوتری یک نسخه از DirectX در کامپیوتر نصب میکند؟
DirectX یک بخش از سیستم عامل ویندوز است. حالا سوال اینجاست که چرا هر بازی کامپیوتری که نصب میکنید یک نسخه از نرم افزار DirectX در کامپیوتر شما نصب میکند در حالی که DirectX در ویندوز وجود دارد؟
DirectX چیست؟
DirectX بخشی از سیستم عامل ویندوز کمپانی مایکروسافت است. DirectX دارای یک سری API است که توسعه دهندگان و برنامه نویسان میتوانند از آن برای استفاده از قابلیت های گرافیک سه بعدی، ویدیو، مالتی مدیا، صوت و... در ویندوز استفاده کنند. بسیاری از بازی های ویندوز برای گرافیک از Direct3D دایرکت ایکس استفاده میکنند. اگر بازی ها از Direct3D استفاده نکنند بنابراین یا از OpenGL و یا از Vulkan استفاده میکنند.
نرم افزار هایی نیز هستند که در زمینه کارهای گرافیکی از DirectX استفاده میکنند. ویندوز 7 دارای نسخه 11 ، و ویندوز 10 دارای نسخه 12 دایرکت ایکس هستند. زمانی که توسعه دهندگان یک بازی میسازند، آنها نسخه دایرکت ایکس مورد نظر خود را برای بازیشان انتخاب میکنند. برای مثال یک بازی که برای نسخه 11 دایرکت ایکس ساخته شده در ویندوز XP که آخرین نسخه دایرکت ایکس آن 9 است اجرا نخواهد شد.
برای اینکه متوجه شوید نسخه دایرکت ایکس نصب شده بر روی کامپیوتر شما چند است عبارت “Dxdiag” را در منوی استارت جستجو کنید و سپس اولین نتیجه که ظاهر میشود را باز کنید. پنجره برنامه “DirectX Diagnostic Tool” باز خواهد شد. در این پنجره در بخش System Information در مقابل گزینه ی “DirectX Version” میتوانید نسخه دایرکت ایکس نصب شده بر روی ویندزوتان را مشاهده کنید.
اگر دایرکت ایکس در ویندوز است، پس چرا بازی ها آن را مجددا نصب میکنند؟
پس اگر دایرکت ایکس در ویندوز نصب است چرا بازی ها یک نسخه از دایرکت ایکس نصب میکنند؟ پاسخ کوتاه این است که پیدا کردن و نصب نسخه مخصوص دایرکت ایکس توسط کاربر کار سختی است.
بازی سازان در زمان ساخت یک بازی باید تعیین کنند که به چه نسخه ای از Direct3D نیاز دارند. برای مثال بسیاری از بازی ها شاید با آخرین نسخه از Direct3D کار نکنند. اگر یک توسعه دهنده بازی تعیین کرده باشند که بازی آنها با d3ddx10_40.dll کار کند بنابراین این بازی با d3ddx10_41.dll کار نخواهد کرد. این بازی به نسخه 40 نیاز دارد و حتما باید همین نسخه در کامپیوتر موجود باشد.
میتوانید فایل های Direct3D را در مسیر C:\Windows\System32 بیابید. در ویندوز های 64 بیتی DLL های 64 بیتی در مسیر C:\Windows\System32 قرار دارند، و DLL های 32 بیتی در مسیر C:WindowsSysWOW64 هستند.
حتی اگر آخرین نسخه از دایرکت ایکس در کامپیوتر شما نصب باشد، شاید بسیاری از فایل های DLL قدیمی مورد نیاز برای بسیاری از بازی ها در ویندوز شما موجود نباشد. کمپانی مایکروسافت تمامی این فایل های DLL را به صورت پیشفرض در سیستم عامل ویندوز قرار نداده است. فایل های Direct3D که قبل از انتشار ویندوز 10 ساخته شده اند در ویندوز 10 وجود ندارند و مایکروسافت آن ها را در این نسخه از ویندوز قرار نداده است.
این فایل ها را باید نرم افزار ها و بازی هایی که به آنها نیاز دارند در ویندوز نصب کنند. مایکروسافت اعلام کرده که ویندوز با هر بار آپدیت شدن هیچ کدام از فایل های DLL مربوط به دایرکت ایکس را در ویندوز نخواهد آورد و توسعه دهندگان بازی ها باید خودشان این فایل ها را در ویندوز بریزند.
زمانی این موضوع بدتر میشود که بازی های 32 بیتی به DLL های 32 بیتی، و بازی های 64 بیتی به DLL هاتی 64 بیتی نیاز دارند. و این یعنی تعداد بسیار زیادی فایل DLL.
چرا هر بازی کامپیوتری DirectX نصب میکند؟
بنابراین هر بازی فایل های DLL مورد نیازش که مربوط به Direct3D هستند و برای اجرای بازی مورد نیاز هستند را در سیستم نصب میکند. اما اگر این فایل ها از پیش در ویندوز وجود داشته باشند چه؟ باز هم بازی مورد نظراین فایل های را نصب میکند؟
جواب بله است، زیرا بازی نمیتواند چک کند که آیا فایل های مورد نیاز که در سیستم وجود دارند با آن سازگار هستند و یا خیر. و به همین دلیل فایل های از پیش آماده شده خودش را نصب میکند. همانطور که سرویس Steam اعلام کرده است، تنها نصب کننده DirectX مایکروسافت میتواند چک کند که آیا فایل های DLL نصب شده در سیستم درست و سالم هستند و یا خیر. بازی ها در پس زمینه و بدون اینکه شما بدانید فایل های DLL مربوط به DirectX مورد نیازشان را حتی زمانی که نصب هستند نیز مجددا نصب میکنند.
دایرکت ایکس تنها راهی است که مایکروسافت به توسعه دهندگان اجازه پخش کردن این فایل های DLL را میدهد. این به آن معناست که برنامه نویسان نمیتوانند به راحتی فایل های DLL مربوط به DirectX مورد نظرشان را درون فایل های نصبی بازی قرار دهند و به راحتی در سیستم نصب کنند، و باید حتما این DLL ها را از طریق نصب کننده DirectX در سیستم نصب کنند، اگرنه قوانین مایکروسافت را زیر پا گذاشته اند. همچنین با این کار ممکن است مشکل در اجرای بازی شان پیش بیاید.
مطمئنا همه بازی ها نیز یک نسخه از دایرکت ایکس نصب نمیکنند. زیرا بازی هایی که با گرافیک های OpenGL و Vulkan کار میکنند نیازی به DirectX ندارند. همچنین بعضی از بازی ها با همان فایل های نسخه های 9، 10 و 11 دایرکت ایکس کار میکنند و نیازی به فایل های DLL اضافی برای اجرا شدن ندارند.
آیا میتوان فایل های DLL دایرکت ایکس را حذف کرد؟
نباید هیچ کدام از فایل های DLL مربوط به دایرکت ایکس و یا هر چیز دیگر که در پوشه های System32 و یا SysWOW64 هستند را حذف کنید. دلیل وجود هر فایل در این پوشه ها این است که یک برنامه و یا بازی به آنها نیاز دارد. اگر یکی از این فایل ها را حذف کنید شاید برای یکی از بازی ها و یا برنامه های شما مشکل پیش بیاید، و شما نمیتوانید بفهمید هر فایل DLL را چه برنامه و یا بازی نیاز دارد.
بنابراین هیچ کاری به این فایل ها نداشته باشید. با وجود این فایل ها در سیستم هیچ مشکلی پیش نمیاید.
اگر با DirectX مشکل داشتیم چه کنیم؟
اگر حین نصب و یا اجرای یک بازی با ارور DirectX مواجه شدید به این معناست که آن بازی و یا نرم افزار نسخه دایرکت ایکس مورد نیاز خودش را نصب نمیکند و باید شما خودتان نسخه دایرکت ایکس مورد نیاز آن بازی را نصب کنید. معمولا با مراجعه به محل نصب بازی مورد نظر میتوانید برنامه نصب دایرکت ایکس را مشاهده و آن را نصب کنید. نام برنامه نصب دایرکت ایکس معمولا DXSETUP.exe است و با اجرای آن مشکل اجرا نشدن بازی برطرف خواهد شد.
موفق باشید.
( 1 کامنت - مشاهده کامنت ها )
سلام و خسته نباشید من ویندوز 8 32 بیت دارم و دایرکت ایکس ورژن 11 . سوال من اینه که تو بازی farcry 2 باید خودمون تو تنظیمات display ورژن دایرکت ایکس رو انتخاب کنیم در اونجا فقط ورژن های 9 و 10 قابل انتخاب هستند من باید کدوم و انتخاب کنم؟ باید دایرکت ایکس 9 یا 10 نصب کنم؟