Оригинал:
http://www.gamecareerguide.com/features/724/top_ten_tips_.phpАвтор: Noel Llopis
Перевод с английского: flexcreator
1. Пишите игры.
Это самое важное из того, что может сделать программист, желающий развиваться. Не имеет значения, какой язык вы используете, что это вообще за игра, и даже то, насколько в нее интересно играть.
Важно то, что вы получаете опыт полной разработки нескольких игр, проходя полный цикл от начала до конца, и получаете общее представление, каким образом все это работает. На мой взгляд, лучше работать над несколькими небольшими проектами, чем над одним масштабным.
Писать мод - это хорошо, но обязательно попробуйте реализовать несколько игр, используя вашу собственную технологию. Демо-версии таких игр укрепят ваше резюме.
2. Изучите основы.
Как игровой программист, вы будете постигать определенное число техник. Убедитесь, что вы умеете обращаться с матрицами, векторами и операциями над ними; вы также должны быть знакомы с базовыми структурами данных и алгоритмами, с фундаментальными основами разработки ПО и объектно-ориентированного программирования.
Если вы приобретете знания в этих областях, это позволит вам сконцентрироваться на разработке игры и не плавать в базовых понятиях.
3. Достигните как минимум среднего уровня владения C++.
Большинство игр все еще программируется на C++, и, чтобы эффективно работать в команде, вам потребуется средний уровень знания C++. Не задумывайтесь пока о том, чтобы мастерски овладеть этим языком. C++ полон грязных, темных углов, которые знакомы только тем, кто пишет стандарт.
Сконцентрируйтесь на написании твердого, чистого кода без излишнего трюкачества. Не гонитесь за конкретными API (DirectX, OpenGL, и так далее). Есть вероятность, что вам придется использовать другой API, или что он будет обрамлен в высокоуровневый интерфейс.
В качестве бонуса изучите другой, весьма отличающийся от C++, язык. Хорошие кандидаты: Python, Lua или Lisp. Они позволят вам по новому взглянуть на программирование, вырасти как программист, и, в зависимости от проекта, могут даже пригодиться в разработке игры.
4. Никогда не переставайте учиться.
Даже не думайте, что всем необходимым вещам вас научат в школе. Лучшие игровые программисты постоянно изучают все новое, даже после многих лет практики.
Всегда есть что изучать: новое железо, языки, техники, API, алгоритмы и многое другое. На сегодняшний день имеется достаточно материала по части разработки игр, поэтому нет достойного оправдания, чтобы не черпать знания из книг, журналов, сайтов и конференций.
5. Поддерживайте связь.
Мне сложно описать, насколько важны коммуникации при работе в команде.
Вам придется научиться эффективному общению, чтобы координировать усилия с другими программистами, чтобы объяснять художникам и дизайнерам, как работает ваш код, чтобы понимать, какая функциональность требуется другим членам команды, чтобы объяснять боссу, чем вы занимаетесь в настоящее время и выдвигать предложения по улучшению процесса разработки.
Как научиться лучше общаться? Выступайте с презентациями, обсуждайте вашу работу с другими людьми во время ланча, описывайте ваш приобретенный опыт в блоге, участвуйте в форумах и списках рассылок, касающихся разработки игр.
6. Инструменты торговли (Tools of the trade, хз, как переводить; термин, используемый в законодательстве о банкротстве - прим. flexcreator).
Изучение теории программирования и алгоритмов - это здорово, но когда дело коснется практики, вам придется использовать ряд инструментов на протяжении целого дня. Найдите хороший текстовой редактор, систему контроля версий и отладчик, с которыми вам было бы комфортно работать.
Не заморачивайтесь насчет того, совпадают ли ваши утилиты с теми, которые вы используете на работе, или нет. Важно знать, что вы можете сделать с их помощью, и как эффективнее их использовать.
7. Работайте в команде над большим проектом.
Если вы работаете над проектами один, вас многое будет шокировать, когда вы найдете свою первую работу в игровой индустрии. Во-первых, вас будет волновать, как ваш код работает с кодом других людей, во-вторых, вам также придется читать и модифицировать большое количество кода, написанного другими членами команды.
Если у вас нет возможности работать над большими проектами в рамках вашего курса, присоединитесь к существующему open-source проекту для получения такого опыта.
8. Играйте в игры и изучайте их.
Вы должны следить за самыми свежими играми, и за самыми последними технологиями. Не просто играйте в игры, изучайте их.
Постарайтесь определить, какая техника отрисовки теней задействована, или каким образом AI принимает данные тактические решения. Узнавайте больше о проектах, изучая постмортемы или почтовые рассылки, и старайтесь применять описанные техники к вашим игровым проектам.
9. Выберете специализацию.
Эффективный игровой программист обладает глубоким пониманием того, как различные игровые системы работают вместе: графика, искусственный интеллект, проверка столкновений, сетевая функциональность, пользовательский интерфейс, система ввода, физика и многое другое.
В начале вашей карьеры очень важно охватить как можно больше аспектов игровой разработки. В то же время, начинайте думать, какие области близки именно вам, и старайтесь сосредоточиться на них.
Через несколько лет вы сможете еще более углубиться и стать экспертом в определенной области.
10. Получите широкое образование.
Не бойтесь пойти по другой ветви и изучать вещи, не связанные напрямую с программированием. Широкое образование или даже хобби, не связанные напрямую с разработкой игр - полезный фундамент, который поможет вашей карьере самыми неожиданными способами.
Прежде всего, найдите себе применение и закончите образование настолько успешно, насколько сумеете. Во первых, вам и так это много даст, во-вторых, вы покажете потенциальным работодателям, что можете участвовать в разработке долгосрочного проекта и преуспеть в этом.