Как сделать игру на directx

Добавил пользователь Евгений Кузнецов
Обновлено: 19.09.2024

Видел книги по программированию на Directx, но в названии книги написано создание 3d игр (хотя возможно в них проходят и 2d, если я ошибаюсь - поправьте). Можно ли где-нибудь обучиться созданию полноценных 2d игр?

можно ли создать переменную Session из страницы .aspx, чтобы с ней можно было работать в .asp ?
можно ли создать переменную Session из страницы .aspx, чтобы с ней можно было работать в .asp ?

Где можно прочитать: сходимость, равномерная сходимость и расходимость рядов с примерами, чтобы было понятно
Здравствуйте, где можно прочитать сходимость, равномерна сходимость и расходимость рядов с.

можно ли создать такой именованый пейп , что по нему можно было передавать данные по сети?
можно ли создать такой именованый пейп , что по нему можно было передавать данные по сети? как он.

Давай сначала определимся, на чём ты будешь рисовать и под какую ОС?
1. Под Linux/ Windows / Mac - пут ответ очевиден - Qt (для 3D в нём OpenGL)
2. Windows. Тут есть варианты: GDI, GDI+, DirectX, OpenGL, Qt и ещё несколько не особо популярных библиотек.

Раз ты создал вопрос именно в ветке DirectX, значит цель всё таки - рисовать в DirectX.
Изучать старьё ниже DirectX11 на данный момент нет смысла. В DirectX11 есть Direct2D, в нём можно с пол пинка рисовать 2D графику. Так же можно этим же Direct2D рисовать на текстурах Direct3D, да и много ещё его. В общем начни с него, пока что изучай простое рисование в Direct2D без Direct3D.

1. Книгу Кернигана, Ричи "Язык программирования С". Из этой книги должно понять указатели, функции, структуры, запись структур в файл функциями fread, fwrite.
2. Книгу Пецолда "Programming Windows"

Многие употребляют слово "движок". Для создания 2d игр, не нужно делать движок или разбирать готовые движки.Достаточно школьной математики.

Основным элементом 2d игры является графика, которая представляет изображение, состоящее из пикселей. Наложение изображения осуществляют функции BitBlt, StretchBlt, TransparentBlt, а загрузку изображения осуществляет функция LoadImage. Изображение загружается в DC, которое является абстрактным устройством и создается функцией CreateConpatibleDC. Выбор изображения осуществляется функциями GetObject, SelectObject. векторная графика рисуется функциями MoveToEx, LineTo. Пиксель отрисовывается функцией SetPixel.

Игровое поле представляет из себя матрицу, то есть двухмерный массив, которы объявляется двойным void** указателем. Динамическая оперативная память выделяется оператором new, что позволяет использовать всю оперативную память в наличии.

Для того, чтобы начать программировать на DirectX нужно скачать DirectX SDK и скомпилировать примеры (samples, tutorials), которые идут вместе с примерами. Начать лучше с изучения DirectX 8, так как он поддерживается Windows XP без установки дополнительных библиотек, и его будет вполне достаточно для изучения.

Возможно, изучать готовые движки, в сети есть исходники игрыl quake, quake 2, quake 3, doom 3, half life 2, unreal, cryengine.

Я сомневаюсь, что ответы на форуме помогут вам сделать 2d игру. Я сам был в такой же ситуации в 2001 году, когда я начал программировать. я не смог сделать даже тетрис, и у меня не было даже идей, как он делается. Вы находитесь в таком же положении. Как тогда объяснить?

Игру какого типа из имеющихся вы хотите сделать? Сперва нужно попробовать сделать римейк существующей игры. Вы не знаете, с чего начать, это понятно, но, чтобы попытаться объяснить базовые вещи, нужно знать тип игры, которую вы хотите сделать. Эти ответы, что тут пишут, они не помогут

