Что лучше? Начиная с Аллегро или OpenGL

Я хочу, чтобы вы помогли мне решить проблему.

Я начинающий программист видеоигр. Я умею разрабатывать Flash, Unity, игры для Android и немного знаю CryEngine. Также я хочу разрабатывать 3D видеоигры в будущем.

Итак, я решил изучить библиотеку видеоигр, в которой я могу работать с C/C++. Но я должен изучить Allegro или OpenGL или другую библиотеку? Или я должен начать изучать программирование DirectX? Изучение программирования Allegro полезно (хорошая основа) или просто пустая трата времени?

2 ответа

Но я должен изучить Allegro или OpenGL или другую библиотеку?

Прежде всего: OpenGL - это не библиотека! Буква "L" когда-то означала библиотеку, но лучше обозначить ее как "слой", потому что это то, чем на самом деле является OpenGL в наши дни: слой между вашей программой и графическим оборудованием.

OpenGL - это не игровой движок, а не библиотека игровой графики. OpenGL - это низкоуровневый API рисования. Вы можете использовать его, чтобы рисовать точки, линии и треугольники причудливыми способами. Но в OpenGL нет ни сцены, ни объектов. Все это должно быть реализовано игровым движком. Написание игрового движка - очень тяжелая работа. Если вы действительно хотите пойти на это, я предлагаю вам взглянуть на исходный код Doom3, который был выпущен год назад.

Аллегро почти не имеет ничего общего с OpenGL.

Allegro - это базовая структура для простой разработки игр, предоставляющая элементарные 2D-графические примитивы, пользовательский ввод, текст, звук, таймеры и т. Д. Вы можете использовать OpenGL в Allegro, но нет тесной и специализированной интеграции.

OpenGL - это низкоуровневый API, специализированный для графики.

Если вы уже знаете Unity и CryEngine, придерживайтесь их. Было бы огромной трудностью реализовать хотя бы часть их функций, используя OpenGL самостоятельно. Это не значит, что вы не должны изучать некоторые OpenGL, даже ради любопытства и понимания того, как все работает на низком уровне.

DirectX ограничен платформой, и, хотя это правда, большинство игровых платформ поддерживают DX, мобильные платформы ARM находятся на подъеме, и DirectX на них не работает. OpenGL может соответствовать практически всему, что может предложить D3D, и он более переносим, ​​поэтому стоит инвестировать в API, если вы не сосредоточены исключительно на играх Windows. Тогда имело бы смысл изучить D3D, который немного проще в использовании.

Многие игровые движки, включая Unity, будут абстрагироваться от графического API и использовать лучшее, что предоставляет целевая платформа.

Кроме того, имейте в виду, что OpenGL недоступен в Windows 8 в режиме "метро", поэтому вам придется либо использовать D3D, если вы хотите расширенную графику в режиме метро, ​​либо использовать ANGLE и придерживаться более основного подмножества OpenGL, которое эмулируется с УГОЛОМ на вершине D3D.

Другие вопросы по тегам