Работа в gamedev

Получил недавно в очередной раз вопрос, который вижу достаточно часто. И решил в этот раз не отвечать частным образом, а написать пост с моим ответом - в следующий раз буду просто давать ссылку на него.
Вопрос стандартен и банален: хочу делать игры, что изучать?
Но в этот раз вопрос задан в интересной форме, так что, думаю, будет интересно почитать и вопрос и ответ вместе.

Вопрос:

Хочется задать вопрос, которым тебя мучают наверно минимум 2-3 раза в  неделю… но он меня мучает не меньше, поэтому все таки задам:)

Коротко:
я хочу делать игры. Какой язык программирования выбрать?:)

Долго:
мне 19 лет, учусь на 2 курсе не программистской специальности в принципе по случайности, о которой теперь немного жалею.
Интерес к играм у меня наверное лет с 3, еще с консолей. И дальше по возрастающей… Потом программирование на паскале, дальше С# уже на первом курсе универа. Но это все лирика, уровень был, как можно догадаться крайне низким.
Год назад мне захотелось понять, смогу ли я "поработать программистом". Выбрал то, что интересовало на тот момент и было попроще - вебдев. Надо сказать, что веб меня увлек, теперь у меня есть довольно раскрученный аккаунт на одной из бирж для таких же code monkeys как и я:) Получил неплохие знания в области, в программировании, прочитал кучу книг…
В общем вроде бы ничего плохого, но недавно все таки понял, что удовольствия от этого никакого. Примитивный (в большинстве случаев), слишком "нишевые" задач, низкая оплата да и сам код - по уровню сложности в среднем это "записки веб дизайнера", а не что-то серьезное. Теперь мне даже кажется, что я впустую потратил почти целый год - графика, физика - это совсем другая область, насколько мне удалось поверхностно ознакомиться, которая требует знаний математики, геометрии. Php, sql, js были по сути бесполезной тратой времени.
Не хочу еще раз так же "промахнуться" - посоветуй, что стоит, а что не стоит изучать? И, если не затруднит, немного аргументов и парочку основных книг. Я понимаю, что направлений в геймдеве море и я задаю слишком общие вопросы, чтобы на них ответить, но всё-таки:)
Сейчас я начал с си++, многие (и ты тоже, по-моему) рекомендуют его для игр. С другой стороны, после твоего ответа о перспективности java и дотнета в интервью я как то начал сомневаться в правильности.
В общем, так как твое мнение мне очень интересно, я надеюсь, что ты посоветуешь мне что-нибудь:)

Ответ:
Действительно, направлений в геймдеве столько, что порекомендовать один язык, казалось бы сложно. Но на самом деле - нет.
Сейчас большинство игр делаются на C++ или C. Так что обычно требуется знание именно этих языков.
В то же время есть целые направления в геймдеве, где C++ вообще неважен - это браузерки и flash-игры. Там уже и опыт web-разработки бы не помешал. Я про эти направления знаю мало, поэтому посоветовать ничего не могу.
Есть еще огромный рынок казуалок, которые можно писать на чем угодно, например, на том же Java или на C#. Языки простые, а наличие бесплатных библиотек типа XNA делает их реально интересными платформами для разработки игр.
Кроме этого, все больше и больше программистов в геймдеве используют только скриптовые языки для работы - Lua, Python, Unreal script :) Они очень просты и специфичны - зависят от проекта. Любому программисту, имхо, изучить такой скрипт-язык под проект - плёвое дело. И, судя по вакансиям "требуется программист-скриптер", можно работать в геймдеве зная только скриптовые языки.

В итоге, я бы посоветовал сначала определиться с конечной целью. Если цель - работать в геймдеве, то стоит изучить C++ и потратить полгода-год на написание собственных маленьких игр. Хотя бы тетрисов, змеек, пятнашек и т.п. Это даст вам опыт разработки и завершения проектов, пусть и небольших. Вы изучите хоть какой-то набор базовых алгоритмов. А также наличие таких проектиков - это большой плюс на собеседовании.
Если ваша цель - создать игру-шедевр в одиночку или с минимальной командой, то изучайте flash или C# с XNA в зависимости от типа игры.
Кроме того, какой бы язык и направление вы не выбрали - регистрируйтесь и начинайте читать все профессиональные сайты, чтобы быть в курсе дел индустрии. Также на всех этих сайтах полно статей и профессиональных постов, которые позволят вам избежать многих граблей и велосипедов.
Вот несколько таких сайтов навскидку: http://gamedev.ru/, http://dtf.ru/ , http://gamasutra.com/, http://www.gamedev.net/.

Ну и самое интересное в конце - если кто-то расчитывает на большие зарплаты в геймдеве (по крайней мере в Российском), то он сильно ошибается. Если нужны деньги, то надо идти в биздев или в тот же вебдев. Геймдев - это фан, драйв, постоянное обучение и кранчи. Большие деньги в этот список не входят :)

Оригинал

3 комментариев к Работа в gamedev

  • Тоже учусь на 2 курсе, играть особо не люблю , но тоже пробывал свои силы в gamedev. Не особо приятная для меня специальность, написание софта мне ближе. Знание математики и геометрии должны быть на высоте , а у меня с этим не особо хорошо , поэтому наверное я и забил на это дело.

  • OpenDX

    “написание софта мне ближе”
    Игры - это тоже софт, но самый сложный из когда либо мною виданых

    ps Невозможно работать в Gamedev и не любить игры ! Что за проекты ты сможешь представить, не будь ты увлеченным игроком с верой в светлое будущее интерактивных развлечений ?

    А при незнании математики и геометрии
    только в McDonald’s работать !!!

  • SS

    Последний комментарий навеял воспоминания об одной из бывших работ, где Дима (отличный программист 1С) собирал бухгалтеров, а их было больше 30-ти, в том числе и главбухов, и вбивал в их головы БухУчет :)
    Программист обязан хорошо знать прикладную область и возможно намного шире чем специалист в данной области. :)

Ответить

 

 

 

Вы можете использовать эти HTML тэги

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>