» Главная страница
» Форум
» Новости
» Магазин
» Команда сайта
» Чат
» Гостевуха
» Карта сайта
» Обмен баннерами
» Друзья


» Взлом игр
» Создание игр
» Коды  
» Статьи
Файлы 
» Игровые утилиты 
» Карты 
» Разное 
» Патчи
Особые разделы 
» Counter-Strike 
» Gta: Vice City
   
» Геройский уголок
» Гараж
 

» Cделать стартовой   
» Добавить в избранное



Статьи

  С чего начать? 
  FAQ (часто задаваемые вопросы) для абсолютных новичков
  Как научиться делать игры

Flash
  Основы игростроения на Flash

GameMaker
  Chast (Для начинающих) - Часть №1
  Создание Игры-Лабиринта  
  Cоздание игры "Однорукий Бандит" или "Фруктовая машина" 
  Как научить компьютерного персонажа стрелять?

 

Профессия программиста в игровой индустрии  Автор статьи: CodeMasters

Это руководство о том, что вам лучше всего делать, чтобы получить профессию программиста видеоигр, предполагая, что это то, чем вы хотите зарабатывать на жизнь. 

Предположим, что вы все еще учитесь, возможно решая, какие предметы стоит изучать и какие навыки вам понадобятся. 

  Итак, как же мне начать? 
  Если вы хотите быть программистом в индустрии видеоигр, вам необходимо сильно любить программирование и видеоигры - в этом бизнесе тяжело работать, и вам предстоит прилагать огромные усилия. Ничего не получится без обожания видеоигр. Это и есть то, что больше всего имеет значение - любовь к играм и программированию, а также стремление к достижению успеха. Если у вас есть все это, то вы уже прошли больше половины пути. 
Для начала, я отмечу очевидное и скажу "научитесь программировать" - неважно, какой язык программирования вы выберете, важно изучить основные принципы. Принципы программирования имеют много общего у разных языков. Если вы раньше никогда не программировали, попробуйте начать с BASIC. Это простой язык для начинающих, и он даст вам хорошую основу многих принципов, используемых в программировании. PASCAL также является несложным языком для начинающих, который все еще изучают на многих компьютерных курсах. Когда у вас будет некоторый опыт, Java, C и С++ будут также хороши для изучения. 
  Получайте знания о компьютерном оборудовании - это очень поможет вам. Вам очень пригодятся знания о том, как работают процессор и видеокарта. Хотя компьютерное оборудование и отличается от платформы к платформе, но, опять же, существует очень много фундаментальных принципов. Память, регистры, DMA, стеки, буферы, вы найдете их на любой компьютерной платформе. Есть много интернет сайтов и книг, которые могут дать вам основные знания о том, как работает компьютерное оборудование. 
  Интернет - великолепный источник знаний о программировании игр, и существует много вебсайтов, посвященных различным аспектам этого вопроса. Используйте их для учебы. 

  Какие языки программирования мне изучать? 
  С и С++ наиболее популярны в игровой индустрии. Почему? Потому что они быстрые, мощные, и позволяют работать на достаточно низком уровне, чтобы можно было делать практически все, что нужно, однако, это языки достаточно высокого уровня, что позволяет обходиться без написания большого количества кода. В отличие от других языков, существуют версии С/С++ для практически каждой операционной системы, и довольно просто переносить программы от одной системы к другой. Это значит, что вы можете написать что-нибудь на С, и ваш исходный код может быть скомпилирован, для того чтобы получить исполняемые модули, которые будут запускаться на PC, PlayStation, XBox, и так далее. Другими словами, вам не нужно беспокоиться о характеристиках оборудования платформы, на которой вы работаете, компилятор берет исходный код и преобразует его в формат процессора вашей машины. 
Есть еще один язык, который полезно знать, работая в игровой индустрии - Ассемблер (ASM). Язык ассемблера это язык микропроцессора той или иной машины. Для PC, это как правило ассемблер Intel (также известный как x86). Игровые приставки используют другие виды процессоров (например на PS2 это MIPS, на Nintendo GameCube - PowerPC, а у XBox - Pentium III). 
  Ассемблер предоставляет самый низкий уровень программирования, и дает наибольший контроль над процессором, позволяя писать наиболее быстрый код. В настоящее время, основная часть кода (99%) в играх пишется на С или С++, но очень редко, в местах, где скорость критически важна, используется ассемблерный код, таким образом очень полезно владеть этим навыком. Программирование на низком уровне по стилю совершенно другое, по сравнению с высоким уровнем, и оно гораздо труднее, но как только вы изучите язык ассемблера для одного процессора, эти навыки можно легко будет применить и для языков ассемблера других процессоров. 
Также может оказаться полезным изучение таких языков, как Perl или Python. Это языки очень высокого уровня, позволяющие легко и быстро создавать небольшие служебные программы. 
Напоследок одно замечание. Хотя изучение других языков не причиняет вреда, Java практически не используется в программировании игр, и он слишком медленный. Сконцентрируйтесь на С и С++. 
Какое оборудование и программы мне нужны, чтобы начать? 
Приобретите относительно новый компьютер, с относительно новыми видео- и звуковой картой, и с большим жестким диском. Компьютер не обязательно должен быть самым лучшим из имеющихся, но не следует покупать и старье. И я очень рекомендую подключиться к интернет, так как этот полезнейший ресурс значительно ускорит ваше обучение. 
Вам следует использовать операционную систему Windows, так как большинство компаний используют именно ее. Если вы хотите поэкспериментировать с другими системами, например Mac, Linux - это хорошо, но к вашему резюме это ничего не прибавит. (Важно отметить - для большинства компаний. Некоторые разработчики используют Mac или Linux, но они в меньшинстве). 

  Вам также понадобится DirectX Software Development Kit (SDK). Это Microsoft API (Application Programming Interface) для разработки игр. Последнюю версию вы найдете на www.microsoft.com/directx. Вы можете загрузить ее бесплатно. DirectX сопровождается всеми библиотеками и документацией, которые вам понадобятся для того, чтобы начать программировать игры на вашем PC. Также имеется множество отличных "обучалок". Они очень полезны, для того, чтобы вы смогли начать писать ваш собственный код. 

   OpenGL - еще один 3D API, который также часто используется в разработке игр. (Например, id software используют OpenGL). Он также доступен бесплатно (www.opengl.org), и это еще один полезный навык, который вы можете приобрести. 

   OpenGL и DirectX служат для очень подобных целей - они позволяют программистам использовать оборудование для трехмерной графики и не беспокоиться о том, какая именно видеокарта подключена. Знание одного из этих API будет смотреться очень хорошо в вашем резюме, и еще лучше, если вы изучите оба. 

Какой компилятор использовать? 
Если вы можете позволить себе приобрести программное обеспечение для разработки, вам стоит обратить внимание на Microsoft Visual Studio. Visual Studio.NET является последней версией, и если вы можете, вам следует приобрести именно ее. 
Если у вас туго с деньгами, вы можете загрузить бесплатный компилятор Borland (http://www.borland.com/bcppbuilder/freecompiler) без визуальной среды (компилятор командной строки), или поискать в интернете бесплатный компилятор, такой как Dev-C++ (www.bloodshed.net). 

Если вы не используете операционную систему Windows, существует много других бесплатных компиляторов. 

  Академические навыки 
  Если у вас нет опыта в индустрии видеоигр, большинство работодателей потребуют от вас высшего компьютерного образования. Если ваши намерения насчет программирования видеоигр как будущей профессии серьезны, то вам просто необходимо высшее образование, с хорошей компьютерной подготовкой. Другие предметы также важны, такие как математика и физика, потому что эти навыки очень полезны и могут быть применены в написании видеоигр. 
Другие навыки 
   Математические навыки очень полезны в программировании, и потребуются в 3D. Очень хорошие знания векторов и матриц просто необходимы для 3D. И даже если вы не хотите заниматься трехмерным программированием, полезно знать все это. 

  Я никогда не писал видеоигры! Как мне начать? 
  Если вы никогда раньше не писали ни одной игры, вам следует начинать с очень простого. Выберите простую, но любимую вами двумерную игру (такую как Space Invaders, PacMan, Tetris, и.т.д.) и попытайтесь написать вашу собственную версию, используя либо OpenGl либо DirectX. Хотя вы несомненно захотите написать игру, придуманную вами, вам следует пока что помнить, что имитируя чью-либо игру, вы развиваете ваши навыки программирования игр. (Также как люди обычно учатся музыке играя произведения других композиторов, прежде чем начинают сочинять свои собственные). 
  Попытайтесь закончить игру и добавьте в нее все элементы, которые вы ожидаете увидеть в профессиональной версии такой игры, например, звуковые эффекты, музыку, таблицу рекордов, отсутствие ошибок (не такая простая задача), и так далее. Это покажет вам, что есть много аспектов в создании качественного продукта, и это даст вам понять, какая огромная работа проделывается при производстве профессиональных игр. Количество труда, затрачиваемое на сторонние аспекты игры, часто такое же, как при создании самой игры. 
После того, как вы сделаете пару игр таким образом, вы сможете начать воплощать ваши собственные идеи. Однако, вам следует создать несколько двумерных игр, прежде чем вы начнете работать с 3D. 
Я хочу делать 3D игры. Что мне для этого нужно? 
  Я очень рекомендую сперва написать несколько двумерных игр. Вам нужно научиться ходить, прежде чем вы сможете бегать, и хотя 3D кажется более захватывающим, если вы не обладаете базовыми навыками программирования игр, а сразу переходите к трехмерному программированию, вы застрянете. Поэтому не спешите с 3D - это может быть сложным. Кроме того, трехмерное программирование основано на линейной алгебре. Вам нужно будет изучить векторы и матрицы и знать их, как свои пять пальцев. 
  Я бы посоветовал чтение документации и просмотр исходного кода программ для DirectX или OpenGL. Имеются основные примеры, которые вам стоит использовать как начальную точку в изучении 3D. Первая трехмерная программа каждого - вращающийся куб в центре экрана. Если вы сможете сделать это - вы успешно начали изучать трехмерное программирование. С этого момента начинается долгий процесс обучения - читайте как можно больше и развивайте ваши навыки. Очень полезно наращивать библиотеку функций, которые вы сможете использовать снова и снова. 

  Что нужно работодателю? 
Когда потенциальный работодатель получает ваше резюме, он смотрит на ваши технические возможности - вашу силу и опыт в языках программирования, программном обеспечении для разработки, опыт в API (DirectX и/или OpenGL), различные технологии, которые вы знаете. 
  Если все это в порядке, вас пригласят на собеседование. Сперва вас проверят, действительно ли вы так подготовлены, как пишете в резюме. Хотя, если вас пригласили на собеседование, как правило это подразумевается как должное. Собеседование служит для того, чтобы узнать о вас больше как о человеке, и чтобы узнать, есть ли у вас другие навыки, которые нужны работодателю. 
  Работодателям нужны люди, хорошо работающие в команде, и легкие в общении. Плохой программист работает один, без связи с остальной командой (это относится также ко всем - дизайнерам, художникам, тестерам, и так далее). Такой программист останется в компании надолго. Навыки общения часто также недооцениваются соискателями, и те, кто на собеседовании говорят четко и могут показать, что они способны работать в команде, всегда имеют преимущество. Программирование игр очень обширная область, в которой людям неообходимо постоянно задавать вопросы и получать верную информацию, чтобы иметь возможность лучше работать. 
Работодатель также определит вашу страсть к играм. Часто я проводил собеседования с отличными людьми во многих отношениях, но отказывал им только потому, что их по-настоящему не интересовали игры - это неправильное отношение. 
  Другие навыки, нужные работодателю, это навыки распоряжаться временем и ваша возможность справляться с нагрузками. Рабочие сроки часто очень жесткие, и такое бывает часто, и если вы можете показать возможность делать все в срок без потери качества, это будет большим плюсом. 
  Еще один навык, важный для программиста, это возможность писать хороший ясный код. Если он в беспорядке, можете не показывать его, даже если он великолепен с технической стороны. Помните, что, поскольку вы работаете в команде, другие люди будут читать ваш код, чтобы понять, что он делает, и чтобы изменять его. Не обманывайте себя, думая, что вы будете единственным, кто будет работать с вашим кодом. 
  Меня всегда впечатляет энтузиазм - если человек действительно желает делать лучшие игры в мире, и показывает это, с этнузиазмом работая и учась, это всегда производит на меня большое впечатление. Показывайте заинтересованность в работе в игровой индустрии и особенно именно в той компании, работу в которой вы хотите получить. Не позволяйте им знать, что вы разбрасываете ваши резюме повсюду. Они хотят знать, что вы хотите работать именно у них. Узнайте больше о компании, собеседование в которой вы проходите. Это значит, играйте в их игры, узнайте об их истории и по возможности поговорите с кем-нибудь, кто работает там о том, как они там работают. Так вы покажете, что вы разборчивы в выборе работы. 
  Как вы убедились, технические навыки это только половина - вам необходимы "человеческие" качества, если вы хотите быть успешным программистом видеоигр.
Сколько времени уходит на то, чтобы сделать игру? 
Это зависит от самой игры. Некоторые игры делаются за 6 месяцев, а некоторые за 4 года. Если вы делаете продолжение игры, это займет всего от 6 месяцев до года, так как у вас уже есть законченная основа, и вам всего лишь понадобится добавить несколько новый деталей, уровней и графики. Среднее время разработки игры около 2 лет. 
Заключение. 
Вне зависимости от того, каков ваш нынешний уровень, мы надеемся, что дали вам несколько полезных советов о том, как получить профессию в игровой индустрии. Если вы готовы много работать и способны учиться, то ничто не остановит вас. 
Огромное удовольствие - видеть что игра, над которой вы много работали, получает хорошие отзывы и побивает все рекорды в чартах. Это стоит всех затраченных усилий. 

Удачи! 

Перевод - Евгений Казеко.

Хостинг от uCoz