Относительно недавно начал заниматься графикой, и уже как неделю, пока болел, долбил DirectX->Direct3D по книгам:
1. "Введение в программирование трехмерных игр с DX9" Франк Д. Луна.
2. "DirectX и искусство программирования" М. Фленов.
3. "Programming roling playing games with DirectX" Jim Adams. (2 издание)
4. "3D-ландшафты в реальном времени на С++ и DirectX9" Г.Снук.
Работы предстоит очень много, но я никуда не тороплюсь. Этой темой хочу помочь и себе, и таким же как я (новичкам в этом деле), и возможно тем, кто более опытен (свежим взглядом на вещи).
Я начал с малого - с определения возможностей видеокарты и инициализации Direct3D, а так же сегодня начал, сегодня закончил и проверил на работоспособность так сказать часть визуальной системы движка (работа с камерой, установка локальных координат объектов в мировые координаты, установка проэкции на монитор, т.е. все, что требуется для корректной отрисовки объектов).
Хочу поделиться тем, что разработал, и заодно услышать критику.

У вас есть план, цель, концепция, идея?
Может надо начать именно с этого?
Сначала достаточно абстрактно описать общие моменты, а в дальнейшем детализировать и реализовывать в виде кода, наметить план работ.

Я начал с малого - с определения возможностей видеокарты и инициализации Direct3D

“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!

Я, как уже писал, в этом новичок, DirectInput второй на очереди. А с инициализации и камеры начал потому, что параллельно я изучаю и визуальную часть (импорт *.X, шейдеры, эффекты), и мне в первую очередь необходимо видеть, что я делаю. Как только я набираюсь опыта, то пытаюсь написать какую-нибудь примочку к будущему движку. Вот такая логика =) План работ есть.

След. шагом по идее должен быть простой фрейм-ворк с кубиком в сцене.
Или у вас что-то более грандиозное готовится?)

“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!

.pixel, хотел со звуком поработать, но оставил на потом и решил всё-таки взяться за построение местности уровня (пока тестового, ничего фееричного). До конца этого месяца исходников точно не покажу.

Уже всё-таки на операцию умножения меньше, а если данный метод будет встречаться часто, то это будет существенная экономия времени.
И ещё.

DirectX входит в состав Microsoft Windows. Это группа интерфейсов API (интерфейсов прикладного программирования), которые разработчики могут использовать для 3D-графики, видео, мультимедиа, звука и функций геймпада в Windows. Многие игры в Windows используют Direct3 DirectX для графики. Если они этого не делают, они используют межплатформенные OpenGL или API Vulkan. Другие неигровые приложения могут использовать DirectX для таких функций, как 3D-графика.

Windows 7 включает DirectX 11, а Windows 10 – DirectX 12. Когда разработчики разрабатывают игры, они выбирают версии DirectX, которые хотят использовать. Например, игра, написанная только для DirectX 11, не будет работать в Windows XP, где последней версией является DirectX 9.

Надпись – Microsoft DirectX 12

Как проверить версию Directx в системе Windows

Видеокарта не поддерживает DirectX 11 что делать

Оповещение операционной системы о невозможности запустить игру ввиду отсутствия поддержки DirectX 11

Игровые проекты и DirectX 11

Компоненты DX11 впервые были представлены в далеком 2009 году и вошли в состав Windows 7. С тех пор вышло немало игр, использующих возможности данной версии. Естественно, эти проекты невозможно запустить на компьютерах без поддержки 11 редакции.

Видеокарта

Прежде, чем планировать установку какой-либо игры, необходимо убедиться в том, что Ваше оборудование способно использовать одиннадцатую версию DX.

Подробнее: Определяем, поддерживает ли видеокарта DirectX 11

Подробнее: Переключаем видеокарты в ноутбуке Включаем дискретную видеокарту

Драйвер

В некоторых случаях причиной сбоя может стать устаревший драйвер графического адаптера. На это стоит обратить внимание, если было выяснено, что карта поддерживает необходимую редакцию API. Здесь поможет обновление или полная переустановка программного обеспечения.

Подробнее: Обновляем драйвера видеокарты NVIDIA Переустанавливаем драйвера видеокарты

Заключение

Пользователи, сталкивающиеся с подобными проблемами, стремятся отыскать решение в установке новых библиотек или драйверов, при этом скачивая различные пакеты с сомнительных сайтов. Такие действия ни к чему не приведут, разве что к дополнительным неприятностям в виде синих экранов смерти, заражении вирусами, либо вовсе к переустановке операционной системы.

