- Ошибка Direct3D initialization error при запуске игры. Что делать?
- Что делать с ошибкой Direct3D
- Обновление DirectX
- Проблема с драйвером видеокарты
- Используйте режим совместимости
- Anno 1701 Ошибка: не могу инициализировать Direct3D — Решение
- Известная проблема на Windows:
- games maker Все о создании игр и не только
- Direct3D Урок 01: Инициализация приложения
Ошибка Direct3D initialization error при запуске игры. Что делать?
У меня в Windows 10 при запуске некоторых игр появляется ошибка «Direct3D initialization error». Windows шла вместе с ноутбуком, версия «Домашняя для одного языка».
Скажите, может ли эта ошибка быть из-за версии Windows, и как ее исправить?
Вообще, подобная ошибка не редкость, особенно после переустановки Windows (в вашем случае, после покупки ноутбука, так как в магазинах редко устанавливаются все необходимые библиотеки и драйвера, необходимые для комфортной работы устройства).
Появляется она, как правило, после попытки запустить какую-нибудь игру — либо сразу, либо в игре будет просто черный экран, а свернув ее вы увидите это окно.
В этой статье остановлюсь на основных причинах появления подобной ошибки, и покажу на примере как от нее избавиться.
Типичный вид ошибки
Что делать с ошибкой Direct3D
Обновление DirectX
Самая частая причина появления подобной ошибки связана с отсутствием библиотеки👉 DirectX. Причем, не обязательно, что она у вас не установлена, возможно у вас просто нет какого-то конкретного файла из библиотеки.
DirectX — специальная библиотека для программистов. Используется в большинстве случаев при разработке игр. Пакет доступен для установки и обновления на официальном сайте Microsoft. Более подробно от этом можете узнать на сайте Википедии.
Поэтому, рекомендую посмотреть требования запускаемой вами игры, и посмотреть, какая версия DirectX установлена у вас на ПК.
Чтобы узнать, какой DirectX у вас на ПК, нажмите:
- сочетание кнопок Win+R, чтобы открылось окно » Выполнить «;
- далее впишите команду dxdiag и нажмите Enter (см. скриншот ниже).
Запускаем средство диагностики DirectX (DxDiag)
Далее во вкладке «Система» будут представлены все необходимые данные: версия вашей ОС Windows, ваша видеокарта, звуковое устройства, версия BIOS, и версия DirectX (см. на красный квадрат на скрине ниже) .
Средство диагностики DirectX / Кликабельно
Для обновления DirectX на сайте Microsoft есть специальный веб-установщик. Перейдите на нужную страницу и скачайте его. Далее запустите, согласитесь с условиями лицензионного соглашения, и ждите пока работает мастер.
Принятие условий лиц. соглашения DirectX
В конце операции вы должны увидеть сообщение о том, что установка DirectX завершена, нужные пакеты обновлены и пр. Либо, как вариант, мастер сообщит вам о том, что новая версия DirectX уже установлена и в обновлении не нуждается.
Рекомендую после этого перезагрузить компьютер, а затем попробовать запустить игру.
Установка DirectX завершена
Как правило, после такого обновления, игра начинает работать как нужно.
Если у вас нет интернета (либо он медленный или сайт Microsoft недоступен, выдает ошибку и т.д.), DirectX можно обновить с помощью игр: почти на половине дисков с играми есть новая версия DirectX (прим.: новая на момент запуска игры, конечно) . Поэтому, вам достаточно взять более-менее современную игру и установив ее, обновите DirectX.
Проблема с драйвером видеокарты
Если ошибка все так же появляется, возможно ваша видеокарта отключена в диспетчере устройств (такое может быть, например, у ноутбуков с 2-мя видеокартами), либо у вас просто не обновлены/не установлены драйвера на видеокарту.
Как проверить наличие драйверов и включена ли видеокарта
Самый простой способ, воспользоваться диспетчером устройств. Чтобы его открыть:
- нажмите кнопки Win+R;
- далее введите devmgmt.msc и нажмите Enter.
Запуск диспетчера устройств — devmgmt.msc
Далее откройте вкладку «Видеоадаптеры» , и посмотрите, все ли видеокарты включены, и не горит ли напротив них желтый восклицательный знак (указывающий на проблемы с драйверами, пример — ).
Ниже на скриншоте показано, что один видеоадаптер отключен и не задействован. Часто ошибка с Direct3D связана как раз с этим.
Intel HD включена, NVIDIA выключена
Чтобы включить адаптер, просто щелкните по нему правой кнопкой мышки и выберите функцию «Задействовать» . Пример на скрине ниже.
После этого перезагрузите компьютер, затем попробуйте открыть игру.
В некоторых случаях одна из видеокарт может быть отключена в BIOS компьютера (например, если у вас на ноутбуке стоит дискретная и встроенная видеокарты) . Чтобы проверить так ли это, зайдите в BIOS, обычно, в разделе MAIN можно найти режим работы графики (Graphic mode). Пример показан на фото ниже.
👉 Кнопки для входа в BIOS для разных производителей ноутбуков/ПК — см. инструкцию
Как обновить драйвера на видеокарту:
- Способ №1 : зайти на официальный сайт производителя вашего ноутбука и скачать их оттуда. Если не знаете точную модель ноутбука, воспользуйтесь программами для определения характеристик компьютера;
- Способ №2 : воспользоваться специальными программами для автоматического поиска и обновления драйверов. Самый простой и быстрый вариант, на самом деле. К тому же, программы проверят необходимые библиотеки для игр (например, Drive Booster, рекомендую);
- Способ №3 : работать в ручном режиме, через диспетчер устройств. Более подробно об этом см. здесь.
Используйте режим совместимости
Не так давно я тестировал ноутбук с относительно новым процессором AMD Ryzen 5 2500U и столкнулся с одной интересной особенностью.
Обновил DirectX, установил все необходимые драйвера, различные пакеты и дополнения к играм — однако, часть игр не запускалась, показывая ошибку Direct3D. (особенность: все игры были старыми, что наводило на разные мысли. ) .
Довольно сильно я был удивлен, когда открыл свойства исполняемого файла игры, перешел во вкладку «Совместимость» и поставил галочку напротив пункта «Запустить игру в режиме совместимости с Windows XP SP 2» — игра стала нормально работать, никаких ошибок, связанных с Direct3D, больше не было.
Примеры, что нужно сделать, приведены на скринах ниже.
Открываем свойства исполняемого файла игры
Запустить игру в режиме совместимости с Windows XP SP 2
Как запустить старую игру на новом компьютере — см. способы и примеры
PS
Если ничего не помогло из выше написанного, то также рекомендую еще обновить пакет Microsoft Visual C++ и NET Framework.
На этом все, всем всего доброго!
Первая публикация: 19.03.2017
Статья откорректирована: 17.12.2020
Источник
Anno 1701 Ошибка: не могу инициализировать Direct3D — Решение
Anno 1701 — Одна из лучших стратегий и лучший экономический симулятор 2007 года. Как и предыдущих частях концепция остается неизменной — торгуйте, воюйте и развивайте свои города.
Системные требования:
√ Операционная система: Windows XP / Vista / 7
√ Процессор: Intel Pentium 4 2,4 GHz, AMD Athlon 64 2400+
√ Оперативная память: 1 Гб (XP) / 1 Гб (Vista / 7)
√ Видеокарта: GeForce 6600 GT или Radeon 1600 XT
√ Звуковая карта: Совместимая с DirectX 9.0c
√ Свободное место на жёстком диске: 3 Гб
Описание:
Когда в Германии настаёт время выхода очередной серии игры из серии Anno, каждый десятый житель этой страны бросает все свои дела и бежит в магазин и покупает заветную коробочку. Эту стратегическую серию можно назвать тем редким случаем, когда каждая следующая игра значительно превосходит предыдущую. Anno 1701, третья игра серии, посвящена XVI–XVII векам: эпохе Просвещения и великих открытий. Всё здесь выполнено в классической немецкой последовательности: отполированная до блеска модель экономики, идеально оформленная графика, хрустальная музыка. Это самая лучшая градостроительная стратегия на сегодняшний день, аналогов которой Вы нигде не найдёте. По версии IGN.com она является лучшей экономической стратегией 2006 года.
Известная проблема на Windows:
Запускаем игру: выскакивает во время загрузки Anno 1701 сразу после game initialization ошибка «не могу инициализировать Direct3D»
Причина Anno 1701 использует разрешение 800х600 32bit.
Решение 1: находите в папке с установленном игрой файл Engine.ini открываете его в Блокноте
ищите строчки и меняйте значения на 800 и 600 соответственно.
или используйте этот фикс
Решение 2: обновить directX и драйверы вашей видеокарты
Источник
games maker Все о создании игр и не только
12 марта 2010 в 15:45
Direct3D Урок 01: Инициализация приложения
Привет всем! Если вы читаете эту статью, вам очень хочется попробовать себя в роли не простого игрока, а полноценного разработчика игр. Прочитав данную статью вы научитесь Инициализировать Direct3D девятой версии.
Для получения «эффекта» от этой статьи вам необходимо обзавестись:
1. MicroSoft Visual C++ 6.0. Я пользуюсь шестой версией, но теоретически исходники должны скомпилиться и под более поздними версиями.
2. DirectX 9.0 SDK (Software Developement Kit). Взять его можно с официального сайта Microsoft, а именно здесь.
Правда весит он НЕСКОЛЬКО-СОТ-МЕГОВ:( Поэтому для тех кто не имеет скоростного интернета, я выложил библиотеки и заголовочные файлы DirectX 9.0:
DX9.0_Include.rar — (
987Kb) Header’ы для директаикса.
DX9.0_Lib.rar- (
4341Kb) А здесь библиотеки.
С ними вы сразу же сможете начать программировать программы под любые компоненты DirectX 9.0
Да, и на последок: если вы не скачивали SDK, а брали от сюда хедеры и либы, то, чтобы ваш VisualC++ нашел их надо сделать следующее:
1. Открываем MSVisualC++ 6.0
2. Идем в Tools->Options.
3. Там идем в закладку Directories
4. В Show directories for: выбираем Include files
5. В списке Directories: добаляем путь до папки, в которую вы распаковали архив DX9.0_Include.rar
6. В Show directories for: выбираем Library files
7. В списке Directories: добаляем путь до папки, в которую вы распаковали архив DX9.0_Lib.rar
8. Жмем OK. Теперь ваш компилятор готов к работе.
Вот и всЁ. Приступим.
Чтобы начать создание нашей супер-пупер:) игры надо создать новый проект. Делается это так:
1. Загружаете MicroSoft Visual C++ 6.0.
2. Идете в меню File->New.
3. Из списка возможных типов проектов выбираете Win32 Application.
4. В поле Project name вводите название проекта (например, MyFirstProgram).
4. В поле Location вводите путь где будет создана папка с вашим проектом.
5. Кликаете на кнопке OK.
6. Выбираете An empty project.
7. Кликаете на кнопке Finish, затем OK.
Все проект создан. Теперь добавим первый файл, в котором мы будем набирать код нашей программы:
8. Идете в меню File->New.
9. Из списка выбираем C++ Source File.
10. В поле File name вводим название файла (например, main).
11. Жмете OK.
Все теперь можно приступать к работе!
Сначала включаем библиотеки:
А теперь заголовочные файлы:
Далее идут переменные
Далее идут переменные отвечающие за работу с Direct3D
У нас в приложении будет несколько функций. Это:
1. WinMain( HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) — С нее начинается выполнение нашей программы. В ней создается наше окно, инициализируются все объекты и т.д.
2. MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) — Обработчик сообщений поступающих нашему окну от Windows.
3. bool AllInit() — Здесь производится инициализация всех необходимых нам интерфейсов.
4. void AllShutdown() — А здесь — их удаление.
5. bool InitD3D(int width, int height, bool fscreen) — Эта функция будет инициализировать наше устройство рендеринга — g_pd3dDevice.
6. bool ResetWindow(int width, int height, bool fscreen) — Этой функцией можно изменить наше окно. Например, можно перейти из оконного режима в полноэкранный или изменить размеры окна.
7. Функция void ReSizeD3DScene(int width, int height) будет изменять пропорции экрана при изменении размеров окна, чтобы изображение оставалось неизменным.
8. Две функции bool Cleanup() и bool ReInit() пока нам не нужны.
9. И наконец самая важная (для нас) функция void Render() — Она рисует нашу сцену. Однако пока кроме очищения экрана в различные цвета (для того, чтоб вы видели, что все работает) она не делает, но вскоре всЁ изменится и тогда.
А пока рассмотрим эти функции поподробней:
Итак функция WinMain:
Следующей функцией, которую мы рассмотрим будет InitD3D, инициализирующая Direct3D 9.0:
И на последок рассмотрим рендеринг ( Render ).
Управление:
Esc — Выход
F1 — Переключение между полноэкранным и оконным режимами.
Также приложение хорошо «реагирует» на Alt-Tab.
Источник