Самое главное это иметь любопытство, интерес.
Возможно, проще и интереснее было изучение программирования, именно в области игр, ведь то что Вы запрограммируете - можно будет увидеть на экране в виде трехмерного или двумерного мира, передвигаться там или двигать предметы и мечтать о своей игре. Проще происходит процесс изучения, так как интересно создавать мир и устанавливать там свои законы и взаимодействия, а сложности языка программирования, математики, геометрии - идут на второй план, их становится проще изучать.
Поэтому нужно найти что-то интересное для Вас, какую-то конечную цель, например игры. Желание сделать свою игру. Тогда путь изучения программирования будет намного проще и осмысленнее.
Если же бесцельно изучать десятки книг, статей, курсов и кодов - толку никакого не будет, просто обрывки.
Играл в игры в юношестве, даже название помню: Might and Magic 6 ролевая игра. Эта игра и вызвала интерес к программированию. Стало интересно как она сделана, а также захотелось добавить денег своим персонажам :).
Путем поиска информации в поисковике, оказалось, что деньги и статистика персонажей хранятся в файлах-сохранялках игры и хранятся данные в шестнадцатиричном представлении чисел.
Как раз в школе рассказывали про двоичную систему счисления, десятичную, восьмиричную и шеснадцатиричную. Так что картинка потихоньку складывалась.
Существуют HEX-редакторы, это обычные редакторы текстовые, но умеющие преобразовывать и выводить данные в шестнадцатиричном представлении, а именно в нем и хранятся значения денег/статистик персонажей.
То есть теперь у меня был инструмент и знания, осталось только найти значение денег в игре и изменить их в файле-сохранялке. К примеру, в игре было 3556 золотых монет, преобразовываем это десятичное число с помощью калькулятора в режиме "Инженерный", в шестнадцатиричное: 0DE4.
Далее с помощью поиска ищем полученное значение в файле-сохранялке, и тут нюанс, что данные хранятся перевернутыми, нужно искать: E40D. Я хотел, чтобы у персонажа возникла целая куча золота, к примеру 100000 монет золотых, преобразовываем: 0186A0. Переворачиваем значение: A08601 и меняем вместо E40D. В итоге, мои персонажи страшно богаты :).
Правда, пропал быстро интерес к игре, так как скупил все самые лучшие вещи, изменил характеристики персонажей и всех перебил, но появился интерес к другому.
Решил попробовать другие игры, покопаться из чего они сделаны, где хранятся данные о состоянии игры, где и как хранятся 3D модели/текстуры и тд. А также узнал, что игры пишутся на языке C/C++. В те годы, думаю, это был единственный язык на котором делали серьезные игры, хотя C++ и сегодня используется для серьезных масштабных игр.
Исследуя эту тему все глубже, узнал, что в интернете есть игры с исходными кодами, например, тогда попался код от Warcraft 2. Как оказалось, сделана игра была на C языке. Просто в одном файле, содержался весь код игры.
Находил и другие игры, сложнее и с продуманной архитектурой кода - изучал их код. Параллельно нашел описание языка программирования C++ и изучал его.
Также очень полезная штука, это читать статьи только на английском языке по программированию. Почему-то изучать программирование на английском языке - интереснее, хотя это по моим ощущениям так. Но изучая с самого начала на английском языке - у Вас не возникнет сложностей в будущем. Английский язык должен стать Вашим языком-спутником в мире программирования.
Но, чем больше я узнавал, тем сложнее все это казалось.
Выручил меня форум разработчиков игр, нашелся там человек, что подсказал куда дальше копать дальше и какие библиотеки изучать. Так что регистрируйтесь на форумах тематических, обязательно кто-то там поможет советом.
Можно смотреть вакансии на сайтах работы, их популярность, размер оклада и отталкиваться от их требований.
Вы много всего узнаете, когда есть цель. Многое будет сбивать с пути, многие области программирования.
Просто научитесь получать удовольствие от процесса - будет легче :).