Вводная статья в разработку видеоигр

Введение
Часто люди задаются вопросом: с чего собственно начинать разработку видеоигры? Походу статьи я буду постепенно отвечать на этот вопрос, раскрывая некоторые аспекты. А раскрывать аспекты я буду со стороны программиста, поэтому тема будет всецело посвящена начинающим программистам в этой области.
С чего же начать?
Надо начать с выбора языка и графического интерфейса, но сейчас я немножко отступлю от этой темы, поскольку вы уже могли подумать «а почему бы не использовать движок?».
Время показало, что люди часто используют всякого рода программы и готовые движки, облегчающие разработку игр, вроде Game Maker’а и схожими с ними. Они помогают быстро создать свою игру и все бы хорошо, если бы не ряд минусов этого пути:
  • Вы получаете поверхностный опыт в разработке игр (если это можно назвать опытом)
  • Бывает, что найти информацию по движку очень трудно, а на крики помощи отвечают единицы
  • Вы ограничиваете свои возможности (чаще всего у вас нет доступа к исходному коду, а предлагаемый функционал вам не подходит)
  • Вы вбиваете себя в рамки, которые могут помешать реализацию игры (платные лицензии и другие подводные камни)
  • Вы попусту теряете время (причина будет описана ниже)
Это лишь небольшая часть негативных аспектов, которые привносят готовые движки. Я через это прошел и скажу вам, что жалею о потраченном времени. Ведь чтобы работать с движком надо его изучить – это время, нужен опыт для уверенной с ним работы – время. А потом может наступить момент, что возможностей движка будет не достаточно или лицензия вам не будет подходить (в случае коммерческой реализации), поэтому придется искать другой, а опыт во многом набирать заново и вы начнете зацикливаться на этом.
Но если не движок, то что?

К вам приходит XNA
Вы, возможно, слышали уже об этом Фреймворке, это надстройка над DirectX, которая делает за вас основную работу: создает окно, инициализирует графическое устройство, а также собирает все компоненты, такие как Ввод, Аудио, Графику и другие воедино. Иными словами XNA создает основу, которая позволяет вам сразу приступить к написанию игры. К слову сказать, надстройка XNA создана под язык Visual C#, который изучается налегке.
А тут идет уже самый вкусный кусок, который выходит при использовании Visual C# и XNA:
  • Вы изучаете Visual C# — хороший язык для начинающих программистов, опыт в котором можно будет применить и в других, более сложных языках
  • У вас свободный полет мысли
  • В интернете много материала по XNA, который поможет вам разобраться в основах, а потом перейти к более сложному уровню
  • Вы получаете опыт написания игрового кода, который можно будет применить в других языках и графических интерфейсах
  • Visual C# Express и XNA абсолютно бесплатны (единственное замечание по XNA: бесплатен для PC игр, для Xbox иWindows Phone 7 вам придется покупать подписку на их официальном сайте, но это мелочи и не обязательно)

Изучение
Visual C#
Начинать изучение имеет смысл с самого языка Visual C#, поэтому советую вам для начала взяться за книжку. Для изучения основ я читал «Sam’s Teach Yourself the C# Language in 21 Days», изучив основы ООП, вы можете приступить непосредственно к программированию игр.

XNA
Первую книжку по XNA, которую я прочитал и, которая мне неплохо помогла, была «Программирование игр под Windows в XNA Game Studio Express» она помогает разобраться в основах XNA. (единственное замечание там могут встречаться ошибки и версия XNA в учебнике немного устарела)
Для дальнейшего обучения стоит найти пару других книжек и параллельно пользоваться ресурсами:
Английский сайт по XNA (официальный): create.msdn.com/
Там же есть очень полезный каталог примеров: create.msdn.com/en-US/education/catalog/
И форум forums.create.msdn.com/forums/, где можно задать вопросы, если вы владеете английский языком. Там вам смогут помочь доброжелательные люди, если у вас что-то не будет получаться.
Из русских: XnaDev xnadev.ru/, честно говоря, редко там был, поэтому сказать о нем много не смогу.

Важные замечания
  • Не стоит гнаться за серьезными проектами, когда вы только начинаете изучение. Лучше начать с простенькой игры, которая будет, прежде всего, для вас. Пусть это и будет «еще один» платформер, тут главное получить опыт – дальше дело техники
  • Как не прискорбно, но большая часть материала по XNA на английском языке

В перспективе
После пары проектов (не обязательно больших), созданных на языке Visual C# с XNA у вас появится достаточно опыта, чтобы легко перейти на более сложные вещи, такие как Visual C++ DirectX/OpenGL.

Приятного геймдева!


1 комментарий

avatar
Начинать надо с поделки модов. А вот эти ваши слова
После пары проектов (не обязательно больших), созданных на языке Visual C# с XNA у вас появится достаточно опыта, чтобы легко перейти на более сложные вещи, такие как Visual C++ DirectX/OpenGL.
вообще глупость. Чтобы что то делать на с++ не обязательно иметь проекты на си шарп. Короче херня, а не пост.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.