Помогла ли вам эта статья?

При запуске Crysis3 выбрасывает вот это — You need a DX11 capable GPU to play Crysis 3

Решение по ошибке с DirectX в Crysis

1. Пуск — Панель управления — панель управления nVidia

Если данный способ не помог, ниже

Что делать, если видеокарта не поддерживает DirectX 11

Компонент DirectX отвечает за обработку графики в видеокарте и вывод изображения на монитор. На данный момент он задействован в основном в играх. Множество современных тайтлов требуют для своего запуска библиотеку ДиректИкс 11. Если она отсутствует в системе, то возникнет соответствующая ошибка.

Совместимость DirectX 11

Установка данного компонента возможна для операционных систем от Майкрософт не младше Windows 7. При этом графический адаптер должен его поддерживать. Для современных компьютеров вопрос совместимости в данном случае не стоит. А вот со старыми ПК могут возникнуть проблемы.

Узнать, какие видеокарты поддерживают DirectX 11, можно на официальном сайте производителя. В сегменте игровых решений преобладают две компании: AMD и Nvidia. В линейке устройств каждой из них присутствуют модели, совместимые с одиннадцатой версией Дайрект Икс. Но информацию нужно уточнять в технических характеристиках конкретного устройства.

Соответственно, для начала нужно узнать модель видеоадаптера, установленного в компьютере. Порядок действий будет одинаковым для всех операционных систем (начиная с Windows 7):


Появится окно подробных сведений о системе.

Теперь откройте страницу производителя в Интернете и найдите технические характеристики нужного устройства.

Поиск видеокарты в Браузере Windows 7


В частности — поддержку DirectX 11. Если с этим пунктом все в порядке, то ошибки с инициализацией компонента при запуске игры не возникнет.

Отсутствие поддержки

Что же делать, если видеокарта не поддерживает Директ Икс одиннадцатой версии? К сожалению, никакими программными хитростями проблему не решить. Совместимость напрямую связана с технической составляющей. Поэтому остается только отказаться от работы в приложениях, требующих данный компонент, или обновить видеокарту.

Что делать если видеокарта не поддерживает directx 11

DirectX представляет собой интерфейс прикладного программирования (application programming interface или API) для операционной системы Windows. Это программно-аппаратный комплекс, разработанный для работы с мультимедиа. В основном, говоря об этом комплексе, подразумевают работу с графическими приложениями.

Первый пакет DirectX был выпущен в далёком 1995 году вместе с Windows 95. С тех пор каждая новая версия пакета регулярно выпускается с новыми продуктами от Microsoft.

Одной из особенностей данного интерфейса является то, что его реализация не является исключительно программной. Для корректной работы приложений, написанных под него, необходимо наличие соответствующих устройств. Грубо говоря, чтобы реализовать какие-то функции трёхмерной графики, совместимые с DirectX определенной версии, видеокарта также должна быть с ней совместима.

Аппаратная реализация DirectХ 11 была реализована в 2009 года в видеоадаптерах Radeon серии 5800 и в конце 2010 года в GeForce серии 400. В настоящее время данный пакет уже является устаревшим, поскольку спустя 4 года были выпущены видеокарты с поддержкой DirectX 12.

Подавляющее большинство современных видеоадаптеров поддерживают 11-ю версию данного пакета, но многие более старые карты могут его и не поддерживать.

Что делать если видео карта

Определение совместимости directx 11

Узнать, какой пакет Direct Х 11 установлен в операционной системе можно достаточно просто – необходимо использовать стандартную программу диагностики dxdiag.exe

На первой же странице будет отображена поддерживаемая программная версия продукта.

Узнать, какой DirectХ поддерживает видеокарта можно при помощи любого приложения системной диагностики, например, AIDA.

Внимание! Узнать, какую версию DirectХ поддерживает видеоадаптер проще всего на сайте производителя, ознакомившись с его спецификацией.

Возможные причины и методы их устранения

