История написания

“Волшебство момента вращения:

Искусство разработки игр на движке Torque 2D”

или

о вдохновении


...

Юрий "yurembo" Язев

независимый игродел


Теперь, когда бумажный экземпляр моей книги “Волшебство момента вращения” лежит передо мной, я хочу поделиться историей написания этой книги, может кому-то будет интересно.

...

рис. 01. Авторские экземпляры

О книгах

На русском языке существует довольно мало книг о разработке компьютерных/видео игр. Это очень печально. Когда я начинал свою деятельность, как разработчик компьютерных игр в 2003-м году, у меня не было ни книг, ни интернета, документация DirectX SDK, OpenGL API в нагрузку к Win 32 API - все, что имелось, по большому счету. Но даже в то время уже стали выходить книги о программировании компьютерной графики. На английском языке стали появляться книги о программировании игр, это было прекрасно! Годы спустя с информацией стало много лучше. Ибо Интернет. Между тем на русском языке днем с огнем не сыщешь книгу о программировании игр. Я попытался улучшить ситуацию.

Пролог

Я начал работать с движком Torque 3D в конце 2009-го года, когда примкнул к разработке зародившегося тогда Project Genom. К слову я был одним из первых разработчиков. В то время этот движок был платным и стоил порядка $800, если мне память не изменяет. Почему же мы стали использовать Torque 3D? На дворе стоял 2009-й год, по сути, рынок игровых движков отсутствовал: Unity 3D только-только начал перебираться с mac на pc и еще не был распространен, Unreal Engine 3 был дорог и не особо популярен. Присутствовали еще некоторые бесплатные движки, среди которых самым заметным был Ogre 3D, но по сравнению с платными движками они были детской забавой. Оставался один вариант - Torque 3D, этот движок был широко известен среди игроделов, обладал большим комьюнити и заслуженной многолетней историей. Следовательно наш выбор пал на него. В книге во введении я более подробно рассказываю об истории движков семейства Torque, а сейчас история не об этом. Осенью 2012-го года Torque 3D был передан в сообщество открытых исходников, то есть стал бесплатным. Раньше исходный код движка имелся только у лицензиатов, теперь же он стал доступен всем. Руководитель Project Genom решил, что настало время сменить технологию, т.е. игровой движок. Таким образом через 3 года после начала разработки - в конце 2012-го года Project Genom на Torque 3D прекратил свое существование. Это было очень безрадостное событие, в итоге я покинул разработку.

Torque 2D

В начале 2013-го года, вслед за Torque 3D, Torque 2D тоже стал бесплатным и отдан в Open Source. Это оказалось классным событием! Интересным для меня. Я сразу же стал его изучать и разрабатывать на нем игры. К тому времени самыми популярными играми были мобильные. И я, насытившийся разработкой больших игр, хотел попробовать себя в мобильной разработке. Нужен был движок. Самое главное: скриптовый язык - Torque Script у обоих движков (T3D и T2D) одинаковый! Это стало главной причиной выбора Torque 2D для разработки мобильных игр. Тем не менее все игровые объекты, все сущности, способы взаимодействия и т.д. в T2D отличались от T3D, поскольку это совершенно разные движки, предназначенные для разработки принципиально разных игр, и работа с этими движками кардинально отличается. За подробностями обращайтесь к книге. На начало 2013-го года Torque 2D из мобильных платформ поддерживал только iOS. Но я знал, что он на этом не остановится, ибо у движка есть большое сообщество разработчиков. В этом же году я принял участие в разработке нескольких проектов для iOS с помощью T2D, поскольку хорошо знал этот движок, и он отлично подходил для создаваемых игр.

Попытка №1

