Разработка игр как хобби

Разработка игр как хобби

Детство. Отрочество. Геймдев.

Перед рассказом о том, как я докатился до разработки компьютерных игр, думаю, стоит упомянуть, как эти самые игры вообще появились в моей жизни. Знакомство с миром видеоигр состоялось у меня в раннем детстве. Отец иногда брал меня на работу и давал поиграть на его компьютере. Сейчас уже трудно сказать, что это были за игры, но, благодаря некоторым ярким воспоминаниям и изучению старых игр, я пришёл к выводу, что среди них точно были Doom, Quake и Descent. Видимо, это и предопределило мою любовь к жанру FPS. Также мы с друзьями много играли в настолки собственного производства. Мы делали и постоянно улучшали настольные адаптации наших любимых компьютерных игр, таких как Red Alert, Diablo, Aliens vs Predator. Особенно успешным получился «порт» Empire Earth на тетрадный листочек, который я сделал, чтобы не скучать на уроках в школе. Игра так понравилась моим одноклассникам, что они даже делали моды с новыми юнитами, зданиями и механиками, от чего я был просто в шоке.

​Выглядела игра вот так
​Выглядела игра вот так

В то же время я начал осваивать редакторы карт для Age of Empires, Heroes of Might and Magic, Warcraft, Counter‑Strike и Operation Flashpoint. К сожалению, никаких проектов из того периода не сохранилось.

Совет: сохраняйте всё своё творчество, начиная с самых ранних работ. В будущем будет интересно и полезно вспомнить, с чего вы начинали и как проходил ваш творческий путь.

Создавать настолки и карты для компьютерных игр было интересно и познавательно (как минимум, я избавился от топографического кретинизма). Со временем желание делать полноценные компьютерные игры росло. Я много читал о разработке в Игромании и ЛКИ, но всё упиралось в сложности с программированием, отсутствие хороших бесплатных движков и уроков для тех движков, которые всё-таки удавалось найти. Мечта делать компьютерные игры так и оставалась мечтой.

Учимся играя

Однажды ко мне зашёл друг. В то время он начал интересоваться программированием (сейчас он уже серьёзный специалист с многолетним опытом). Он установил мне Visual Studio и со словами: «Смотри, Диман, как тут всё просто», за пару минут сделал окошко программы с несколькими кнопками. К сожалению, скриншотов не сохранилось, но выглядело это примерно так:

Разработка игр как хобби

"События", описываемые в этой программе, посвящены нашему однокласснику. Дисклеймер: ни я, ни мой друг-программист ничего против нашего одноклассника не имеем, он классный парень, просто по молодости и глупости ничего лучше не придумали. В общем, эта маленькая программа произвела на меня неизгладимое впечатление, ведь это была, по сути, компьютерная игра – то, что я мечтал сделать последние несколько лет. Однако и здесь было не обойтись без программирования, что представляло для меня большую проблему, поэтому с Visual Studio дальше дело не пошло, но оптимизма поприбавилось.

Знаковым в этой истории стал 2009 год, когда Epic Games выпустили UDK – бесплатную версию Unreal Engine 3, которая, по сути, ничем от него не отличалась. Тогда в это с трудом верилось: движок, на котором сделаны Unreal Tournament 3, Gears of War, Bioshock, Mass Effect и ещё куча дорогих и крутых игр, раздают бесплатно! Моей радости не было предела. Естественно, я его сразу же скачал и сел за изучение. Спустя несколько дней я захотел дать достойный ответ своему другу-погромисту и воссоздать его программу на UDK. Это не заняло много времени, и через день то же самое окошко с двумя кнопками было сделано на Unreal Engine 3. Вообще, это довольно странная идея – использовать топовый 3D-движок для создания игры в виде окошек интерфейса, поэтому я решил сделать нечто большее. Спустя несколько дней был готов небольшой уровень. На нём игрок должен был преследовать убегающего робота, прыгая по крышам зданий (в то время я сильно фанател от Mirror’s Edge), а затем, догнав его, победить в дуэли на базуках. Конечно же, остановиться на этом не получилось, и я подумал, что смогу осилить полноценную игру. Так было положено начало проекту Kill Syachin (название отражает связь с первоисточником и любовь к фильмам Квентина Тарантино).

Чтобы максимально обезличить врагов, я решил назвать их робоклонами. Они как бы роботы, но при этом ещё и клоны, ну вы понимаете...​
Чтобы максимально обезличить врагов, я решил назвать их робоклонами. Они как бы роботы, но при этом ещё и клоны, ну вы понимаете...​

Разработка Kill Syachin заняла примерно 2 года, и никаких серьёзных трудностей в процессе не возникало, хотя мелких было навалом. Я смотрел все уроки по UDK, какие удавалось найти, и сразу же воплощал самые очевидные и простые идеи, которые приходили в голову. То есть, не было никакого плана: ни сценария, ни зарисовок уровней, ничего – весь контент игры создавался по ходу изучения движка. Хотя UDK был отлично заточен под FPS и даже имел некоторое количество встроенного контента, я был ограничен в действиях, так как серьёзные изменения в механику можно было внести, только используя UnrealScript – специальный язык программирования для UE3. В движке был язык для визуального скриптинга – Kismet, но он не давал полной свободы и по возможностям сильно уступал современной системе Blueprints из UE4. По этим причинам в плане механик Kill Syachin очень похожа на Unreal Tournament 3, только без мультиплеера, зато с полноценной сюжетной кампанией. Во время разработки многие друзья просили добавить мультиплеер, но куда там, мне бы сингл доделать! Контент для игры почти полностью взят из стандартного набора UDK, сам сделал только пару моделек, текстур, партиклов, ну и уровни, конечно.

Разработка игр как хобби

Также я записал озвучку для всех персонажей, кроме одного, с которым мне помогла гугл-тётка. Озвучка главного героя в итоге никому не понравилась, а вот к таланту гугл-тётки у игроков претензий не возникло. Игра вышла в релиз в начале 2011 года и была довольно короткой – прохождение занимало примерно 30 минут. Получилось, что Kill Syachin послужил хорошим практическим проектом, в ходе которого я освоил базовый функционал UDK. Также я обнаружил, что процесс разработки игры приносит много удовольствия.

Много лет назад, во время разработки Raid on Bungeling Bay, Уилл Райт заметил, что ему интереснее создавать уровни для игры, чем потом играть в них. Это наблюдение послужило причиной создания SimCity.

Игра мечты 2.0

После завершения разработки Kill Syachin в апреле 2011 года я хотел отдохнуть несколько месяцев, но не удержался и начал делать новую игру примерно спустя 2−3 недели. Изначально я хотел сделать дополнение, освоив неиспользованный в оригинале контент и механики, например, летающую технику, но оно быстро переросло в полноценный сиквел. Основными идеями были:

  • лучше проработать сценарий;
  • дополнить и изменить механики оригинала, чтобы дистанцироваться от UT3 по геймплею;
  • добавить большое количество собственного контента (модели, текстуры, анимацию);
  • увеличить масштаб событий.

Сначала я решил придумать название, ведь это очень важно, как создание папки "Диплом" перед написанием его самого. Не хотелось давать игре банальное имя "Kill Syachin 2", хотя поначалу проект так и назывался. Быстро придумать хорошее название не получилось, но спустя несколько месяцев пришла идея словосочетания Double Kill Syachin, которое хорошо обыгрывает смысл происходящего в игре.

Первоначальная версия сценария вышла довольно объёмной и подробной, по сравнению с первой частью, конечно. Но по ходу разработки постоянно вносились изменения и дополнения, так что в конце концов от изначальной версии почти ничего не осталось. Нужно отметить, что игра создавалась для небольшого круга друзей, поэтому в ней присутствуют локальные мемы. Постороннему человеку юмор в игре может показаться глупым (каким он на самом деле и является).