Причин, по которым не работает DirectХ может быть две: аппаратная и программная. В последнем случае всё решается просто – нужно установить последнюю версию библиотеки (скачивается с сайта Microsoft) или установить самые новые драйверов видеоадаптера (скачиваются с сайта производителя).

Проблема с аппаратной частью сложнее. Что делать если видеокарта не поддерживает directx 11? Скорее всего, что ничего. Если нет аппаратной части, поддерживающей 11-й DirectX, то, естественно, в полной мере API реализован не будет. Однако, существует возможность программной эмуляции данных функций.

При помощи программы dxcpl.exe можно провести эмуляцию любого пакета API вплоть до DirectX 12. Эта программа не входит в базовый пакет, а устанавливается отдельно.

При запуске приложения необходимо указать следующие параметры:

Важно! Программа dxcpl не всегда работает корректно. Связано это с тем, что не все аппаратные функции можно реализовать с её помощью, поэтому данный способ может не сработать и придётся менять видеоадаптер на более новый.

Причина 3. Неполадки в операционной системе

Что делать если видеокарта не поддерживает directx 11?

Всем привет! Сегодня я расскажу, что делать, если видеокарта не поддерживает DirectX 11 и как сделать чтобы видеокарта поддерживала эту версию DLL библиотек. То есть, как запустить игру если не поддерживают directx установленные в системе графические адаптеры.

Типичные ошибки пользователей

Еще одна проблема, почему не поддерживается нужная версия библиотек — некорректно работающие или криво установленные драйвера графического ускорителя. Рекомендую скачивать необходимое ПО только с официального сайта разработчика — Nvidia или AMD.

И последний вариант, когда ошибку можно устранить: вы давно не обновляли ни драйвера на видеокарту, ни сам Директ. Если игра использует какие-то свежие DLL, а это случается очень часто, приложение попросту не запустится. В большинстве случаев помогает обновление ПО.


Если все-таки не поддерживает

Если вы воспользовались приведенными выше рекомендациями, но все равно всплывает уже упоминаемая ошибка, советую проверить, поддерживает ли установленная на компе видеокарта directx 11 вообще.

Согласно моим наблюдениям, графический ускоритель, который не поддерживает 11‑й Директ, и по мощности, даже до минимальных системных требований большинства новинок не дотягивает.

С уважением, автор блога Андрей Андреев.

Что делать, если видеокарта не поддерживает DirectX 11

DirectX – это набор библиотек, раскрывающих потенциал графического адаптера и системы в компьютерных играх. С выходом новых версий ПО увеличивается производительность и улучшается графика. Многие проекты выпускаются с поддержкой более новых стандартов, поэтому владельцы старых видеокарт не могут оценить максимальные настройки графики. Сегодня мы поговорим о том, что делать, если видеокарта не поддерживает DirectX 11.

Можно ли включить поддержку DirectX 11?

Стоит начать с того, что поддержка DirectX реализована на аппаратном уровне. Производители NVIDIA и AMD на стадии создания видеокарты внедряют возможность работы с тем или иным ПО. В зависимости от выхода новых поколений графических адаптеров реализуется и поддержка DirectX. Если говорить конкретно об 11 версии, то большинство видеокарт, выпущенных после 2011 года, поддерживают данный стандарт. Производительность с DX11 в играх на бюджетных адаптерах того времени – это другой вопрос. Но запустить проекты, которые работают только с данным ПО, у вас получится.

Руководитель проекта, эксперт по модерированию комментариев. Задать вопрос

Большинство игр имеют несколько режимов поддержки API. Если ваша видеокарта не работает с DX11, то попробуйте выставить графические настройки в пределах DX9 или DX10.

Однако ряд компьютерных игр изначально работает только с DirectX 11, например, Crysis 3, графика в котором до сих пор на достойном уровне. Запустить данный шутер получится только после обновления оборудования.

Как проверить совместимость видеокарты?

Рассмотрим все способы определения характеристик графического устройства.

Ознакомиться с характеристиками

Один из простых вариантов – найти информацию о видеокарте по ее названию. Для этого вам нужно знать точную модель вашего оборудования. Если есть возможность, то найдите упаковку или инструкцию. Но этот метод подойдет только для новых устройств. Еще проще узнать модель системными средствами Windows:

Теперь остается воспользоваться официальным сайтом, поисковиком Google или Яндекс. Найдите полный список характеристик и посмотрите, какая версия DirectX поддерживается.

Указание в характеристиках DirectX 12 подразумевает поддержку всех предыдущих версий стандарта.

Сведения о системе

Сторонний софт

Еще один вариант ознакомления с возможностями – это утилита GPU-Z. Вам нужно скачать и запустить ее, после чего программа соберет сведения об установленной видеокарте. Нужная вам информация находится в пункте, который отмечен на представленном скриншоте:

Если вы проверили характеристики, и оказалось, что видеокарта и Windows поддерживают DirectX 11, следует обратить внимание на драйвер. Работа с данным стандартом может быть отключена из-за устаревшего ПО. Вам следует удалить текущий драйвер и скачать новый с официального сайта производителя.

Заключение

Теперь можно подвести итоги. Сначала проверяем характеристики видеокарты. Если она не поддерживает DX11 на аппаратном уровне, то с этим ничего нельзя сделать. Если поддержка имеется, то обновите драйвер или установите актуальную Windows 7-10.




Совместимость видеокарты с DirectX 11

Современные программы и игры могут требовать DirectX 11 для запуска или расширения своих возможностей. Установить данный компонент получится на ОС от Windows 7, но тут есть важный нюанс: не все видеокарты его поддерживают. Если у вас не самый новый видеоадаптер, то для начала стоит выяснить его совместимость.

Определение совместимости

Для разных версий Windows могут различаться способы определения совместимости видеокарты с тем или иным Директ Икс. Но есть один универсальный вариант, который подойдет для всех операционных систем от Microsoft.

Определить, какие видеокарты поддерживают DirectX 11, очень легко на официальном сайте производителя. Достаточно узнать модель видеоадаптера, подключенного к компьютеру. Эта информация всегда написана на коробке к графическому устройству, ПК или ноутбуку. Но часто она бывает утеряна.

Существует множество способов, как выяснить название видеокарты. Один из самых простых требует открытия Диспетчера устройств:

Контекстное меню Проводника Windows 7

Вызов Диспетчера устройств в Сведениях о системе


Отобразится полный список устройств, работающих в компьютере.

Видеоадаптеры в Диспетчере устройств

Теперь остается просто проверить совместимость. Наиболее достоверные сведения о технических характеристиках графического адаптера можно получить на официальном сайте производителя.

Воспользуйтесь формой поиска. В обоих случаях она находится в правом верхнем углу страницу. В поисковую строку введите название графического устройства и откройте его технические характеристики.

Поиск видеокарты в браузере Win 7

Причина 2. Устраняем проблемы с видеокартой


Запустив игру на компьютере с видеокартой без поддержки DX12, вы увидите ошибку. Мол, запустите игру без параметров -d3d12. Но никаких параметров нет.
На самом деле проблема решается просто. Нужно просто добавить в параметрах запуска строчку: -d3d11. И всё!
P.S на самом деле настройка DX12 есть в игре. Но как вы уберете её не запустив игру?







Палыч Роков
Не скажу что проект требовательный к железу я на средне-высоких в 40-75 фпс играю и кайфую


Aleks-zn
Если это пиратка, то зайди в свойства ярлыка и в поле объект после кавычек поставь прообел, а после него -d3d11.


avenger406
Если у тебя лицензия, то нужно в Стиме нужно нажать правой кнопкой мыши на игру в библиотеке и выбрать пункт "Свойства". Во вкладке "Общее" внизу есть строчка "Параметры запуска". Туда и пишешь без пробела -d3d11.



Эта игра одинаково подглючивает как в дх11, так и в дх12 если что


Такого не может быть, нужна виндоус 10, а дх12 поддерживался пускай и полуаппаратно ещё на кеплерах, это 600-я серия гтх'ов, даже ферми 500-я серия кое-как с ним работает, если у тебя ещё более древняя видяха, то не имеет смысла играть в эту игру - будут сильные лаги. Игра вообще в состоянии как-будто ранний доступ, может ещё патчами будут допиливать что-то