Вначале 2014-го, изучив T2D вдоль и поперек, я решил написать о нем книгу. Но с чего начать? К тому времени я написал кучу статей для “Хакера”, но как быть с книгой? Задав этот вопрос Александру Лозовскому (бессменному редактору рубрики “Кодинг” журнала “Хакер”), он отправил меня с ним по почте к Денису Колесниченко - автору статей в журнале ][ и множества книг по IT-тематике (даже у меня есть его бумажная книга по администрированию Linux). Денис рассказал мне, что прежде чем обращаться в издательство, надо, чтобы у меня на руках был какой-то материал (несколько глав) и посоветовал несколько издательств, печатающих техническую литературу.

...

рис. 02. В редакции “Хакера”: Юрий Язев и Александр Лозовский

В результате я начал писать свою книгу. Прошло пара месяцев, было готово 5 глав. Силы на исходе. Я обратился в некоторые из издательств, которые посоветовал мне Денис. К 2014-му году на сцене появился Unity 3D, поэтому Torque несколько утратил свои позиции. К тому же издатели очень неохотно печатают книги о GameDev, поскольку это очень специфическое направление, интересное узкому кругу людей, как сказано вначале, все еще не получившее широкого распространения. Поэтому эти издательства ответили мне отказом.

О мотивации и вдохновении

Силы были на исходе…

Когда у тебя появляется идея, и ты чувствуешь в себе силы воплотить ее в жизнь, вместе с этим у тебя появляется мотивация или пруха. Ты ощущаешь, что можешь работать несмотря ни на что, столько времени сколько понадобится. Однако проходит 2-3 месяца, ты по прежнему в одиночку пилишь проект, у тебя появляются очень нехорошие мысли - все начинает приедаться. На выручку может прийти вдохновение. Но непонятно откуда оно может прийти. К примеру, оно может стать результатом того, что ты делаешь, может оказаться моральной поддержкой от близких людей, короче, если бы был известен источник вдохновения, было бы очень хорошо. Но для каждого индивидуума он специфичен. Как говорил руководитель Генома: деньги худшая из возможных мотиваций. Наверное, сейчас он изменил свое мнение. Если после 3-х месяцев не появляется финансового поощрения, вся мотивация устремляется к нулю. Так произошло и со мной. На горизонте стали появляться, как мне тогда казалось, предложения об интересной работе с реалокацией. Я решил забить пока на книгу до лучших времен. Даже работая не в gamedev, я продолжал разрабатывать игры для себя. Также, я следил за развитием Torque 2D, так как после его передачи в сообщество открытых исходников, его развитие стало набирать обороты: в 14-м году на T2D стало возможным разрабатывать игры для Android, появилась поддержка контроллера Leap Motion и прочие нововведения. Кроме того, я продолжал писать статьи для Хакера. Это оказалось самым правильным действием на тот период времени, в будущем принесшим мне определенные дивиденды вне материального плана. Спустя несколько месяцев, я вернулся в GameDev. К тому моменту (конец 14-го года) уже вышел Unreal Engine 4 и стал потихоньку использоваться в разработке игр, в подобных проектах я принимал участие.

Следующий год (ровно, как Следующий уровень Sega)

В марте 15-го года я познакомился (на то время) с выпускающим редактором “Хакера” Ирой Черновой, которой понравилась моя идея о написании книги и ее первые 5 глав. Тем самым девушка стала 1-м рецензентом моей книги.

...

рис. 03. Юрий Язев и Ирина Чернова

Я, ободренный произошедшим, продолжил поиски издателя. И тут я вспомнил о Крисе Касперски - легендарном хакере и кодокопателе, авторе множества книг по дизассемблированию, так же он публиковался в журнале “Хакер”. Первым издательством, публиковавшим его книги, был Солон-Пресс. Подготовив вместе с Ирой внушительный список моих статей, я отправил его в это издательство. Через некоторое время я получил положительный ответ, договор на издание книги. Обрадовавшись этому событию, я тем не менее запихнул этот договор в стол и продолжил плодотворное сотрудничество с Хакером, так как не чувствовал достаточно сил для работы над книгой, желая отодвинуть написание во времени. События стали развиваться быстро, при этом книга требовала паузы для глубокого обдумывания, скоординированного плана и тщательной работы. Прошло еще несколько месяцев, в течение которых я написал несколько статей о разработке игр на Torque 2D в свой блог. Тем самым я готовил фундамент для большего проекта, но написание книги все откладывалось. Ирина с большим энтузиазмом относилась к моей книге, что казалось, она больше меня верит в успех проекта. Ирина верила в меня, она хотела, чтобы я дописал книгу. Ира стала для меня вдохновением, с которым я смог продолжить этот проект. Это то вдохновение, которое должно быть после исчерпания мотивации.

2016

В начале года я получил напоминание от издателя, что они до сих пор ждут мою книгу. Я подумал: у меня есть много разработанных игр на движке Torque 2D, я уже написал необходимый материал, который находится в отдельных статьях, мне надо только оформить это в полноценную книгу. Я загорелся этой идеей. Работа закипела. Я доработал некоторые старые игры для соответствия новой версии Torque 2D, так же разработал новую. Всего по замыслу я включил в книгу 4 игры. Я обновил первые 5 глав, кроме того, добавил материал об OS X, iOS, главу о портировании игр для Android и размещении пакета с игрой в Google Play, главу о разработке менеджера проектов на C# и главу о разработке игры для управления с помощью контроллера Leap Motion. В общем через 3 месяца книга была готова. Тогда я обратился к Александру Лозовскому, чтобы он написал рецензию на мою книгу. Перед отправкой рукописи в издательство я несколько раз перечитал ее для выявления ошибок и опечаток. Был еще один интересный момент. Так как Torque 2D в открытых исходниках довольно быстро развивается, то при написании книги я решил использовать последнюю версию движка, находящуюся в ветке development на GitHub. Поскольку эта версия содержит самые последние наработки. К этому я призываю читателей. Так получилось, что стабильной версией движка была 3.2, но в ней была ошибка компиляции под Android, а исправление было только в ветке development. Некоторое время спустя, ветка development развивалась и получила довольно важные изменения: класс вывода битового шрифта ImageFont был заменен классом TextSprite, но при этом стабильная версия по прежнему оставалась без изменений, однако, так как я использовал самую последнюю версию движка, в моих играх изменения были отражены. Буквально за день до отправки материалов в издательство, стабильная версия движка была обновлена и переименована - 3.3. Мне пришлось по быстрому менять версию во всей книге. В процессе написания было много подобных изменений.

После написания

Еще через 2 месяца книга была напечатана и поступила в продажу. Однако прежде я разработал сайт для информационной поддержки книги: http://www.t2d-dev.ru. На нем можно прочитать материалы из книги, а так же скачать контент диска. На самом деле сейчас, когда CD-ROM не пользуется былой популярностью, а даже уходит в небытие, как в свое время дисководы гибких дисков, издательства не вкладывают компакт-диски в книги, а указывают интернет-источник, откуда можно скачать сопроводительный материал, называя это “виртуальным диском”. На нетбуках и макбуках дисковод cd-rom, вообще, отсутствует, поэтому проще скачать данные из интернета, порой даже тем, у кого есть устройство чтения компакт-дисков. Перед печатью, когда был готов макет, его надо было перепроверять: как размещены картинки, правильно ли напечатаны листинги программ, нет ли других ошибок, искать и править свои опечатки. Так что работы при написании и подготовке книги предостаточно.