Эти ковры задавали тон всей комнате
Эти ковры задавали тон всей комнате

Для того чтобы изменить базовые механики, добавить систему сохранений и сделать ещё некоторые мелочи, пришлось-таки разбираться с UnrealScript. Было очень сложно, но на помощь пришло сообщество: некоторые части кода я позаимствовал с форумов и фан-сайтов UDK-разработчиков. Естественно, всё пришлось подгонять под свой проект и дописывать некоторые вещи, однако это было значительно проще, чем писать весь код с нуля.

Очень забавным образом происходил процесс поиска и исправления багов. Чаще всего, когда компилятор выдавал ошибки, я находил соответствующие строчки кода и просто удалял их. Не из-за лени, конечно, а потому что не знал, как их исправить. Зачастую это приводило к появлению новых багов, которые правились тем же способом. Пару раз возникали критические баги, которые касались важных геймплейных элементов, таких как управление транспортом или инвентарём игрока. В таких случаях избавиться от проблемы удалением строки было нельзя и приходилось действительно докапываться до сути и исправлять баг нормальным образом, на что у меня уходили недели. Как ни странно, несмотря на такой дилетантский подход, в итоге получилось добиться, чтобы механики отличались от UT3, и при этом игра была довольно стабильной.

С созданием нового контента было чуть проще и веселее, так как я увлекался 3D-моделированием, однако всё равно возникали некоторые сложности, например со звуками и текстурами. Звуки я доставал, откуда только мог, в том числе и из других игр. Спасибо Valve, что хранили звуки в обычном wav-формате. С текстурами очень помог сайт textures.com. Также пришлось освоить базовые принципы создания фототекстур и работы в Photoshop. Для рисование текстур по объектам пригодилась программа 3D-Coat, хотя сейчас, по-моему, для подобных целей лучше использовать Substance Painter. Масштаб игры постоянно рос, и к концу разработки она стала в 2−3 раза больше первой части, а количество контента увеличилось раз в 100, в том числе и количество диалогов. На этот раз озвучку мне помогали записывать друзья: главного героя и его помощника я доверил им, а антагониста и его приспешников озвучил сам. Также к своей роли вернулась гугл-тётка (куда же без неё), хотя за прошедшие годы её голос немного изменился.

Разработка игр как хобби

Несложно догадаться, что разработка игры сильно затянулась. В общей сложности она заняла 5 с лишним лет. Хотя, конечно, не всё это время работа велась активно, случались долгие перерывы, иногда до 2−3 месяцев. Из-за того, что я так долго работал над одним проектом, часто возникало желание всё бросить и больше к нему не возвращаться. Особенно неприятно было, когда случался непонятный баг, из-за которого ломались все Kismet-скрипты на всех уровнях, и приходилось их исправлять вручную, что занимало по несколько часов (и происходило такое не один раз). Часто возникало ощущение, что я взвалил на себя непосильную ношу и никогда не смогу доделать игру. Среди моих друзей этот проект уже превратился в шутку, и они часто подкалывали меня по поводу такой затянувшейся разработки.

Забавный факт: события игры разворачиваются в 3016 году. В квартире главного героя по изначальной задумке должны были висеть плакаты давно ожидаемых, но так и не вышедших к тому времени игр: Diablo 3, Duke Nukem Forever и другие. Однако, за время разработки почти все эти игры успели выйти или были близки к выходу на момент релиза Double Kill Syachin. В итоге в игре остались только плакаты Half-Life 3.

Тем не менее, в начале 2016 года я осознал, что игра уже почти готова. Оставалось доделать пару мелочей, немного отполировать, подбалансить и поправить несколько багов. Осознание близости завершения такого длительного проекта придало мне сил. Появилась идея провести небольшую рекламную кампанию среди друзей. Хотя, казалось бы, зачем, они же и так всё знают. Но эта мысль захватила мое воображение, поэтому я решил сделать трейлер игры, и где-то через пару месяцев он был готов. Было приятно наконец заняться чем-то новым, не связанным напрямую с работой в движке.

Тот самый трейлер

Затем я решил сделать коробочное издание. Тут очень пригодились коробки от кодов PS+ и пополнения кошелька PSN, жаль, что сейчас их продают только в виде карточек. Для физического издания нужна была обложка, и тут меня выручил опыт, полученный при работе с текстурами в Photoshop. Также я собирался напечатать диски с логотипом игры, но все фирмы, которые я нашёл, предлагали тираж от 50 дисков, а такие расходы я себе позволить не мог (проект и так уже стоил дорого, ведь распечатка двух обложек обошлась почти в 100 рублей!). Да и куда девать такую партию дисков – непонятно. Поэтому диски остались без печати. В итоге было сделано 2 коробочных копии, одну из которых я подарил другу на день рождения.

Релиз игры состоялся 20 августа 2016 года.

На недавнем Comic Con Ukraine, отвечая на вопрос "Какая часть разработки игры вам больше всего нравится?", Джон Ромеро перечислил почти
все этапы создания игр и подытожил фразой: "Gamedev is awesome". И я с ним абсолютно согласен.

Подводя итог, хочу сказать, что, несмотря на все трудности, разработка игр приносит немало удовольствия. Зачастую даже больше, чем сам процесс игры. Это очень необычное и приятное чувство, когда видишь, как расставленные тобой модельки и написанные скрипты собираются воедино и оживают по нажатию кнопки Play. Если у вас есть хоть малейшее желание создавать игры, то попробуйте! Сейчас для этого есть все условия: крутые бесплатные движки, куча бесплатного контента, море уроков по любому вопросу. Может быть, разработка станет для вас любимым хобби, как однажды стала для меня.

Хидео Кодзима уже не раз говорил, что хочет разрабатывать игры до конца своих дней. Не может же гений сказать глупость, ведь так?

P.S. Спасибо моим друзьям Косте и Дине за помощь в написании статьи. Спасибо Вам за прочтение. Также буду очень благодарен, если Вы поиграете в мою игру и оставите отзыв в комментариях. Пишите обо всём, что не понравится. А если вдруг что-то понравится, то об этом тоже напишите.

P.P.S. Игра абсолютно бесплатная. Никогда никому за неё не платите, даже мне, даже если буду очень просить.

#лонгрид #разработка

175175
48 комментариев

Увы, но многие, включая меня, слишком ленивы для этого.
Им проще кудахтать о том, что им нравится/не нравится в той или иной игре. При этом они даже не осознают, какое огромное количество ресурсов на неё потрачено.

Хвала тем, кто этим занимается на достойном уровне (разрабы двух стульев - идите на@%й)

Будь у меня больше времени и желания - тоже бы попробовал. Видимо уже не в этой жизни

20
Ответить

Почему не в это жизни-то? Тебе же не 70 и наверняка даже не 50. Всяя жизнь впереди.

1
Ответить

Комментарий недоступен

Ответить

Вторая часть не канон, вся романтика осталась в первом Сячине!

11
Ответить

Пустил скупую слезу, вспоминая, как в детстве ограничивали мне компьютер, из-за чего я рисовал игры на бумажках и играл в них. Я и сейчас так делаю, хоть никто у меня компьютер не забирает :)

6
Ответить

Как же я тебя понимаю. Хожу на курсы, нужно сделать VR/AR игру на unity в команде. Осталось две недели а мы не определились что это будет. Сидим за ПК и каждый предлагает своё: Добавить титанов из titanfall ,сделать beat saber, мультиплеерный шутер и накрутить графон. Всё под эйфорией, в итоге как художник по текстурам я сделал разные варианты пола-от земли с камнями до плитки. Так ещё и unity, как же я его ненавижу(не могу добиться нормального качества текстур в unity). Как же тяжело делать игру из команды в 14 человек, а в одиночку вообще боюсь представить.

5
Ответить