TopPCGamer
Ну да 1050ti 4гб с 32гб озу - игра подлагивает в экшене/движухе, хотя стабильность фпс на уровне 60-90фпс.. Странно.


DarkNezias_Gebeine написал:
Ну да 1050ti 4гб с 32гб озу - игра подлагивает в экшене/движухе, хотя стабильность фпс на уровне 60-90фпс..


По геймплею шлак ещё тот, по графике симпотно, но есть небольшие фризы, они раздражают, хотя в принципе играбельно




Палыч Роков
Фризы фиксятся отключением потоковой передачи текстур:
1. Windows + R
2. Вставляем

%LOCALAPPDATA%\Streumon\ Necromunda\Saved\Config\WindowsNoEditor\
(убери пробел перед "некромунда", местный форум запрещает писать слова длиннее 50 знаков).

жмём ентер.
3. Открываем Engine.ini любым текстовым редактором, я предпочитаю нотпад.
4. В конце дописываем:

Закрываем сохраняем. Микрофризы исчезли (кроме тех, когда подгружаются куски локации и игра кешируется).

Касательно самой игры, мне зашло.


не надо никакие win+r,
через мой комп заходим пользователи/ваше имя
/AppData/Local/Streumon
/Necromunda/Saved/Config/
/WindowsNoEditor


Space Мarine
Спс, реально помогло. Второй патч уже выходит, а опции отключения стриминга текстур в настройках всё ещё не завезли. Челы первый раз что ли игру на UE4 делают.


Space Мarine написал:
Закрываем сохраняем. Микрофризы исчезли (кроме тех, когда подгружаются куски локации и игра кешируется).


Помогает, только подгрузки кусков локаций довольно частые, вообще оптимизация игры одна из худших на УЕ4




Палыч Роков
Что за конфиг у тебя ?
У меня игра летает без фризов с выше описанными действиями. Конфиг в профиле.

Включил ФСР, что бы компенсировать просадку фпс из-за записи в 1080р 60 фпс с битрейтом 60 мбит, хотя ютуб всё равно отшакалил качество.

Вы пишете про плохую оптимизацию. Но ведь в игре офигительная детализация на локациях, куда не глянь, везде сотни и тысячи мелких объектов окружения. Практически какой объект не возьми, у него очень много мелких деталей и высокая проработка. И учитывая размер локаций в игре, я в целом понимаю, почему у игры не самые низкие требования.


ничего не подкрутили и не подкрутят, игре помогает только одно - установка на ссд, это первая игра, которой установка на ссд что-то даёт

i7-5960x@4375/4250 + rtx 2080s + 64 ram, играю в 4к с FSR на суперкачество, игре помогает только установка на ссд

Space Мarine написал:
Вы пишете про плохую оптимизацию. Но ведь в игре офигительная детализация на локациях, куда не глянь, везде сотни и тысячи мелких объектов окружения. Практически какой объект не возьми, у него очень много мелких деталей и высокая проработка. И учитывая размер локаций в игре, я в целом понимаю, почему у игры не самые низкие требования.


Оптимизации тут нет от слова совсем, это худшее, что я видел на УЕ4, при этом окружение практически всё статично, текстуры да, более-менее чёткие, но дизайн уровней убог до ужаса, по трейлерам выглядела как убийца дума, на деле полнейшая дичь и лютое УГ


И ещё, при выходе из игры проверяйте чтоб эта зараза не оставалась в процессах, она там реально висит и из-за неё потом любая игра запущенная после дико лагает, не мог понять почему у меня в Marvel Avengers стали просадки до 20 фпс, смотрю, а у меня эта некроманда галимая в процессах, убил вручную и фпс в Марвелах с 20 до 85 вырос сразу


dimenoz
Это то же самое, но медленнее.

По поводу дизайна уровней, это то, чему досталось больше всего похвал в Некромунде. И он действительно тут крутой и каноничный, это признавали даже те издания, которые в целом больше критиковали игру, чем хвалили. Поэтому словил ор с этой претензии :D

Читайте также: