Я программист на С++ с очень обширным опытом программирования на сервере. На данный момент мне очень скучно, и я решил заняться новой областью: программирование 3D-игр для учебных целей. Кроме того, я думаю, что этот учебный проект может оказаться хорошим резюме в будущем, если я решит работать в этой области.
Вместо того, чтобы создавать 3D-движок с нуля, я решил подражать точно так же, как я могу использовать существующий: World of Warcraft. Если вам интересно, почему (не стесняйтесь пропустить это):
- Это игра в реальном мире.
- Все текстуры, модели и то, что еще не сделано (мне не интересно узнать, как нарисовать текстуру с помощью Photoshop или что-то еще)
- Их форматы файлов были более или менее полностью реконструированы
- Уже существует идентичный проект с открытым исходным кодом (wowmapview), на который я могу посмотреть, есть ли у меня проблемы.
ok, это было длинное предисловие. Теперь мой главный вопрос: Должен ли я использовать DirectX, OpenGL, библиотеки обертки, такие как sdl или что?
Какой самый используемый в реальном мире?
И что-то еще, что меня озадачивает: World of Warcraft, похоже, использует оба! Фактически, обычно он использует DirectX, но вы можете использовать opengl, запустив его с помощью переключателя "-opengl" через командную строку.
Это что-то общее в играх? Почему они это сделали? Я думаю, что это большая работа, и, по моему мнению, никто не использует OpenGL (очень мало кто знает о секретном переключателе вообще).
Если это что-то обычно делается, программисты обычно создают свою собственную "оболочку" для 3D-движка, что-то вроде SDL, сделанного в доме, и на основе switch/#defines/whatnot решить, какую функцию API в конечном итоге вызывать (DirectX или OpenGL)? Или эта функциональность уже встроена в sdl (вы можете переключаться между DirectX и OpenGL по желанию)?
И, наконец, есть ли у вас какие-нибудь книги?
Спасибо!