Пятница, 29 Марта 2024, 01:44

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » C++ OpenGL Directx (С++)
C++ OpenGL Directx
elianyyfДата: Вторник, 06 Мая 2014, 12:00 | Сообщение # 1
был не раз
Сейчас нет на сайте
Знаю что есть куча вопрос на эту тему, но те, что я находил, либо не давали ответа на мой вопрос, либо ответы 2008-2009 годов, что не гуд. Написал такую же тему, только в другом разделе, никто не отвечает, может не туда написал, решил сюда тоже выложить.
Собственно вопросы:
1)Вот допустим я изучил с++, взялся изучать Directx, какие возможности его? Я как бы не могу понять самую структуру написания игры. В Directx можно ли совать 3д модели, сделанные в том же 3д максе? Как создавать текстуры, уровни и интерфейс пользователя, не думаю что с++ и директа или Опена хватит для создания игры, хотя об этом только и слышу.
2)Чем отличается Directx и OpenGL, что лучше? В одной статье обосрали Опен в другой Директ, сиди и думай что юзать. Говорят что ОПен плохо стал поддерживатся но он мол кроссплатформенный.
3)Где создается сам мир игры, как и где это все рисуется, что бы заранее знать с чем придется иметь дело?
4)По поводу библиотек, кучу нашел, но не знаю какие толковые, кому не сложно назовите пару нормальных библиотек с норм документацией.
5)Можно ли на с++ писать не только под виндовс игры? Нашел разные ответы, не понятно кому верить.
6)Последовательность изучения книг по с++(Например с++ для чайников, 21 день, Страуструп), нашел на форуме только какие есть, хотя и в гугле мог бы найти, а правильную последовательность.

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

Движки не предлагайте, их всех слышал, в планах другие вещи.
Поиск на форуме юзал, не нашел конкретных ответов.

Спасибо.
FimoksДата: Вторник, 06 Мая 2014, 15:19 | Сообщение # 2
частый гость
Сейчас нет на сайте
1) Сам графический апи рисует примитивы(полигоны). Модели приходится самому открывать, разжимать, потом отрисовать полигоны и если там есть анимация то ещё и самому все двигать. Модели создаютmя в 3д максе(блендере), текстуры в фотошопе(гимпе) (бывают процедурные текстуры), для уровней пишешь свой редактор.
2)директ содержит апи для ввода, звука, интернета... В общем полностью все для игр. Хорошая справка, поддержка.
огл только для графики, новичкам труднее разобраться. Здесь можно спорить без конечно, на самом деле оба хорошо работают, и особо заморачиватmся не стоит, попробуй сам.
3)Движок читает файл карты и делает как там написано. Ты либо берешь движок с уже готовыми картами и их загрузкой или придумываешь свой формат и редактор к нему.
4)все зависит от того, что ты хочешь.
5)виндовс, линукс, мак ос. При желании можно и другие оси, но несколько сложней.
6)хахахахахаха... Ну да как то так, страус труп обязательно к концу. ну и по патернам и алгоритмам книги, а то щас много программистов решающих задачи через костыли...
онлайн? ну как минимум изучить работу с сетью или готовую библиотеку.
Напиши по конкретнее, я смогу больше написать, а то тема то большая.


RostakaGmfunДата: Суббота, 07 Июня 2014, 14:24 | Сообщение # 3
был не раз
Сейчас нет на сайте
2) Если говорить о вечном споре "DirectX vs OpenGL", могу сказать, что сравнивать надо не DirectX и OpenGL, а именно Direct3D и OpenGL. Одним из преимуществ OpenGL над Direct3D является, конечно же, кроссплатформенность. Среди отличий следует отметить, что OpenGL - сишная АПИ, вто время как АПИ D3D - объектно-ориентированный. Если сравнивать современные версии обеих графических АПИ, то можно выделить общие элементы - буфферы, текстуры и шейдеры. Просто создание и управленике этими ресурсами отличаются в D3D и OGL. В контексте последних происшествий (а именно политика Valve и Steam в отношении OpenGL, Linux и СПО), я бы не сказал, что OGL плохо поддерживается.
3) Сначала напиши классы для шейдеров, текстур, буфферов, из которых будет состоять класс объекта. Дальше напиши класс для игрового мира, куда будут добавляться объекты для отрисовки + класс камеры которая будет обновлять матрици вида и проекции. Для объектов можешь создать базовый класс, который будет представлять трансформацию и предоставлять виртуальные методы для обновления, отрисовки и уничтожения (освобождения ресурсов). В дальнейшем можешь рассмотреть вариант итеграции скриптового языка, например, Lua (интерпретатор Lua считается самым быстрым + есть много документации по биндингу Lua и C++).
4) О библиотеках. Первая потребность - создание окна, обработка событий. Тут выбор большой - SDL, SFML, GLUT, Qt, GLFW. Для загрузки текстур - DevIL или SOIL (для OGL, так как там нет поддержки для чтения форматов изображения, таких как JPEG, PNG, BMP, TGA). Для загрузки моделей - Assimp (или попробуй самому написать загрузчик, например, для OBJ). Для физики - Bullet, Nvidia PhysX, Newton.

Вместо собственного редактора рассмотри вариант написания плагинов для макса/блендера - так будет проще, если тебе требуется просто расставить объекты по местам

Для онлайн игр изучай сокеты.

Источник опыта: пишу собственный небольшой движок на C++/OpenGL3+/SDL2, раньше пробовал писать под D3D11/WinAPI


GitHub
Блог


Сообщение отредактировал RostakaGmfun - Суббота, 07 Июня 2014, 14:25
Форум игроделов » Программирование » C/C++ » C++ OpenGL Directx (С++)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг