Сложности в создании игр у вас будет три:
1) программирование, и C++ в частности - не лучший язык для изучения программирования, хотя как второй по счету язык - вполне подойдет. Как инструмент для разработки игр, плюсы, безусловно, лидируют.
2) компьютерная графика, и OpenGL в частности - вам нужно будет хорошо разобраться, как рассчитываются изображения, и как собирается финальная картинка. Для разработки игр вам понадобится знание графического конвейера, шейдеров, понимание общих принципов растровой и векторной графики (что такое цвет, пиксель, растр, как задаются векторные примитивы), понимание принципов анимации (как рисовать движущуюся картинку).
3) математика, и линейная алгебра в частности. Операции с матрицами и векторами - это минимум, без которого даже 2d не сделаешь. Если захотите всяческие реалистичные эффекты - это еще и физика, в частности - механика. Прежде чем нарисовать летящий по баллистической траектории снаряд, нужно сначала рассчитать, ГДЕ он будет находиться на экране (в виртуальном пространстве) в каждый промежуток времени. Ну и так со всей начинкой игры. Вам следует четко понимать, что если вы не собираетесь брать готовый графический движок, то opengl вам сможет лишь нарисовать что-либо что вы ему скажете. Что рисовать и где - вы должны будете запрограммировать сами, во всех деталях.
Как уже сказал
GavriKos, геймдев - сложная область, можно сказать двигатель прогресса в технологиях развлечений. Конечно далеко не все разработчики игр участвуют в создании самых современных движков или крупнейших MMO-проектов, однако отставать в этой индустрии нельзя - только игры с оригинальной идеей могут позволить себе графику 10-летней давности, например.