2009-11-17 4 views
3

Я вновь не новичок в программировании на C++, кто-нибудь может рассказать мне, как полезен SDK Direct-X и как он работает и как мы можем использовать его в игровом программировании. Я загрузил его и я нашел много заголовочных файлов, а документация также рассказывает о программировании игр.Direct-X в программировании на C++

+1

Возможный дубликат: http://stackoverflow.com/questions/1451973/good-books-or-tutorials-for-beginning-direct-x-with-c –

+1

Вы хотите получить больше опыта работы с C++, так что isn ' t просто куча файлов заголовков, но имеет смысл. Почему бы не написать текстовую игру, чтобы вы могли понять, как писать игру, а затем посмотреть на сложности графики. –

ответ

10

DirectX - это библиотека (большая коллекция классов, на самом деле), которая позволяет «разговаривать» с видеоадаптером, звуковой картой, клавиатурой, мышью, джойстиком и т. Д. Это позволяет сделать это намного эффективнее, чем другие «стандартные» функции Windows. Это важно, потому что игры нуждаются во всей производительности, которую вы можете получить, и DirectX может предложить в этом отношении много возможностей. Особенно, когда речь заходит о графическом программировании, потому что у него есть функции, которые позволяют использовать функции 3D-ускорения вашей видеокарты. У Windows эти функции по умолчанию отсутствуют.

с поддержкой DirectX SDK содержит:

  • документации для всех функций DirectX;
  • Учебники на языке C++, чтобы вы начали, если ничего не знаете;
  • Примеры приложений;
  • Необходимые файлы .h и .lib для добавления поддержки DirectX в вашу программу;
  • Отладочная версия DirectX (я думаю, я не так уверен в этом)
  • Редикс DirectX, который вы можете включить в свои собственные программы.

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

Btw - вы загрузили последнюю версию с веб-страницы Microsoft, а не 5-летнюю копию какого-либо веб-парня, не так ли?

+0

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

+1

Правда, но использование его напрямую было бы весьма образовательным. :) –

0

Я не совсем уверен, что вы просите, но Frank Luna's book на DirectX - очень хорошее введение.

Но если вы относительный новичок на C++, DirectX может быть слишком низким для того, что вы ищете. Я имею в виду, вы хотите создать красочный вращающийся куб, или вы хотите сделать полузаполненную игру? Предполагая последнее, вы, вероятно, хотите создать фреймворк, который абстрагирует детали низкого уровня как DirectX, так и OpenGL. Для этого я могу сердечно порекомендовать Ogre 3D. Только учебные пособия помогут вам начать работу, прежде чем вы это узнаете.

3

Ваш вопрос путь широк. DirectX может помочь вам создавать игры по-разному, что вы можете (учитывая, что вы новичок) себе.

Рендеринг (помещение материала на экран), ввод (реагирование на то, что происходит с пользовательской мышью/клавиатурой), сеть (для многопользовательской), чтение файлов, шрифтов, 3D-моделей, звук. Назвать несколько.

Я настоятельно рекомендую вам не пытаться писать что-то непосредственно, используя DirectX. Получение чего-то хорошего из этого - чрезвычайно сложная задача. Dont reinvent the wheel unless you plan to learn more about wheels. (колесо здесь - DirectX.)

Если вы просто хотите, чтобы встать и работает, и сделать Мир Warcraft 2, я предлагаю вам использовать Premade реализации DirectX (обычно называемые игровые движки), такие как Ogre, Irrlicht или HGE (проще, но только для 2D-игр) ,

Удачи, не сдавайся и не возвращайся позже с первым реальным вопросом. :)

+0

Мантра, которую я всегда слышал о развитии инди: вы можете либо построить игру, либо двигатель не так, как оба. –

+0

Что касается мантры, я больше не могу согласиться. У меня возникло соблазн опубликовать его, но я боялся, что просто написать такую ​​строчку и перейти можно было бы немного самоуверенно. – Mizipzor

1

Я хотел бы добавить, что «игровое программирование» не требует графического программирования. DirectX, как и OpenGL, обеспечивает основу для создания графического приложения; но, как уже упоминалось, это очень низкий уровень.

Как профессиональный разработчик игр, я бы не предложил просто прыгать в DirectX после изучения C++. Это трудная задача, которая будет двигаться медленно и обеспечит вам небольшую мотивацию для продолжения. Это определенно нужно помнить о вашем будущем; но на данный момент было бы более полезно сыграть с чем-то полным, возможно, начать с программирования геймплея.

Примечание: Помимо навыков C++ вам также понадобятся некоторые математические таланты. Основной проблемой являются линейная алгебра и тригонометрия.

Проверьте легкий двигатель, как Angel. Это довольно интуитивная отправная точка и достаточно маленькая, чтобы вы могли полностью понять, что происходит внутри нее.

Как всегда, сначала попробуйте сделать небольшие изменения и проекты для себя, а затем перейдите к более крупным и более сложным задачам!

Удачи вам!

Смежные вопросы