На данный момент изучаю язык программирования Python. Раньше думал, что геймдев это неприступная крепость, а чтобы в неё войти нужно быть как минимум титаном. Но решил поставить себе цель — разработка AAA-игр в 'тех' самых компаниях. Собственно что есть у меня сейчас? Опыт вёрстки, основы JS/PHP, знание математики и физики на уровне 11 классов и почти прочитанная книга Лутца "Изучение Python", ну и мне 16 лет. Когда-то выбрал для себя бекенд сторону, имея мысль что просто не потяну геймдев, но понял что я скорее буду терзать себя дальнейшие годы из-за того, что не выбрал что-то более интересное. И так, перейду к вопросу. На что мне нужно ориентироваться сейчас? После изучения python хочу поковырять какие-то либы для запиливания игр и попробовать написать что-то вроде простенькой рпг в изометрии, где просто апаешь себе уровень убийством монстров. Потом хочу перейти к C++, который я ещё и в нептуаколледже должен буду изучать. Параллельно с ним вникать в математику, алгоритмы и ковырять движки. Я что-то делаю не так? Подскажите как мне развиваться в этой области и что делать не стоит. Какую связку вообще используют для геймдева сейчас? Навека это C++, но есть ещё Python и C#, к которым прикручивают движки. Готов развиваться и разбираться с любыми темами, даже если это будет сложно, от вас мне нужно просто узнать, какой путь изучения геймдева лучше выбрать.
Роль(разработка ИИ, геймплей, сети и так далее) выберу немного позже, так как в любом случае нужна база(алгоритмы, математика, несколько языков). Возможно я не прав во всём, если это так, то прошу сообщить меня об этом.
Кхм. Забыл добавить насчёт "пути изучения". Подобный https://github.com/miloyip/game-programmer путь подойдёт? Зачастую такие карты представляют собой просто набор технологий, но здесь посложнее.
Александр Симонов, вот выучили Вы как работать с Adobe Flash и Action Script 3, а потом.... ОПА!
И абсолютно новый для Вас HTML5 нужно учить, чтобы делать те же задачи...
А потом мобилы (и другие платформы) и Unity. И та же история...
Что тут общего, что поможет Вам в изучении Flash, HTML5 и Unity? Ничего...
Всё нужно учить заново.
Тоже самое, касается и алгоритмов: с каждым годом всё больше новых алгоритмов разрабатывается на основе старых, используя оптимизации, основанные на глубоком машинном обучении.
Т.е., через 2-3 года - со своими знаниями уже как динозавр будешь, если не будешь обучаться новому изо дня в день.
Да-банально: алгоритмы сортировки - их туча и каждый для своей узкоспециализированной задачи и их оптимизации нет конца...
xmoonlight, Есть допустим в Unity компоненты, если понять как они работают, то это может пригодиться в совсем другой области. Есть допусти в frontend'е Redux с его стейтом - это очень крутой подход по своей сути его много, где можно применять. А теперь смотрите Redux рано или поздно умрет, Unity тоже, но подходы, паттерны и прочее - это проживет намного дольше. Реальный пример smalltalk, сейчас чет как-то не пишут на нём, но mvc фреймворков туча просто. Просто если не начинать разбираться в чем-то из-за того что на горизонте что-то новое замаячило не стоит, ИМХО
Александр Симонов, но согласитесь, что познавать подходы и паттерны через попытку освоить разработку игр ААА-класса - это нехилый overwork!
Все те же паттерны - можно сделать и на js-канвасе, чтобы получить понимание принципа работы для возможности последующего применения в ЛЮБЫХ инструментах.
xmoonlight, Ну есть же не только паттерны, это было как пример, есть куча около программистких вещей, для геймдева таких вещей на порядок выше. К примеру, физика, шейдеры, математика и т.д Просто тут от цели зависит, если человек ставит перед собой цель стать AAA разрабом, то ему нужно нырять с головой, читать, учить, писать, ошибаться, повторять, не сдаваться! Но если он посреди пути, поймет что ему это не сдалось, то у его остануться фундаментальные знания и они будут полезны однозначно.
Александр Симонов, так-то оно - так всё...
Но нужно понимать фундаментальные отличия: AAA-игр от остальных.
Известность бренда/компании и затраты на производство/выпуск игрового продукта - здесь, разумеется, не рассматриваются!
Вы - понимаете/знаете их?
И какие-же "фундаментальные отличия: AAA-игр от остальных." скажите нам?!
Во 2х - даже речь основная была, и с Александром Симоновым я соглашусь, про то что наработанные ранее навыки пригодятся в дальнейшем. Даже если привязыватся к unity, UE и конкретным версиям, в будущих версиях да будут доработки, новые инструменты, но оно все создается на основе существующего.. и если вы не знаете базы: математики, физики, алгебры и тп, не сможете юзать либы математически в правильной ситуации, физику не будете понимать куда прикручивать и когда.. не будете знать какие подходы к решению каких задач применить - вы не сможете применить какие-то классные тулзы и разработки новых версий unity, машинного обучения (применительно к чему?) и т.п.
TO ALL:
Мой личный опыт: я занимался изучением и JS, и BASIC в школе, программировал карты для wacraft3 и starcraft1, лет 13-14 назад в школе, и это позволило начать реально втягиваться в геймдев, и программирование вообще. Да сейчас не нужны разработчики на BASIC или JASS из warcraft3, но это офигенная база. Далее я изучал C# и вот уже больше 10 лет на нем то и дело пишу программы прикладные или игры для unity (в последние 4 года).