Что лучше? Начиная с Аллегро или 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.