Русский
Русский
English
Статистика
Реклама

Инди-разработка

Солнце в коробке

04.10.2020 22:08:33 | Автор: admin
Это мой лучший друг: всегда в хорошем настроении и не задаёт лишних вопросов Леон о растении.


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

Вначале был прототип.


Для проверки целесообразности идеи выращивания плодоносящих растений в закрытом пространстве я решил собрать основной функционал, пренебрегая аккуратностью корпусирования. Прототип состоял из следующих функциональных блоков:


[ функциональная схема устройства (версия 1.0) ]

Получилась весьма увесистая конструкция, внушительных размеров, тем не менее, работающая и пригодная для эксплуатации. В качестве корпуса использовался вырезанный деревянный бокс, напичканный бюджетной электроникой:
для освещения были выбраны светодиодные ленты красно-синего и тепло-белого спектров свечения; для вентиляции стандартные 12 В кулеры; потенциометр как регулятор скорости оборотов кулеров с возможностью отключения; датчик температуры и влажности с выводом на ЖК-дисплей; розетка с таймером на освещение и сетевой блок питания. Открытием стала система капельного автополива Blumat. Под спойлером фото первой версии гроубокса. Основная цель заключалась в получении плодов какого-либо сорта.


[ внешний вид гроубокса 1.0 ]

Собрав этого Франкенштейна, я отправил острых перцев с боевым названием Огонёк на разведку. Было интересно понаблюдать за полным циклом роста растений поэтому в начале марта я высаживал их семена, накрывая почву пленкой на несколько дней. Режимы освещения были следующими: во время роста световой день длился 18 часов, а во время цветения 12. Примерно через три месяца я увидел первые цветочки. Опылять пришлось искусственно (кисточкой) из-за того, что завязи сами никак не образовывались. В итоге они успешно отцвели два раза за полгода в начале лета и осенью.


[ цветение перцев и первый урожай ]

Как можно заметить, система контролировалась в полу ручном режиме, ни о какой автоматизации и сборе статистики речи и не шло. Однако, на мой взгляд, идея доказала свою работоспособность, и я стал готовиться ко второй версии.


Версия 2.0.


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

Про электронику


Функциональная схема, по сравнению с первой версией, претерпела несколько важных изменений: добавился датчик жидкости, а контроль и управление системой было решено перенести на WEB-интерфейс. В остальном, функционал сохранился, однако реализация существенно поменялась. Так, работа над новой версией началась с выбора электронных компонентов. Архитектура новой электронной начинки приведена на рисунке ниже. Блок питания на 48 В выбран из расчета применения цепей 3 Вт светодиодов.


[ структурно-функциональная схема электроники (версия 2.0) ]

Хост-плата


Для связи с внешним миром новый гроубокс имеет встроенный WEB-сервер. Честно говоря, до данного проекта я не имел никакого опыта разработки пользовательских интерфейсов (UI), но такой подход мне показался целесообразным из-за возможности отображения интерфейса как локально (браузером на дисплее), так и удаленно (в браузере подключенных устройств), ничего при этом не переписывая. Таким образом, на UI были возложены две группы задач:

Управление:
  • настройками хост-платы;
  • освещением;
  • вентиляцией.

Мониторинг:
  • состояния освещения (вкл\выкл);
  • температуры и влажности;
  • уровня воды (есть\нет);
  • состояния вентиляции.


WEB-сервер располагается на хост-плате (см. структурно-функциональную схему), которая, в свою очередь, осуществляет обмен данными с остальными компонентами системы.
Признаюсь, в качестве первой реализации, я взял разработанную ранее платформу CNCU-01 на базе микроконтроллера STM32F407, где, подняв WEB-сервер, я уткнулся в проблему недостатка памяти для хранения картинок и html-страниц. Возможно, в целях энергоэффективности, я вернусь к этому варианту т.к. данные можно хранить на microSD карте, но пока я решил взять платформу на базе микропроцессора с Linux. Выбор пал на Khadas VIM1, как на плату с лучшим, по-моему мнению, соотношением функционала и стоимости. Основными критериями выбора были:

  • работа с известными дистрибутивами (Ubuntu \ Debian \ Armbian);
  • наличие eMMC для хранения образа ОС и данных;
  • наличие отдельного разъема (помимо USB) для питания;
  • нормальная работа при пассивном охлаждении;
  • наличие UART, I2C, WiFi, ETH, HDMI, USB(900mA), GPIO.

Также преимуществом данного одноплатного компьютера было наличие широкого выбора уже собранных образов разных дистрибутивов Linux. В этом проекте я использовал Ubuntu LTS 18.04. Большинство необходимого уже было в составе образа, оставалось лишь все это настроить и запрограммировать. Первым делом потребовалось сконфигурировать шину I2C. По умолчанию частота SCK, выставленная производителем в 400 кГц, не подходила для моей длины линии (~5м) фронты тактовых сигналов оказывались заваленными из-за паразитной емкости провода и корректный обмен данными был невозможен. Выход был в понижении частоты до 100 кГц исправлением файла конфигурации платы devicetreeblob (.dtb). Отдельно хочется отметить живой форум и тех. поддержку Khadas, оперативно реагирующую на возникающие вопросы.

Для реализации WEB-интерфейса мне понадобилось знакомство с HTML, CSS и JS. Усложнять их изучение постижением популярных фреймворков я не стал (да и времени на это не было), поэтому фронтенд получился пусть и уродливым внутри, зато, как по мне, миловидным снаружи (благо, с дизайном мне очень помогла девушка). Бэкенд представляет из себя связку NGINX WEB-сервера, FastCGI и С++ приложения. На момент написания статьи пользовательский интерфейс выглядит следующим образом:


[ WEB-интерфейс гроубокса 2.0 ]

Рабочие настройки и показания датчиков хранятся в sqlite базе данных. Визуализация температуры и влажности реализована при помощи модифицированной библиотеки Chart.js (мне потребовалась поддержка двух Y-осей). Режимы освещения и вентиляции задаются расписаниями каждому устройству соответствует свой таймер и статическое значение рабочей мощности. Более хитрые алгоритмы автоматического управления пока находятся в разработке.


WiFi vs HDMI



Как говорилось ранее, гроубокс 2.0 задумывался как сетевое устройство: для регистрации в сети он поддерживает как статическое присваивание IP адреса, так и динамическое, но прежде, чем получить доступ к его WEB-серверу (UI), необходимо собственно этот адрес определить. Так, для пользователя стал необходим интерфейс для первоначальной настройки устройства, чтобы затем вывести его в локальную сеть. Кроме того, такой интерфейс пригодился бы для работы в оффлайн режиме.

Изначально, для решения этой задачи, я планировал использовать HDMI TouchScreen дисплей. UI отображался бы на дисплее через chromium в режиме киоска и управлялся бы при помощи виртуальной клавиатуры. Но все оказалось не так просто сенсорная панель по умолчанию не поддерживалась в предлагаемых на сайте Khadas образах Ubuntu Desktop, однако, за пару дней общения на форуме, разработчики и сообщество помогли мне собрать новый образ с необходимыми модулями и тач заработал. Для реализации виртуальной клавиатуры в Ubuntu нашлось предостаточно готовых средств, среди которых я выбирал между florence и onboard. Данные клавиатуры позволяют гибко менять свой внешний вид, что дает возможность качественно настроить их под свое приложение.
Прим. Недавно разработчики Khadas опубликовали версию Ubuntu Desktop с поддержкой Gnome, где есть уже встроенная весьма удобная виртуальная клавиатура.


Тем не менее, несмотря на проделанную работу, все это мне не пригодилось. Очевидной проблемой при работе с дисплеем было повышенное энергопотребление хост-платы и больший ее нагрев из-за работы графического процессора. Без активного охлаждения с дисплеем работать все же не рекомендуется, а мне очень хотелось избежать лишних шумов кулера. Конец моим сомнениям пришел, как мне кажется, в виде знака. Дело в том, что пока я работал с одноплатным компьютером без дисплея он был запитан от блока питания 48 В через 48VDC-5VDC преобразователь. Я подозревал, что такое сочетание падения напряжения и тока потребления платы близки к максимальным возможностям преобразователя, но забыл об этом, когда стал подключать дисплей. Стоит уточнить, что дисплей запитывается от USB порта хост-платы. Таким образом, увлеченный кастомизацией виртуальной клавиатуры, вскоре я почуял характерный запах горелого пластика и экран отключился. Отключился, как оказалось, навсегда. DC-DC Преобразователь сгорел, успев, по видимости, выдать аномальный импульс на выход, убивший кулер хост-платы и матрицу дисплея. Одноплатный компьютер сначала тоже пал замертво и находился в коме минут 20, после чего входной самовосстанавливающийся предохранитель оправдал свое название, и плата ожила, чему я был несказанно рад. К несчастью, лишнего дисплея у меня не было, и произошедшее я воспринял как знак для пересмотра выбранного решения. Обнаружив, что большинство людей уже давно носит беспроводной дисплей смартфон в кармане, я подумал, что необходимости в еще одном дисплее в составе устройства на самом деле и нет. Вместо этого можно создать подключение по воздуху и транслировать UI на экран телефона. Так я и поступил. На выбор имелось два канала связи: Bluetooth и WiFi, но т.к. браузеры смартфонов, как известно, уже работают по WiFi, то на нем я и остановился, дабы не городить лишнее приложение. На хост-плате я настроил точку доступа (WiFi AP), к которой можно подключаться со смартфона и через браузер открывать WEB-интерфейс гроубокса. WEB-интерфейс, в свою очередь, имеет адаптивную версию для мобильных устройств. Такой подход мне показался оптимальным по удобству использования и трудозатратам. Кроме того, уход от решения с дисплеем избавил от необходимости прокладки в корпусе двух кабелей и снизил рабочую температуру одноплатного компьютера, что позволило перейти на пассивное охлаждение.

image

[ подключение смартфона к гроубоксу 2.0 ]


Фитосветильник и контроллер FLC-01



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

Размеры освещаемой площади в этой версии стали 400 х 400 мм, поэтому в качестве корпуса фитосветильника я выбрал алюминиевый радиатор 300 х 400, с запасом, чтобы распределить светодиоды как можно свободнее. Радиатор крепится к конструкционному профилю и выполняет функцию верхней крышки бокса. На китайском рынке я нашел готовые алюминиевые панели для светодиодов подходящий габаритов. Их я закрепил на радиаторе, предварительно промазанном термопастой, и запаял светодиоды по схеме. Из расчета 250 реально излучаемых Вт на 1 облучаемый м2 (или 40 Вт / 0,16 м2 в моем случае) я взял 41 трехваттный светодиод. Стоит уточнить, что я использовал 3 независимые группы светодиодов (красные 660 нм, синие 445 нм и белые 2900К/4000К), в которых падение напряжения на отдельном светодиоде отличается. Так, например, на синем светодиоде падает в районе 3,4 В, тогда как на красном 2,4 В. Кроме того, насиловать светодиоды номинальным током в 700 мА я не стал и выбрал 350 мА в качестве рабочего значения (чтобы продлить им жизнь) при максимуме в 500 мА (максимум драйвера). По измерениям пришедших ко мне светодиодов получилась следующая таблица:



Исходя из вышесказанного, считаю максимальную реальную полученную мощность фитосветильника:

Pmax = 6 (0,5 3,4) + 5 (0,5 4,5) + 12 (0,5 3,4) + 18 (0,5 2,4) = 63,45 [Вт]

и реальную рабочую мощность при токе 350 мА:

Pраб = 6 (0,35 3,4) + 5 (0,35 4,5) + 12 (0,35 3,4) + 18 (0,35 2,4) = 44,42 [Вт]

При этом каждой линии светодиодов (красной, синей и белой) хватает 45 В для питания (3 В падает на драйвере для светодиодов, согласно документации), так что блока питания на 48 В 4.4 А как раз достаточно. Распределяя светодиоды, я старался обеспечить максимальную однородность излучаемого света. Получившееся в итоге представлено на фото ниже.


[ схема распределения светодиодов][ вмонтированная в крышку лампа ]

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

Для такого управления светодиодами понадобился специальный контроллер с трехканальным диммируемым светодиодным драйвером, да еще и с цифровым каналом связи. Собрать его я решил сам, не найдя ничего подходящего на рынке. В качестве драйверов для светодиодов были найден источники питания серии LDD-H, а именно LDD-500H на 500 мА. Конструкция платы разработанного контроллера позволяет установить любой необходимый драйвер этой серии, т.к. они имеют одинаковые корпуса и для них предусмотрены специальные посадочные места типа кроватка. Таким образом, при желании можно еще повысить мощность фито-светильника, заменив драйверы на LDD-700H с током 700 мА. Мозгом же платы был выбран популярный микроконтроллер STM32F103. Именно он управляет светодиодными драйверами посредством ШИМ-сигналов, устанавливая тем самым выходной ток. Для связи контроллера с внешним миром поддерживается несколько каналов связи: UART, RS232 и Bluetooth 4.0 BLE(в зависимости от сферы применения).Bluetooth канал построен на основе модуля HM-10.Также контроллер имеет встроенный таймер включения и отключения драйверов светодиодов для установки длительности светового дня растений. Чтобы таймер не сбивался при перепадах напряжения питания, он работает на основе часов реального времени (RTC) и на плате установлен разъем под батарейку CR2032 для резервирования питания часов. Сама же плата питается в диапазоне 1550 В, подавая входное напряжение в том числе и на светодиодные драйверы. В процессе эксплуатации от 48 В я столкнулся со значительным нагревом линейного стабилизатора напряжения LM317HVT и не стал дожидаться его выхода из строя, сделав отдельный вывод для питания логической части от DC-DC преобразователя на базе LM2596HV. В следующей ревизии платы планируется исправить данный недочет.


[ плата FLC-01: вид сверху ][ плата FLC-01: вид снизу ]

Разработанная для контроллера прошивка позволяет регулировать выходной ток каждого драйвера в пределах от 0 до 100% с шагом 1%, то есть для рабочего значения в 350 мА необходимо выставить 70% (5000.7). Протокол общения максимально прост (есть общая структура текущего состояния контроллера, нужно что-то поменять пишешь ему об этом), и построен на формате JSON:


[ пример обмена данными ]

и даже имеет простенький GUI на Python3, если вдруг понадобится подключать контроллер к ПК.


[ графический интерфейс FLC-01 ]

Для управления по Bluetooth я использую Serial Bluetooth Terminal. Это оказалось не очень удобным в использовании (отдельное приложение все же предпочтительнее, однако его еще нет), но очень удобным при отладке, когда плата уже встроена, а подключиться и посмотреть происходящее надо. Для связи с хост-платой используется классический UART.


Соединительная плата (SensorsBoard)



Ни для кого не секрет, что у разных датчиков разные интерфейсы связи. Для своей системы я выбрал следующие сенсоры:

  • датчик температуры и влажности SHT30 питание 3.3 В, работает по I2C;
  • бесконтактный датчик жидкости XKC-Y26-V питание 12 В, подает на выход уровень питания если жидкость есть и GND в противном случае;
  • 4-pin кулеры Noctua NF-A12x15 питание 12 В, скорость вращения регулируется ШИМ-сигналом.


Как видно из этого перечня, напрямую к хост-плате Khadas VIM1 можно подключить разве что датчик температуры-влажности т.к. кроме 3.3 В и 5 В на хост-плате напряжений нет. Для подключения датчика жидкости и вовсе нужен преобразователь 12 3.3 В чтобы подать сигнал на порт процессора. В связи с этим, потребовалось сделать еще одну плату для стыковки датчиков и кулеров с одноплатным компьютером. В качестве канала связи я использовал шину I2C, где ведущим устройством выступила хост-плата, а двумя ведомыми стали датчик SHT30 и мозг соединительной платы уже известный микроконтроллер STM32F103. На этот раз задачей микроконтроллера стала генерация ШИМ-сигналов частотой 25 кГц для двух кулеров, скважность которых задается командами по I2C. Плату собрал дешево и сердито на макетке, используя STM32-Bluepill. Питание осуществляется от общего блока питания 48 В поэтому на входе используется DC-DC преобразователь LM2596HV-ADJ на 12 В.

Не обошлось и без подводных камней даже в столь простой схеме. Когда я рассчитывал делитель напряжения 12 3.3 В я не учел один неочевидный момент на выходе датчика жидкости уже был встроен токоограничивающий резистор. Этот резистор становился плечом моего делителя и значительно влиял на выходное напряжение. При помощи мультиметра я определил его номинал (20 кОм) и внес коррективы в схему. Выход данного делителя подается на входной порт хост-платы, поэтому для надежности я добавил стабилитрон на 3.3 В, который на схеме не показан.


[ схема подключения датчика жидкости ]


Про корпус



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

Каркас было решено собирать из конструкционного алюминиевого профиля серии 20 с V-пазом. Работать с ним оказалось крайне приятно все размеры подобраны, крепления аккуратно закручиваются и сходятся с пазами. Главное было заранее определиться с габаритами и набором необходимого крепежа. Так, проектирование корпуса началось с 3D-моделирования.Честно говоря, сперва я думал, что модель ограничится лишь каркасом и понадобится лишь для определения основных размеров и типов соединителей, но по мере проектирования стали проявляться неочевидные нюансы, о которых просто не задумываешься без картинки перед глазами. В итоге я стал моделировать каждую деталь и соединение, что помогло избежать многих ошибок в дальнейшем. В этом проекте я познакомился с Autodesk Inventor 2020 и остался очень доволен этой системой автоматизированного проектирования. В ней детали легко рисуются по эскизам, а затем объединяются в единую сборку модели. Кроме того, без лишних манипуляций я сразу мог подготовить нужную деталь для печати на 3D-принтере. Рабочая модель представлена на изображении ниже:


[ 3D-модель корпуса версии 2.0 ]

Внешние габариты конструкции: 440 Ш х 503 В х 540 Г[мм]
Пространство для растений: 400 Ш х 370 В х 400 Г [мм]

В качестве стенок используется прозрачное оргстекло. Чтобы излучаемый фито-лампой свет не выбивался наружу, оргстекло обклеено полузеркальной пленкой (коэффициент отражения 92%, пропускания 8%). Таким образом, становится возможным наблюдение за растениями при наличии света внутри бокса, а при отсутствии внутреннего освещения бокс превращается в зеркальный.


[ эффект полупрозрачных стенок ]


Подача воды производится в подпольный бак объемом 10 л по выведенной нейлоновой трубке. Имея внешний диаметр 7 мм, она плотно втиснута в паз алюминиево профиля. Горлышко трубки пролезает через соединительный куб и выглядывает из края верхней крышки корпуса. Для удобства пополнения бака я напечатал своеобразную воронку под диаметр отверстия трубки.

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


[ система подачи воды ]

Немаловажной характеристикой гроубокса 2.0 для меня была громкость работы. Как известно, вентиляторы и блоки питания с активным охлаждением могут издавать раздражающее жужжание. Пытаясь максимально этого избежать, я поставил кулеры Noctua с адаптером Low Noise и блок питания с пассивным охлаждением, что обеспечило нужный эффект бесшумной работы.

Для закрепления плат на задней стенке я напечатал на 3D-принтере специальные крепления, которые приклеиваются к оргстеклу и имеют монтажные стойки под винтики. Таким образом, электроника за исключением датчиков расположилась в задней части корпуса (все провода брались с запасом поэтому вышло не так красиво, как хотелось бы):


[ расположение электроники на задней стенке ]

И напоследок небольшой демо-ролик получившегося устройства:





Итоги



Чем дальше проект развивается, тем интереснее он становится. Новые ответы порождают новые вопросы. У текущей версии все еще немало недостатков и особенностей, требующих доработок. Диапазон решаемых задач растет и, по понятным причинам, все сложнее удается с ним справляться в одиночку. Не знаю как далеко я зайду, но эксперименты продолжаются и надеюсь принесут плоды.

P.S. Высадил подопытную зелень в начале сентября взошла за дне недели. Продолжаю наблюдения. Всем хорошего урожая!

Подробнее..

Выгорел, снизил темп, поправил силы и вернулся интервью с авторами Stoneshard

30.07.2020 18:15:54 | Автор: admin


Герой лежит в канаве со сломанным ребрами. Чтобы не умереть, ему придется проглотить самодельное зелье из самогона и пиявок. Никто не гарантирует, что чудесному исцелению не помешают бандиты в кустах за углом.

Stoneshard безапелляционно сложная игра.

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

Чтобы сделать эту систему, петербургской студии Ink Stains Games потребовалось четыре года и успешная Kickstarter-кампания. Но игре еще далеко до полноценного выхода сейчас она доступна в раннем доступе Steam, и будет там как минимум два года.

Зато Stoneshard уже называют одной из лучших RPG последних лет, а в отзывах игроков вы заметите особенное сочетание эмоций как глубокой любви (эта игра меня сломала, 10/10), так и не менее напряженной вражды (отстаньте, у меня и без вас жизнь не сахар).

Мы познакомились с Ink Stains Games на конкурсе независимых разработчиков Indie Cup. Тогда у разработчиков не получилось победить, зато Stoneshard превратилась в источник вдохновения для всех новых участников даже если не получается сейчас, не сдавайтесь.

Чтобы напомнить об этом всем, кто подал заявки на летний сезон Indie Cup, мы обсудили с Антоном Грищенко, как Stoneshard вышла в ранний доступ Steam, что изменилось в игре за последние два года, как себя чувствует команда, и почему так важно не дать игроку сохраняться по желанию.


Как бы вы описали Stoneshard для человека, у которого мало опыта с roguelike?


Пошаговая Diablo с открытым миром.

Как поменялась команда за два года после вашей кампании на Kickstarter?


Мы прилично расширили штат. У нас появились новые программисты, аниматор, заметно увеличилось количество комьюнити-менеджмента. Раньше он почти полностью был на Андрее, нашем гейм-дизайнере.

Теперь, помимо самого комьюнити-менеджера, у нас даже есть отдельный человек для работы с китайской аудиторией. Она для нас очень специфическая, и охватывать ее традиционными способами не выходит.



Вы работаете удаленно можете описать, как построена работа в Ink Stains Games?


Достаточно стандартно. Мы созваниваемся два раза в неделю, обсуждаем и корректируем стратегию. Исходя из нее набрасываем задачи. Потом проходимся по ним, часть закрываем. Если что-то не получилось обсуждаем почему, чтобы избежать систематических проблем. Таким образом, с одной стороны, все видят, у кого что получается. Главное какие возникают трудности, и какие требуются решения.

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

Как вы начали работать вместе с издателем HypeTrain Digital и в чем они вам помогли?


Мы работали вместе над предыдущим проектом, 12 is Better Than 6, поэтому и обратились к своим старым партнерам с новой игрой.

Ребята помогли нам сделать Kickstarter и решить связанные с ним финансовые моменты. [Еще они] дают советы по стратегии продвижения, берут на себя общение с платформами и магазинами, оказывают всякую юридическую поддержку. Вкратце снимают с разработчика головную боль и позволяют просто делать игру. Нам это нравится.



Что стало самым большим испытанием в разработке после краудфандинга?


Наверное, выйти в [ранний доступ Steam] и показать потенциал не ударить в грязь лицом после успешного Кикстартера. Все-таки пролог на Кикстартере у нас был сюжетный и линейный. А а в ранний нужно было выйти с открытым миром-песочницей, показать совсем другую сторону игры.

Что сложнее делать краудфандинг-кампанию или работать над игрой в раннем доступе?


Краудфандинг-кампания такой сжатый по времени ранний доступ, как мне кажется. Но это больше репетиция. Сам ранний доступ требует более качественных апдейтов, и хоть не такого плотного, но регулярного общения с аудиторией.

Что проще не могу сказать. На мой взгляд, основная нагрузка с Кикстартером лежит на комьюнити-менеджменте. Хотя, учитывая, что [с выходом в ранний доступ Steam] нам пришлось расширить это направление, думаю, ранний все же будет посложнее.



Stoneshard симулирует десятки разных вещей от ранений персонажа до поведений животных и фракций. Как команда планирует взаимодействия всех этих систем?


У нас есть замечательный геймдизайнер Андрей который денно и нощно сводит это все воедино. Потом мы играем и смотрим, как это чувствуется, отдаем часть на переработку.

Что-то подмечает наша QA команда у нас она тоже полноценно влияет на разработку контента и систем, предоставляя свой фидбэк по новым механикам.

Как вы подходите к сбору фидбека во время раннего доступа?


Мы внимательно читаем все отзывы в Steam и комментарии на его форумах, а также обсуждения в нашем Discord-канале. Даже у QA-команды есть обязанность мониторить баги, [которые нашли игроки], и исправно их заносить мы за этим серьезно следим.

Всякие общие вещи мы узнаем через периодические devpollы. Это сконцентрированное мнение по нескольким интересующим нас моментам. Например, насколько сложно в начале игры. Ответ на такие вопросы не получить через форумы, их нужно задавать напрямую и получать усредненное мнение, обычно разбитое по возрастным группам и другим факторам.

После [выхода в раннем доступе] мы, впрочем, их еще не делали, потому что все слабые места ясны и так. После их исправления возобновим эту практику.



Как сильно отзывы игроков влияют на обновления Stoneshard?


Они влияют сильно, но не напрямую. Мы смотрим не столько на то, чего игроки хотят, сколько на то, почему они этого хотят и как вообще играют.

Например, хорошо помогают стримы. Там сразу видно, как люди играют, что у них получается, что нет, где они играют так, как задумано, а где нет.

Вы готовы отказаться от своего видения из-за отзывов? Например, сделать игру легче, или добавить в нее быстрые сохранения


Нет, не готовы. Иначе давно бы уже это сделали :)

Мы скорее корректируем позиционирование игры. Стараемся исправить страницу в Steam чтобы обложка игры производила правильное первое впечатление, и, соответственно, лучше бы работала на тех, кому игра потенциально зайдет.

Отзывы, где ругают игровые решения, а не баги или халтуру все-таки именно проблемы позиционирования игры, а не ее содержания.



Какую часть игры вы не хотели менять, но пришлось?


Мы решили сделать игру более сюжетной. Из-за этого нам пришлось больше сконцентрироваться на заранее заготовленных элементах, а не процедурной генерации, как планировалось.

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

А что вы точно не поменяете?


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



Много отзывов негативно высказываются о системе сохранений почему так важно, чтобы в Stoneshard сохраняться не было легко?


Я позволю себе процитировать один из отзывов, который как раз ее защищал вы же не жалуетесь, что в гонке нельзя сохраняться в середине заезда. Тут лучше и не скажешь.

Есть игровой цикл, и в рамках забега должен быть риск не вернуться домой. Сохранения в более частых интервалах сломают игру с риском, на которой основан жанр.

Почему в Stoneshard стоит поиграть в раннем доступе?


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

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



Что посоветуете игроку, который решит сейчас купить Stoneshard?


Получать удовольствие, что тут еще посоветуешь.

Может быть, не очень сильно обращать внимание на количество контента в игре сейчас его всего ~15-20% от запланированного.

Когда вы решите, что игра готова?


Когда мы введем все запланированные механики и контент. Мы двигаемся по плану. У нас есть, хоть и не доскональное, но все же представление о том, что в игре должно быть, и в какой последовательности большущий внутренний фичлист, который определяет количество и порядок ввода новых механик и позволяет следить за прогрессом.



Можете рассказать больше об обновлении Way Forward? Вы говорили, что это самое большое обновление за время работы над Stoneshard


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

Многие знают, что у нас сейчас примерно на десятом уровне заканчивается контент. Но не все понимают, что дальше линейно его штамповать мы не можем. Точнее можем, но он будет слишком однотипным. Мобы будут разными картинками с разными числами, новые подземелья перерисованными склепами и крепостями. Чтобы создавать более вариативных врагов и данжи, нам необходимо изменить текущий подход к ИИ и генерации.

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

Без углубления ИИ новый контент не будет чувствоваться новым. Это будут картинки и числа. Не тот эффект, который нам нужен.

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



Вы делаете Stoneshard уже несколько лет, в планах еще много задач, а выход запланирован на 2021 год. Сколько раз уже был риск выгореть?


Риск выгореть есть всегда. Возможно, это даже случалось несколько раз. Но это работа такая. Выгорел снизил темп, поправил силы и вернулся.

У нас бывает, что кто-то проседает на неделю или две. Чаще это связано с проблемами личного характера. Но это происходит редко, и на разработку не сильно влияет. Так что мы демократично к такому относимся.

Не боитесь обещать больше, чем сможете сделать?


Мы достаточно аккуратно к этому подходим, как нам кажется. Все, что мы заявляем в планах на будущее, предварительно обсуждается с каждым членом команды в пределах его компетенции. Пока каждый не даст добро, мы не включаем фичу в обещания.



Как вы услышали про Indie Cup и решили участвовать?


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

Чем вам помог Indie Cup?


Участие в любом конкурсе помогает получить мнение о проекте, особенно на ранней стадии, оценить конкурентные преимущества и интерес к нему.
Подробнее..

Бесплатный онлайн-круглый стол Тенденции игрового рынка 2021. Какие игры делать в новом году

12.12.2020 14:20:00 | Автор: admin
23 декабря 2020 года (среда), в 19:00, состоится Онлайн-круглый стол Тенденции игрового рынка 2021. Какие игры делать в новом году!

На круглом-столе вы узнаете о главных трендах в разных сегментах игрового рынка и сможете принять участие в фото-конкурсе Новогодний дух геймдева.



Вы узнаете:

  • Какие платформы в тренде? Какая экономическая привлекательность этих платформ ожидается в наступающем году?
  • Какие жанры в тренде? Какая экономическая привлекательность жанров ожидается?
  • Как обстоят дела у инди? На что делать упор инди-разработчикам? На какие сегменты лучше целить?
  • Как обстоят дела у небольших команд разработчиков (не инди, но и не корпорация)? Какие тренды, куда целить?
  • Что происходит с российским геймдевом? Куда всё движется?




Мы приглашаем инди-разработчиков, сотрудников игровых компаний, студентов и ВСЕХ, кто хочет делать собственные игры или играет в игры!

Участие в мероприятии абсолютно бесплатно. Все подробности на сайте>>>
Подробнее..

Из песочницы Alt City Online. Как я в одиночку создавал Gta Online для мобильных устройств. Часть 1

23.09.2020 02:13:19 | Автор: admin
Возможно ли в здравом уме замахнуться на подобный проект в одного, и надо ли оно вообще? Спойлер: да (длинный пост с картинками и видео).



Предыстория


Разработкой программных продуктов я занимаюсь уже 6 лет, начинал с разработки приложений для iOS. После выпуска нескольких приложений, которые в общей сумме принесли около $500, решил попробовать себя в разработке сайтов и настройке рекламы. В этой сфере я проработал 3 года, и понял, что создавать сайты не то, чем мне хотелось бы заниматься в жизни.

Так как с детства я очень любил игры, решил рассмотреть геймдев как будущую нишу, где хотел бы себя попробовать. Сделал бесплатную игру на SpriteKit (фреймворк Apple для создания 2D игр), начал знакомиться с инструментами для разработки игр. Решил подробно изучать Unity, так как он мне показался оптимальным вариантом для разработки именно мобильных игр. Выпустил в AppStore и в Google Play простенькую игру на Unity, и естественно поиграли в нее условно 3 с половиной человека. Это меня не особо остановило, так как цель разработки этой игры была в основном в том, чтобы познакомиться с процессом разработки в Unity и запуском игры именно в Google Play. Эти цели были выполнены, можно было двигаться дальше. Я начал уже более тщательно изучать Unity: 3-4 часа в день стабильно проходил Advanced курсы по разработке. Думаю, что мне повезло попался действительно подробный и толковый курс по созданию RPG в Unity, и многое, особенно различные best-practices, я узнал именно из него.

В это время мне подвернулась вакансия в одной крупной компании-разработчике мобильных игр, решил попробовать. Проработал там 3-4 месяца. Это была моя первая работа по найму. До этого вполне успешно работал только на себя. После определенного времени я понял, что это не мое. Надо отдать должное компания предоставляла максимальные удобства для работы. И вообще поразило то, насколько у нас в стране (живу в России, в городе миллионнике) может быть крутое отношение к работникам. Ни в коем случае не хочу сказать, что в других компаниях плохое отношение, просто то что я наблюдал это очень круто.

В общем, после ухода с работы, пришло понимание, что хочу попробовать создать действительно интересную и уникальную игру (наверное термин уникальная игра не совсем вяжется с концепцией игры-аналога GTA Online, но об этом дальше). С детства я обожал серию GTA играл десятками часов напролет в GTA Vice City и GTA San Andreas, ставил моды, крутил параметры машин. Потом после выхода GTA IV все то же самое делал с ней. Потом GTA IV: Episodes from Liberty City, GTA V. И естественно GTA Liberty City Stories, GTA Vice City Stories, GTA Chinatown Wars для PSP. Также было потрачено куча часов в других подобных играх Saints Row, Godfather 2 и т. д. Эх, хорошие были времена

Так вот, потом я познакомился уже с различными Role Play проектами, основанными на GTA. Но знакомство с ними, к сожалению, уже происходило через YouTube, так как работа стала занимать практически все время, а найти 30 минут в день на ролик не проблема. Считаю, что RP проекты создали очень интересную нишу, и вообще переосмыслили GTA.

RP проекты создали очень интересную нишу, и вообще переосмыслили GTA

Как я уже сказал выше, свободного времени становилось все меньше, и я захотел поиграть во что-то по типу GTA Online / GTA RP на телефоне благо сегодня телефоны действительно мощные, и по идее что-то подобное можно реализовать (например тот же PUBG, который отлично работает на практических любых устройствах). Каково было мое удивление, когда в AppStore я нашел буквально 3 игры, которые хоть как-то можно было отнести к аналогам GTA Online, да и те ужасные. Вот так и появилась идея создать первый аналог GTA Online для устройств на базе iOS и Android.

ALT: City Online




Геймплей в ALT: City Online это смесь классической GTA Online и ее Role Play модификаций. В самом начале игры ты появляешься в стартовой точке (предполагается, что это будет либо вокзал, либо аэропорт). Твоя задача найти работу и начать зарабатывать деньги и опыт. По мере получения опыта, тебе будут открываться новые профессии. Список профессий будет широкий, и я сейчас работаю над тем, чтобы сделать геймплей каждой профессии максимально интересным насколько это возможно. Далее ты сможешь купить себе квартиру, мотоцикл, потом дом, машину, машину получше в общем все, кто играли в GTA RP, знакомы с этим. Фишка игры заключается в том, что в сессии, в отличии от классической GTA Online, будут сотни человек, ты сможешь взаимодействовать со всеми разговаривать, наносить урон, кооперировать, обмениваться вещами, продавать вещи.



В игре будет возможность покупать оружие, менять его скины. Также в игре будет доступен тюнинг транспортных средств.

Но главное отличие от RP проектов в ALT: City Online нет классической для таких проектов консоли, нет администраторов, не нужно отыгрывать РП. Ты можешь, но не обязан.

Площадь карты в игре около 225 квадратных километров, но примерно треть площади покрыто водой, так что эффективная площадь равна примерно 150-160 квадратным километрам. Естественно, наполнить такой большой мир контентом в одиночку достаточно сложно, поэтому игра будет наполняться контентом в последующих обновлениях.



Важно то, что игра будет работать не только на последних топовых девайсах. Например, если говорить об iOS, то минимально поддерживаемое устройство iPhone 7. Вообще, основным боттлнеком оптимизации игры стала непрозрачность потребления памяти на iOS платформе (это известный недостаток Unity, с которым на данный момент мало что можно сделать), из-за чего было достаточно сложно оптимизировать огромный открытый мир для работы на маленьком устройстве с 2 гб оперативной памяти.


Какие вопросы предстояло решить


В первую очередь надо было вообще понять, возможно ли реализовать мобильную онлайн игру в большом открытом мире на Unity? Соответственно, был куплен простенький генератор города для Unity, контроллер персонажа, скачаны бесплатные модели оружия и автомобиля и кое-как настроен клиент сервер (вопрос реализации мультиплеера решался достаточно долго, так как официального решения от Unity нет, а фреймворков много, и они очень отличаются, расскажу о сетевой архитектуре подробнее в одной из будущих технических статей). Спустя две недели был готов достаточно играбельный прототип. То есть был запущен тестовый сервер игры на виртуальном сервере, установлены клиенты на телефоны друзей. Мы подключились, поиграли все отлично работает для прототипа, все довольны. Провел стресс тест, получилось, что минимум 100 игроков сервер точно держит. Для игры это достаточный минимум, но вообще, цель 600-1000 игроков на сервере (то есть столько игроков будет одновременно в сессии). В общем, пришло понимание, что Unity очень даже подходит под этот проект.


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

Далее нужно было понять, как быть с 3D моделями? А их нужно было действительно много здания, автомобили, различные пропсы, одежда, оружие. И самое главное как смоделировать сам мир: ландшафт (террейн), дорожную сеть, город? Написал подробный список всех нужных объектов. Потратил неделю на поиск нужных моделей по списку, и понял, что в принципе все что нужно есть в магазинах 3D моделей.

Сделаю отступление надо понимать, что я занимаюсь проектом с декабря на фул-тайме (по 10-12 часов в день, без выходных), а практически все средства, отложенные за прошлые годы, я тратил на покупку различных инструментов и 3D моделей. Думаю, это снимет многие вопросы по поводу того, почему на некоторые этапы потрачено мало времени.

Все, что я написал выше, произошло в период с декабря прошлого года до февраля текущего. Начал работу над проектом в декабре, то есть за три месяца был протестирован прототип, написан диздок, найдены ресурсы для реализации идеи. Вопрос оставался за малым все это сделать и собрать в кучу.

Важно в самом начале, еще до написания диздока, думать о том, как игроки узнают о твоей будущей игре. Мой скромный опыт показывает, что самая лучшая маркетинговая стратегия это сделать действительно уникальную крутую игру. Если игра действительно уникальная и очень крутая, то у тебя нет варианта, чтобы игра провалилась. Да, я знаю, что очень многие готовы сильно поспорить с этим утверждением, что в игру надо вкачать много денег, чтобы она выстрелила, и т.д. Одно скажу я тоже раньше так думал. Но были обстоятельства, которые показали мне, что если игра крутая она выстрелит и без маркетинговых бюджетов, а если игра отстой то ее никакие бюджеты не спасут. Поэтому мой основной маркетинговый план был сделать интересный и уникальный проект.

Текущее состояние проекта


На данный момент я работаю над игрой уже девятый месяц. Проект готов к альфа релизу на 85%. Уже сейчас полностью смоделирована карта, настроена работа открытого мира на телефонах, проведена работа над рендерингом (LODы, различные настройки графики, оптимизация текстур, динамический батчинг и т.д.), настроена архитектура клиент-сервера, оптимизировано потребление памяти.

Для альфа релиза осталось доработать базовые механики, добавить работы, добавить контент (автомобили, одежду), добавить UI и все это хорошенько протестировать.


Скриншоты










Заключение


Спасибо, что дочитали данный пост до конца. Это мой первый опыт написания статьи, так что буду рад фидбеку. Это первая статья из цикла, посвященного скорому релиз игры ALT: City Online. Последняя статья этого цикла будет новостью о релизе игры. Так что, пожалуйста, пишите, про что хотели бы почитать в будущих постах.

Огромная просьба ко всем, кого заинтересовал проект: скоро мы начинаем открытые альфа тесты в онлайне на Android и iOS, поэтому вступайте в группу ВКонтакте, чтобы узнать, когда начнется альфа тестирование. Тем самым вы очень поможете развитию проекта. Всем тестировщикам естественно полагаются жирные игровые призы сразу после релиза проекта.

Также подписывайтесь на Twitter, там будут выкладываться новости, а также актуальные фото и видео о разработке: @AltCityOnline

На сайте ALT: City Online вы также можете оставить свой email. На него придет оповещение, когда игра будет доступна для загрузки. Всем, кто оставил свой email на сайте, так же положен жирный бонус при запуске игры!
Подробнее..

HexThrees моя первая законченная игра

25.01.2021 22:13:40 | Автор: admin

Привет Хабр! Одно время здесь весьма популярны статьи "вот моя первая игра". В последнее время я что-то их не наблюдаю, так что решил восполнить этот пробел самостоятельно.

История создания и геймплей.

Игру, созданную самостоятельно от начала до конца я хотел сделать очень давно - начал ещё году в 2012ом с top-down шутера на java под android. Небыстро поняв, что такое в одиночку не потянуть, через пару лет переключился на миниатюрную стратегию на C++. Через год или около того интерес пропал и к ней, и, хоть я иногда и возвращался к этим проектам, всерьёз я понимал, что мне их никогда не закончить. И тогда я начитался статей для новичков геймдева и решил пойти по пути наименьшего сопротивления: быстренько склонировать что-то известное. Только такой путь позволил бы наконец довести хоть что-нибудь до логичного конца.

За основу была взята игра Threes, а точнее, её клон 2048, в который я залипал тогда очень крепко. В качестве оригинальной фичи было решено сделать поле не квадратным, а гексагональным. А ещё и с возможностью выбирать его размер. А чтобы сделать совсем непохоже ни на Threes, ни на 2048, принцип совмещения ячеек сделать динамическим - пользователь сам волен выбирать, нравится ему тройки гонять или степени двоек.

В процессе написания игры я пришёл к выводу, что пользователь, на самом деле, неумён и доверять ему столь важные геймплейные решения было бы весьма опрометчиво. Поэтому размер поля стал гибким: с самого начала предоставляется минимальное 3х3, а затем потихоньку всё увеличивается до максимальных 7х7 (впрочем, шанс выпадения бонуса, который увеличивает поле, обратно пропорционален количеству открытых клеток, так что всё поле не откроет никто). Сам принцип же совмещения игровых фишек мне пришёл во сне, когда я спал на очередной планёрке в начале scrum-ной двухнедельки. Каждую задачу на работе мы оцениваем на сложность по числам Фибоначи от одного до восьми: 1, 2, 3, 5, 8 (условные человекочасы, ценность которых устаканивается для каждой команды).

"Отличная идея!", подумал я, и добавил это в свой хобби проект. Теперь направление движений плиток тоже имеет значение: 1 может "въехать" в 2, но не в обратную сторону. А поскольку 8 это уже степень двойки, то начиная с неё все значения просто будут удваиваются.

Увереный в собственной гениальности, я показал прототип другу. "Ок, и что дальше?" - спросил он. И я задумался.

Действительно, чтобы ещё добавить в и без того идеальную игру? Конечно, бонусы! И таймер, чтобы подстегнуть зазевавшегося пользователя (в итоге я сделал его отключаемым). В качестве бонусов я добавлял все пришедшие в голову идеи, которые могли бы помочь игроку не застрять в этой игре. Вышло не так уж и много: расширение поля, пауза таймера, открытие заблокированных клеток и удаление фишки с поля. Да, и время от времени вместо бонусов игроку выпадает замок, который блокирует одну из клеток. То, что это плохо для игрока, игрок должен понять интуитивно.

Быстро текст пишется, да небыстро баги вылавливались. И если в начале код имел лёгок, имел относительно чёткую структуру Model - ViewController - Command, то под конец чёткий запах спагетти могли почувствовать даже те, кто лишь мимолётом взглянул в экран ноутбука из-за моего плеча в поезде, в котором и писалось большинство кода. Поскольку проект изначально имел главную цель дожить до релиза, то о качестве и чистоте кода я задумывался не слишком. Не добавляло радости и то что swift для меня совершенно не родной язык и в некоторых местах не хватало C# с основной работы. Единственная попытка рефакторинга, которую я предпринял, заключалась в том, что все команды к игре генерировались бы через фабрику, интерфейс к которой легко должен был бы заменяться и, в теории, тестирование отдельных команд должно было быть гораздо проще. На практике я потратил на это почти месяц, это отбило желание писать на Swift ещё на пару месяцев, половину из сделанного я откатил отбратно, а взорванные сопли провалившегося рефакторинга до сих пор видны то тут, то там.

Итак, геймплей готов. К нему добавить немного шейдеров, чуть геометрии для сглаживания хексагонов, motion blur, haptic feedback, страницы помощи, кнопки для тех, кто не любит свайпать, туториал, иконки (нарисованы профессиональным программистом), страницу в app store со всеми скриншотами, видео-превью, растянутое ffmpeg'ом под все расширения, privacy policy, отдельный сайт, чтобы как у людей - в общем, самая минимальная игра-головоломка, которую я только мог придумать, заняла больше двух лет моей жизни. Я не считал конкретные часы в первый год разработки, но довести идею от сырого прототипа до полностью готовой и выложенной в магазин игры заняло 238 часов. Разумеется, это была не основная моя работа и даже не основное хобби, но всё равно это приличный срок для клона мобильной игры.

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

Это всё-таки хабр, поэтому немного кода.

Итераторы

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

Конечно, двумерный массив проще всего перебирать двойным циклом, прямо как в седьмом классе на уроках qBasic. Но есть проблема: алгоритм для движения и объединения фишек, который проще всего написать и протестировать, оперирует с одномерным массивом - линией. И, к тому же, иногда поле прерывается заблокированной клеткой и тогда одна линия превращается в две. Довершает всё то, что клетки могут двигаться по трём осям в двух направлениях. Так что вместо простого двойного цикла пришлось делать шесть итераторов: XUp, XDown, YUp, YDown, Left and Right, каждый из которых возвращает отрезок, на котором можно уже и запускать игровую логику. Для примера код одного из итераторов с комментариями:

class BaseCellsIterator {    internal var line = LineCellsContainer() // Текущая линия    internal var x: Int = 0         internal var y: Int = 0    internal var w: Int { self.gameModel.field.width } // Ширина поля    internal var h: Int { self.gameModel.field.height } // Высота поля}class MoveXDownIterator: BaseCellsIterator, CellsIterator {      func next() -> LineCellsContainer? {        line.clear() // Очистим контейнер        if x >= w { // Если дошли до "правого" края поля, перемещаемся выше            x = 0            y += 1        }        if y >= h { // Дошли до "левого" края поля, выше некуда, это конец            return nil        }        // Это хитрый способ написать классический цикл for(; x <= w; x++) до "правого" края поля        for _ in x ..< w {            defer { x += 1 }             guard let cell = getCell(x, y),                 !cell.isBlocked,                !cell.isBlockedFromSwipe            else { break } // Проверка на то, что текущая клетка не рвёт цепочку            line.add(cell)        }        return line    }}

Итераторы по диагонали выглядят ещё "интереснее", можно посмотреть здесь. Я думаю, переписать двойной цикл в итератор было бы занятным заданием на интервью.

Иконки

Для меня они вышли настоящим мучением. Наверное, нужно было привлечь кого-нибудь из знакомых художников и попросить нарисовать, но я изначально хотел всё сделать сам. Пока делал логику, иконками служил пак котиков, который когда-то давно выложили на хабре (за давностью лет никак не могу найти на него ссылку, а этот набор уже не в одном проекте мне служил добрую службу графических placeholder'ов). Когда пришло время нарисовать настоящие картинки для бонуса, я пытался их сделать в фотошопе, потом в векторных редакторах, пытался нарисовать от руки и отсканировать. Выглядело это хуже верблюжих фекалий. В итоге лучший вариант который я нашёл - сделать их так же, как и всю остальную игру - в коде. Как оказалось, SpriteKit вполне себе неплохо работает даже в консольной утилите, надо только рендерить их не на экран, а в текстуру, которую затем сохранять на диск, а геометрию можно использовать из основной кодобазы. Если сделать SKNode того, что нужно нарисовать (главное - не использовать абсолютные координаты, а скейлить от какого-то базового размера, чтобы затем удобно было иконку подгонять под нужное разрешение), то затем подобная функция сохраняет файлы на диск:

    public func renderNode(node: SKNode, filename: String) throws {        let destinationURL = URL(fileURLWithPath: filename, isDirectory: false) as CFURL        guard let texture = view.texture(from: node) else { throw ImageGeneratorError.textureRenderFailed }        let image = texture.cgImage()// Почему здесь "public.png" в качестве Uniform Type Identifier, я, признаюсь, не помню и не знаю.         guard let destination = CGImageDestinationCreateWithURL(destinationURL, "public.png" as CFString, 1, nil) else { throw ImageGeneratorError.destinationCreationFailed }        let imageProperties = [kCGImageDestinationLossyCompressionQuality as String: 0.8]        CGImageDestinationAddImage(destination, image,imageProperties as CFDictionary)        let result = CGImageDestinationFinalize(destination)        let date = Date()        let calendar = Calendar.current        let hour = calendar.component(.hour, from: date)        let minutes = calendar.component(.minute, from: date)        let time = "\(hour):\(minutes)"        print(result            ? "\(filename) rendered successfully at \(time)"            : "\(filename) render FAILED at \(time)")    }

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

Итог

Где-то месяц назад я наконец-то выложил игру в App Store, скинул ссылки друзьям, опубликовал пару постов на реддите. Как итог - игру скачали 37 раз, из них 6 раз купили. При этом я был одним из купивших. Получение прибыли не было целью этого хобби-проекта, но в материальном плане я несколько разочарован.

С другой стороны, ощущение, когда то, что писал по вечерам и в поездах по дороге на работу - работает, закончено, и с этим кто-то играет - бесценно.Я не просто было одним из команды, разрабатывающей новый проект, я сделал и завершил это полностью сам. Много лет я делал какие-то поделки, которые всегда шли в стол и только сейчас что-то из этого увидело свет. Потешить своё самолюбие программиста дорогого стоит.

Если подвести итоги более структурировано:

  • Инди игры не приносят денег без маркетинга и ими стоит заниматься только в качестве хобби.

  • Знания не бывают лишними. Конструкции языка, которые я узнал из Swift впоследствии я позднее обнаружил и в С#8/9.

  • Довести проект до релиза это не то же самое что и запилить прототип. Чем меньше остаётся вещей, которые нужно доделать, тем сложнее над ними работать. Происходит большая недооценка сложности ("ну на скриншоты у меня уйдёт полчаса") и сильная потеря мотивации.

  • Я понял, что работать full-stack девелопером для меня куда интереснее, чем перейти на позицию ios-разработчика. Тем не менее, любая технология надоедает, если решать задачи только с её помощью, поэтому разделение "на работе .net, а потом часик в Swift" помогает продуктивности в обоих направлениях.

И самый главный результат - теперь у меня есть, наконец, игра, в которую лично мне интересно позалипать в поезде по дороге с работы. Жаль только, я уже год как работаю из дома.

Ссылка на GitHub

Подробнее..

Из песочницы Индюшатина, как ее готовят

19.09.2020 22:22:49 | Автор: admin

GoooGooo
Привет! Сегодня мы поговорим с ребятами из Literal Team, которые делают игру Sovereign's Will об их страданиях, мучениях и победах при разработке индюшатины. Есть много замечательных игр, от больших и богатых студий играй и переигрывай. Но тем не менее люди берутся создавать свои, в гараже, на коленке, тратя сотни часов личного времени и кучу денег, без каких либо гарантий успеха. Мы живём в удивительное время, когда каждый, у кого хватит упорства, может на коленке собрать игру своей мечты или почти каждый или мало кто. Большинство таких проектов не доживают даже до стадии дизайн концепта. Ребятам из LT есть чем похвастаться, они обошли многие подводные камни инди разработки, проделали огромную работу на чистом энтузиазме, создали альфу, отказались от нее, создали другую альфу и продолжают упорно работать дальше. Видеть, как люди в режиме реального времени превращают свою мечту в реальность очень прикольно и вдохновляет, об этом мы с ними и поговорим.


Lesich
Привет! Я Алексей, один из участников LT, занимаюсь геймдизайном, кодингом и другими вещами по мере их поступления.


graphomant
Привет! Меня зовут Артём, я отвечаю за сценарий и текстовое наполнение игры


GoooGooo
Расскажите пожалуйста, почему вы решили этим заняться?


graphomant
Я всегда интересовался двумя вещами: играми и литературой. Совместить эти два занятия идея, лежащая на поверхности, но, к сожалению, в моё время (мне 31) информации о геймдеве было куда меньше, чем теперь. И казалось, что игры делают какие-то небожители, причём преимущественно англоговорящие. Но само желание никуда не девалось. Несколько лет назад я стал пробовать себя в качестве писателя, и вот чуть больше года назад мы с Literal Team нашли друг друга)


Lesich
Давно, еще с 2007 года, я читал бумажный журнал (такое нынче редкость) "Игромания". Помимо статей с обзорами игр и новостями индустрии там также был раздел "Игрострой", в котором рассказывалось о разработке игр, предлагались руководства и приложения для этого. Тогда я начал понимать, что в современном мире есть возможность создавать игры самостоятельно, и это захватило мое воображение.


Но тогда особо ничего не выгорело (кроме того, что я случайно удалил кучу нужных файлов с родительского компьютера, пытаясь установить какую-то программу для создания 3д-моделей), и вернулся я к идее создать игру уже через десяток лет, когда мы с товарищами решили попытаться создать что-то свое. Так началась история Sovereign's Will точнее, тогда еще King's Ambitions.


GoooGooo
Сколько вас человек в команде?


Lesich
После трех изменений состава команды, сейчас у нас двое разработчиков (я и Артем) и переводчик @Arsonium. Недавно мы также договорились о сотрудничестве с Gloomy тоже в плане перевода.
Но ветераны команды остаются с нами и периодически дают ценные идеи!


GoooGooo
Насколько я понимаю это ваш первый проект. Почему сразу был выбран такой сложный жанр как РПГ стратегия/интерактивная новелла, а не платформер например? Когда вы за это брались, вы представляли насколько трудоёмко это будет?


Lesich
Мы руководствовались целью сделать то, что будет интересным и будет выделяться в огромном море инди в Стиме. Да, мы предполагали, что сразу начинать со стратегии будет сложно, но всё равно остановились на это выборе по двум критериям. Во-первых, мы решили, что таким образом избегаем кучу других сложностей скажем, анимирования или разработки ИИ противников. Именно стратегия лучше всего покрывалась умениями участников команды. А во-вторых, проект изначально задумывался как небольшая бесплатная игра, проба сил и оценка отклика. Но мы не смогли вовремя определить круг работ и остановиться..


graphomant
О выборе жанра вам расскажет Алексей я-то присоединился к разработке, когда проекту было уже несколько лет. Но что до меня, то я вообще не понимал, в какую сложную историю ввязываюсь ;) Я знал, что ребята делают стратегию, и поначалу мне казалось, что я буду, скажем, делать какие-нибудь описания зданий и юнитов. Очень боялся, что придётся рыться в исторических книгах %) Потом слово за слово выяснилось, что сеттинг около-фентезийный, что писать нужно будет гораздо больше, чем я думал (вдобавок переписывать всё, что было написано до меня). Но, если бы даже я всё это сразу знал, то согласился бы, даже с большей охотой. Такой формат даёт огромный простор для "литературщины" здесь тебе и сценарий, и биографии, и описания локаций, и ветвистые квесты о большем и желать не приходится! Это настоящая проверка для меня как для автора.


Lesich
Не несколько лет, а всего полтора года, это важно!


graphomant
(смеётся)


GoooGooo
Для своей игры вы создали целый мир, расскажите пожалуйста о нем вкратце.


Lesich
О, я расскажу, с чего все начиналось, а Артем расскажет, к чему пришло.


graphomant
Валяй


Lesich
Сейчас будет инсайд: изначально сеттингом игры должна была быть Русь. Примерно с Рюрика и до 18 века. Мы хотели сделать игру, раскрывающую детали российской истории и позволяющую проверить "а что, если". Скажем, а что, если центром объединения русских земель стал бы Новгород? А что, если бы в России установилась аристократическая республика?


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


Поэтому на общем совете было решено делать свой средневековый мир. Точнее, даже не совсем делать. Один из участников команды, Солар ведущий в форумных стратегических играх (это что-то вроде ДнД с мастером, но в виде стратегии). Он взял за основу придуманный им мир Владения империи, подчинившей весь мир. И дальше была долгая дорога с доработками и адаптацией.
Солар примерно через 6-7 месяцев покинул команду, какое-то время мы по инерции работали с его материалом, а дальше к команде присоединился Графомант. Тогда мы и начали прорабатывать то, к чему пришли сейчас.


graphomant
Когда я подключился к разработке, главной сложностью для меня было вникнуть в уже накопленный материал от других авторов. Написано было уже довольно много, в общих чертах был прописан мир, персонажи и взаимоотношения, поэтому первые несколько недель я в основном читал, читал, читал. И попутно шлифовал тексты с точки зрения той самой "литературщины", ничего не меняя по сути. Редактура мне даётся очень просто, я могу делать это практически не задумываясь и не тратя сил слово туда, слово сюда, уточнить, перефразировать, и так далее


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


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


GoooGooo
О_о, т.е. вы изначально замахивались на что то типа стратегий Парадоксов?


Lesich
Сейчас это выглядит смешно и самонадеянно, но да, замахивались. Я сам, бывает, посмеиваюсь над людьми, которые собираются на форумах, чтобы сделать "убийцу WoW" или ААА-шутер с открытым миром и грабежом корованов. Но мы сами действительно хотели сделать что-то вроде Europa Universalis, но с упором не на "песочницу", а на историю одного конкретного региона. Наивно было полагать, что если в ЕУ дать возможность играть только за одну страну, то она станет гораздо проще в разработке, но мы это поняли не сразу.
Поделюсь, что один из первых диздоков-игры иронично был сохранен как "Клон ЕУ.docx"


GoooGooo
Когда мечта начинает воплощаться, сталкиваешься с серьезными ограничениями. Понимаешь что все, о чем так мечталось сделать не удастся, потому что свободное время, которое можно посвятить разработке, не резиновое и есть ограничения в финансах и человеческих ресурсах которые можно привлечь. У вас есть классная статья на ДТФ, где вы рассказываете о "Суверене". Там вы пишите о том что с самого начала в разработке вы задали себе четкие рамки. Расскажите пожалуйста об этом подробнее.


Lesich
Конечно, говорить о том, что эти рамки были установлены "с самого начала" это несколько лукавить) Мы прошли долгий путь перед тем, как поняли, какую именно игру будем делать. Если бы мы делали платформер или, скажем, шутер, то было бы достаточно просто определить рамки того, что нам нужно создать. Скажем, в шутере это механика стрельбы, враги, уровни. Но в Суверене мы и сами не могли очертить жанр игры, поэтому простор был действительно безграничный. И это было большим минусом.
В итоге мы много обсуждали, пытаясь выявить суть игры, то, что мы можем дать игрокам на хорошем уровне, и что может выделить нас из тысяч других игр. Так и остановились на четырех критериях: нелинейности, феодализме, последствиях решений и политической борьбе. Обсуждая добавление какого-то элемента, мы оцениваем его соответствие этим критериям: поможет ли он раскрыть их? Не будет ли он чуждым в системе остальных элементов? Это здорово помогает понять, стоит ли овчинка выделки в каждом конкретном случае.


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


Lesich
вот так выглядит начало уже четвертого диздока по игре
imagehttps://i.imgur.com/uWU8eBF.png


GoooGooo
У вас в игре основной носитель информации это текст, хотя есть и весьма достойная графика, со своим уникальным стилем. Как вы решали какими средствами рассказывать вашу историю и каков должен быть их баланс?


Lesich
В основном исходя из наших возможностей, хах. У нас в команде нет художников, но, к счастью, и целевая аудитория нашей игры достаточно благосклонно относится в том числе к играм без мощной графической части. Если бы такой аудитории не было, нам не было бы и смысла что-то делать...


graphomant
О, мы это до сих пор решаем! В опросе, который прикреплён к демо-версии, мы отдельно спрашиваем, не показалось ли игроку, что текста слишком мало или слишком много. На самом деле, очень тяжело определить ту тонкую грань между твитом и простынёй текста. Люди читают очень по-разному, с разной скоростью, с разной, скажем так, толерантностью к словесным изыскам. Очень простой текст одному покажется приятным и понятным, а другого может разочаровать как слишком примитивный. Здесь мы опираемся только на собственное чутьё, потому что объективного критерия нет.


Lesich
В любом случае, мы постепенно стараемся сократить объем текстов.
Изначальные тексты ивентов, написанные еще Соларом, могли занимать две страницы текста...


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


Lesich
Могу заметить, что "урезанная часть", о которой жалеют некоторые фанаты это меньше половины от всего вырезанного контента) К сожалению, реалии разработки игр таковы, что очень сложно заранее понять, будет ли интересно играться какой-то эпизод. Поэтому практически единственный вариант это итерирование. Мы что-то делаем, проверяем, работает ли оно. Если не работает, то оцениваем, есть ли смысл пытаться это доработать или лучше и безболезненнее выбросить.


Да, это грустно, но необходимо. Лучше так, чем продолжать вкладывать силы в элемент, от которого все равно придется отказаться.
Но и не стоит рассматривать вырезанный контент как пустую трату сил. Пока мы над ним работали, мы приобрели новые навыки, проверили какие-то гипотезы. Да и кто знает, может, мы задействуем эти элементы в платных ДЛС будущих играх!


graphomant
Мне рыдать пока не приходилось, потому что вырезано было только то, что писали до меня ;) Эти сокращения мы делали по разным причинам. Некоторые тексты были хороши по сути, но непомерно огромны приходилось делать выжимку. Некоторые не укладывались в рамки обновлённого сеттинга. А ещё была отдельная часть игры, которую мы вырезали. Она посвящена борьбе с голодом, и мы решили, что по тону этот отрезок сюжета не подходит для самого начала игры.


Lesich
graphomant, ну ты морально готовься на всякий случай


GoooGooo
Lesich мы знаем что Вы по профессии профессор и Ваша работа заключается в том, что Вы гоняете на входе в ВУЗ студентов без масок.
graphomant а чем занимаетесь Вы?


graphomant
У меня скучнейшая офисная работа возможно, поэтому меня так и тянет к творчеству ;) Сейчас я работаю в интернет-рекламе.


GoooGooo
У вас ограниченные ресурсы, ваше личное время которое вы можете отдать разработке и которое вам никто не оплачивает, у вас нет никакого финансирования со стороны для того чтоб заплатить сторонним специалистам, приходится это делать на свои и тем не менее постройка игры идёт полным ходом. Расскажите пожалуйста о планировании, как вы распределяете свои ресурсы, как решаете, что нужно сделать в первую очередь, во вторую, от чего вообще отказаться?


Lesich
В основном совещаниями. Мы используем доску в Trello для отслеживания задач и их приоритетности. Это выглядит вот так:
imagehttps://i.imgur.com/c3h7hS6.png
Задачи сортируются по сферам, чем выше задача в списке тем выше ее приоритет.
Одно время я пользовался приложением Todoist, но через какое-то время оповещения "15 задач на сегодня, 72 просроченных" начали меня угнетать. Пришлось удалить.


graphomant
Это, конечно, отдельная боль. Когда я утром составляю план на день (да, я правда так делаю), у меня в списке вперемешку оказываются задачи по основной работе, задачи по разработке игры, бытовые задачи, покупки, какие-то личные дела. Как расставлять приоритеты вопрос вечный и нерешаемый. Иногда я больше отдаюсь разработке, иногда личным делам. Когда в одной сфере наступает перенапряжение, я просто переключаюсь на другую.


GoooGooo
Сколько часов в неделю вы посвящяете разработке?


Lesich
О, тут всегда по-разному. Иногда наступает такая апатия, что выходит всего 2-3 часа в неделю. А, например, перед выходом демо в Steam я сидел над ним по 4-6 часов в день. Последние два дня перед выходом по 10.
И в такие моменты ты кажешься себе просто властелином продуктивности, но не рекомендую таким злоупотреблять. Уже через несколько дней ты чувствуешь себя настолько опустошенным, что не будешь ничего делать совсем. И всё преимущество от этих переработок нивелируется.


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


GoooGooo
И как на такое массивное использование свободного времени реагируют жены/подруги?


Lesich
Нет жён нет проблем


graphomant
Мне в этом смысле повезло семья, друзья и подруги всецело одобряют мои художества.


Lesich
Между прочим, жена разработчика Stardew Valley несколько лет работала за двоих, пока он клепал свой инди-шедевр!


GoooGooo
Как вы можете оценить свою работу, что уже сделано, за что вы себя определенно можете похвалить, над чем работаете и что предстоит сделать?


Lesich
Это очень обширный вопрос. Если отвечать в общих чертах, то я могу сказать, что мы сделали меньше, чем могли бы. Но при этом нас определенно можно похвалить за то, что мы до сих пор не бросили!


graphomant
Мне кажется, что для столь маленькой команды, которая работает на идею и не имеет опыта разработки игр, мы держимся очень даже неплохо)


Lesich
Самое наглядное наше достижение, это то, как мы перешли от этого:
imagehttps://i.imgur.com/5c6jgwG.png
через это:
imagehttps://i.imgur.com/7sFT4np.png
к этому:
imagehttps://i.imgur.com/b5jKQcu.png


graphomant
К сожалению, прогресс текстовой части так наглядно не покажешь, но там тоже стало слегка получше, чем было


GoooGooo
graphomant Вы говорили что постоянно работаете над сокращением текстов, чтоб они лучше воспринимались игроком. Не жалко резать? Как Вы решаете, что и насколько сократить?


graphomant
Нет, не жалко. Помогает то, что я вожусь с текстами уже много лет и успел привыкнуть к тому, что резать и переписывать необходимо. Если человеку жаль редактировать свои тексты, то он либо не успел набраться опыта, либо просто графоман. Тут двух мнений быть не может редактировать и сокращать тексты так же естественно, как, скажем, заниматься монтажом отснятого материала для кино.
Сколько сокращать и что переделывать. Здесь ты либо видишь избыточность можно выразить ту же мысль более кратко, либо замечаешь какую-нибудь "занозу". Занозы бывают очень разные: неудачный ритм фразы, прорыв другого стиля в текст (например, канцеляризма), и так далее. По сути приходится многократно перечитывать текст, чтобы выровнять их все.


GoooGooo
Насколько я понимаю вы пытаетесь добиться того чтоб каждый персонаж, с которым будет взаимодействовать игрок был объемным, живым. Как вы это делаете?


Lesich
В основном это вопрос к Артёму, конечно. В целом мы работали примерно так: оценивали роль этого персонажа в геймплее и сюжете, на ее основе определяли его основные черты и особенности, а дальше Графомант добавлял множество деталей, дополняя до полноценного человеческого образа.


И, конечно, мы поломали много копий на этом этапе!
imagehttps://i.imgur.com/qqsyRx7.png
Зато каждый персонаж теперь как родной.


graphomant
Любой автор к этому стремится. Благо, посредством текста можно очень подробно очертить образ происхождение, характер, реакции на события. Сейчас у нас 15 основных (геймплейных) персонажей, не считая закадровых. Мои предшественники собрали хороший набор архетипов: суровый военачальник, бюрократ, разбойник, рыжуха-пиратка Мне оставалось только создать им новые биографии в соответствии с архетипом и особенностями их вотчин. Некоторые нужно было только слегка подправить (творчество других нарративщиков иногда конфликтовало между собой, и тогда я выбирал вектор). Для некоторых написались целые небольшие рассказы об их детстве, юношестве и зрелости.


GoooGooo
О, я вижу в биографии много деталей, они играют какую то роль в прохождении игры?


Lesich
Конечно. Фактически, у каждого персонажа есть две биографии. Одна, краткая, отображается в окне взаимодействия с ним и содержит наиболее важные моменты, которые играют роль в сюжете и геймплее. Например, если внимание акцентировано на том, что персонаж соблюдает закон, а игрок попытается подкупить его подчиненных, могут быть серьезные последствия.


Есть также расширенная биография в Кодексе со множеством деталей, которые как могут подсказать тактику поведения с этим персонажем (например, использовать его происхождение), так и служат для общего наполнения лора игрового мира.


GoooGooo
Выше вы писали о нелинейности геймплея, как об отличительной особенности игры. По нынешним временам это очень редкий зверь для игр в которых нет процедурной генерации обьектов. Расскажите пожалуйста об этом подробнее.


graphomant
Мне кажется, что сделать сюжет нелинейным это такой священный грааль любого нарративщика. В случае дорогостоящих ААА-игр сделать это очень трудно, слишком уж велики затраты на контент, который отдельно взятый игрок может никогда не увидеть (хотя и тут есть редкие удачи например, Ведьмак 2 с двумя принципиально разными игровыми актами в зависимости от сделанного игроком выбора). В нашем же случае нелинейность всего лишь означает, что сценаристу нужно продумать и написать не один вариант развития событий, а, скажем, пять. нервно хихикает
Если говорить о конкретном воплощении, то здесь мы проделали некий путь. Поначалу мы пытались чертить огромные блок-схемы, но скоро стало понятно, что это очень неэффективно и трудозатратно само по себе. По сути ты становишься заложником инструмента, каким бы хорошим он не был. Разные студии решают эту проблему по-своему некоторые даже пишут собственные софты, чтобы держать и сопоставлять куски истории.


Lesich
Да, поддерживаю. У нас есть большое преимущество в этом плане. Сценарист Даинг Лайт и Мафии 3 как-то сказал: "Игры, над которыми я работаю, не состоят исключительно из текста. Как только в дело вступают арт, анимация и так далее, возможность постоянно разветвлять историю в духе книжек Выбери своё приключение у тебя немедленно пропадает".


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


graphomant
Если говорить ещё конкретнее, то нам пришло в голову адаптировать систему из игр Failbetter Fallen London, Sunless Sea и Sunless Skies. Там по мере прохождения персонаж получает условные "метки" побывал там-то, познакомился с тем-то, взял такое-то задание. Сейчас мы взяли курс на то, чтобы строить нелинейность на основе таких вот меток. К примеру, если игрок познакомился на балу с определенным персонажем, то он получает метку, и затем факт наличия (или отсутствия) этой метки выступает как триггер для события или эффекта. Это избавляет нас от необходимости создавать эти сумасшедшие блок-схемы. По сути вся нелинейность может укладываться в ассортимент таких вот меток.


Lesich
Вот, на этом скриншоте в правом окне часть меток события "Коронация":
image


GoooGooo
Но нелинейность в таком случае предполагает, что многие сюжетные линии пройдут мимо игрока. Вам не жалко затраченного труда?


Lesich
Лично мне бывает жалко. Я сам, как игрок, стараюсь посмотреть все сюжетные ветки, которые есть в играх, и мне немного грустно от того, что игрок увидит только небольшую часть контента. Но, во-первых, он зато получит классное осознание нелинейности происходящего, а во-вторых, возможно, это сподвигнет его на перепрохождение другим способом.


graphomant
Безусловно жаль. Но без этого никак. Мне как игроку бывает очень приятно, когда я встречаю в играх реальный исход своего собственного выбора. Чтобы вызвать у игрока это чувство, мы должны либо дать реальное пространство выбора, либо как-то хитро его имитировать. Пока что мне кажется, что имитировать сложнее. Но посмотрим, как мы дальше заговорим)))


Lesich
"хитро его имитировать"
Я так Волкинг Дэд от ТеллТейлов бросил...


GoooGooo
Хм т.е. у вас мир квази живёт своей жизнью?


Lesich
Жизнь мира строится фактически из двух элементов: это длань сюжета, которая перетасовывает персонажей и события, и некоторая полуавтоматическая системность: мы постараемся, чтобы персонажи взаимодействовали друг с другом, фракции боролись с игроком, а мировая обстановка влияла на состояние дел внутри маркграфства. Но пока эта система сыровата, и мы не выкатили ее тестерам. Кто знает, может, еще придется ее вырезать!


graphomant
Нет-нет, под имитацией я имел в виду такую систему, в которой реального выбора или нет вообще, или его пространство значительно уже, чем преподносится игроку. Например, когда в начальной точке даётся огромное множество вариантов, которые очень скоро ведут к одной и той же точке. Игроки уже давно научились такое видеть и это определённо не то, что нам хотелось бы создать.


GoooGooo
Скажите, над чем вы работаете прямо сейчас и какие у вас виды на разработку игры в обозримом будущем?


Lesich
О, мы планируем сделать пост в Стим с описанием наших планов на ближайшие месяцы разработки, но могу выдать инсайды!


Сейчас мы работаем над глобальным событием "Заговор", в котором игрок будет противостоять, собственно, заговорщикам, а заодно посетит разные уголки своей страны. Это будет весьма нелинейно, потому что персонажей целых 15, а посетить можно успеть 4-5 максимум, и от того, кого игрок выберет, будет зависеть многое.


Также в планах доработка системы взаимодействия с персонажами (сейчас оно ограничивается только взятками. Это весьма реалистично для игры про огромную бюрократическую империю, но скучновато для игрока), создание полноценного древа указов (что-то вроде национальных фокусов в ХоИ) и системы взаимодействия игрового мира, которую я раньше упомянул. И это не говоря о туче менее важных, но запланированных доработок. Как можно видеть, с того момента, как мы начали делать игру, амбиции не сильно уменьшились!


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


Lesich
Глобальная цель выпустить таки эту игру! Потом, возможно, перейдем к следующей, потому что я втянулся в это. Инди-разработка это, всё-таки, больше не про цель, а про процесс, на мой взгляд. С каждой неделей я узнаю что-то новое о программировании, геймдизайне, графике. Я многому научился за это время. Собственно, это и путь постоянно развиваться и улучшать то, что мы делаем. А там посмотрим, к чему придем.
Очень вдохновляют отзывы и мнения об игре. Некоторые игроки не поленились и написали несколько абзацев с замечаниями и предложениями в форму для отзыва или в нашем чате. Каждый такой отзыв мотивирует продолжать работать.


graphomant
Поддерживаю. Я ничего не узнал о программировании и графике, но кое-что узнал о геймдизайне, а также, возможно, стал чуть лучше писать.


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


graphomant
Потому что искренне любим игры и хотим их делать) Наверное, вот так просто. Да и заработать вроде как можно, за книги-то вообще не платят!


Lesich
Ну, есть подозрение, что мы не совсем нормальные


А так да, я уже очертил причины: мне нравится делать игру, в которую я бы сам играл; меня очень поддерживают отзывы и мнения; я чувствую, как учусь на этой разработке и становлюсь лучше. Наверное, без разработки я уже не буду чувствовать себя целостным. Знаю, звучит как зависимость, но это не хуже зависимости от ММОРПГ!


Да, финансовый аспект тоже есть, было бы нечестно его отрицать. Но для меня это не "заработать миллионы", а "зарабатывать на разработке игр достаточно, чтобы заниматься этим как основной деятельностью".


graphomant
И да, мы определённо не совсем нормальные. И это нормально.


Интервью происходило в дискорде Literal Team https://discord.gg/gEjr7WB
Стим: https://store.steampowered.com/app/1047560/Sovereigns_Will/
Рассказ об игре: https://dtf.ru/indie/125620-on-eto-zapomnit-milord-nelineynost-i-intrigi-v-indi-proekte

Подробнее..

Работа и карьера геймдизайнера. Часть 2. Основы игровой механики

24.09.2020 04:10:20 | Автор: admin

В первом статье "Работа и карьера геймдизайнера. Часть 1. Что за зверь и с чем его едят?" мы немного разобрались, как нас видят HR, как они делают выбор, что означает работать в крупной компании и как круто (и стрёмно) быть инди. И ещё много о чём.


Вы, как специалист, всегда можете развиваться в одном из двух направлений.



Налево пойдёшь Направо пойдёшь...


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


Я теперь не только на javascript пишу, но и на java. Это любимая ненависть всех программистов, когда LinkedIn, ты пишешь себе в профиле программист java, приходит HR и говорит: Не пойдете ли вы к нам работать на javascript. Все программисты испытывают святой гнев, потому что это два разных языка с абсолютно разной логикой, применяющихся в разных целях. На java вы можете писать сервер. На javascript вы делаете интерфейс вебсайтов. Ничего общего. Вот это профессиональный рост.


Есть рост карьерный. Вы качаете навыки не исполнителя, а навыки менеджера и руководителя. Ага, то есть, наверное, чтобы управлять людьми, нужно не просто быть хорошим человеком, нужно понимать, что это профессия, что это особые знания. Почему многие из вас считают, что ваш руководитель не очень крутой человек, вы им не довольны. Да, наверное, есть субъективный фактор, что мы часто не довольны своим руководством, но есть и объективный фактор, который говорит о том, что быть хорошим руководителем это не то же самое, что уметь сделать круто свою работу, как исполнитель.


Если я крутой геймдизайнер и умею считать дивергенцию ротора, если я прекрасно понимаю, как экстраполировать функции, это вообще не значит, что я смогу стать деканом факультета мат анализа, потому что одно дело уметь считать математику, другое дело уметь решать управленческие задачи.


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


Особенности подхода к карьерному и профессиональному развитию


Какие особенности подхода к карьерному и профессиональному развитию?


Типы руководителей. И, конечно, навыки, софт и хард скиллы. Личные навыки, профессиональные навыки для человека, который хочет быть геймдизайнером и заниматься геймдизайном.


Я вам посоветую быть мега упертыми. Упорство, настойчивость и целеустремленность это для геймдейва чуть ли не самое главное. Я смотрю на отличия такие социальные между своим поколением, нашим с Вячеславом Уточкиным и молодых людей, кому сейчас 16-20. У нас всегда была ценность этого карьерного развития, упорства вкалывать, работать больше-больше, делать, добиваться результатов. Почему подход настолько разный? Я не буду, конечно, в социологические аспекты углубляться, нам интересен результат.


Молодые люди более ценят комфорт и общение и иногда не проявляют этого должного упорства. Если вы хотите достичь цели, прям вгрызайтесь, работайте больше и больше. Если вы не готовы прям убиваться по работе, то будьте готовы переосмыслить результаты, которых вы хотите достигнуть. Это тоже ваше решение, ваше право. Вы можете говорить мне комфорт важнее, чем сутками вкалывать на вашей геймдейв работе. Замечательно, тогда просто подумайте, чего я могу достичь и какие показатели мне нужны, сколько времени в неделю я на это выделяю, подойдите просто рационально ко всему этому. Потому что всегда можно упороться и делать по максимуму, можно подумать. И ваше преимущество, как более ленивых, в том, что вы лучше думаете, чем мы. Вы более социализированы. У вас больше знаний. Потому что вы с детства имеете доступ к интернету. Поверьте, мы с Вячеславом не то, что к интернету не имели доступа, у нас телефонов мобильных еще не было в то время, когда мы были молодые. Всё очень сильно изменилось.


Далее Константин Сахнов передаёт слово преподавателю игровых механик Владимиру Огарёву.


Основы игровой механики


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


Наверное, начнем с того, что такая штука, как игра, появилась достаточно давно. И вообще удивительный момент заключается в том, что игре как деятельности в принципе не нужно учиться, игра заложена в нас самой природой и с помощью игры мы как раз познаем все остальные аспекты окружающего нас мира.


Например, маленьким тигрятам или слонятам никто не объясняет, что такое игра и не рассказывают, как играть. Но при этом они учатся добывать пищу через игры, они учатся выживанию благодаря играм и тому подобные вещи. Собственно, можно сказать, что игра это довольно такая фундаментальная вещь, на которой основывается в принципе, как животный мир, так и собственно человек, поэтому собственно мне кажется, игры и стали такими популярными, популярным сейчас видом медиа. Ну, собственно, и до этого они были очень популярны, ещё в древнем Египте люди играли в разного рода настольные игры.


Соответственно, как я уже и говорил, определений играм множество. Определения играм давали многие известные, как геймдизайнеры, так и в принципе люди, которые изучают игры в том, или ином виде. И в данном случае я могу озвучить некоторые определения.


Игра это деятельность, имеющая правила и включающая конфликт.


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


Довольно длинное описание игры это собственно от Грега Костикяна. Игра представляет собой форму искусства, кстати, впервые в определении используется слово искусство, применимо к играм, в котором участники, т.е. игроки, принимают решения о распоряжении ресурсами посредством игровых условностей для достижения цели. Ну да штука довольно громоздкая, поэтому заканчиваю я всегда цитатой Сида Мейера, я думаю, многие знают этого геймдизайнера, он недавно, кстати, книжку мемуаров выпустил. Человек, который придумал цивилизацию, Pirates и огромное количество игр. Собственно, игра это последовательность интересных выборов.


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


Ну, во-первых, игра это действительно деятельность, т.е. в игре ты что-то делаешь. В игре ты участник какого-то процесса, даже вот довольно популярные сейчас игры с нарративным фундаментом, где нужно просто ходить и слушать какие-то аудио дневники или смотреть какие-то вставки, типа какого-нибудь Firewatch, What Remains of Edith Finch и тому подобные вещи. Это все равно деятельность, мы все равно что-то делаем. Мы принимаем решения куда идти, мы принимаем решения куда смотреть, принимаем решения, как возможно реагировать на какие-то вещи.



Далее игра всегда имеет определенный набор правил. Собственно, на самом деле и реальная жизнь имеет набор правил, которые заключаются в фундаментальных законах физики. В игре это чуть попроще, конечно, но тоже естественно без правил игры не будет. Ну и в игре важен конфликт.


Это, наверное, три основные вещи, которые можно вынести в определении игры, поскольку они используются и в других объяснениях того, что такое игра тоже, т.е. деятельность, решение. Почему решение игрока я выделил как конфликт? Потому что периодически, на самом деле, даже играя в какие-нибудь нарративные игры, типа The Wolf Among Us, Walking Dead и тому подобные вещи, принимая решения, игрок вступает сам с собой в конфликт, т.е. какое решение ему принять, помочь там какому-нибудь игровому персонажу, не помогать ему и бросить его на произвол судьбы.



Например, в том же The Wolf Among Us мне в свое время было очень сложно принимать негативные решения, когда я проходил игру второй раз для того, чтобы просто получить все достижения. Вначале я был хорошим копом, потом я проходил как плохой коп, и проходить как плохому копу мне было максимально некомфортно. Потому что я применял неприемлемые для себя решения, просто ачивки ради.



И собственно, возвращаясь к определению Сида Мейера, что это последовательность интересных выборов. В данном случае последовательность это деятельность какая-то, т.е. делая определенный выбор, мы движемся к следующему выбору.


Если взять ту же Цивилизацию (Civilization), то мы выбираем, какие здания строить, мы выбираем какие исследования запускать и тому подобные вещи. В данном случае интересных, это как раз конфликт.


Если выбор недостаточно интересный, то в нем нет конфликта. Грубо говоря, тот знаменитый скриншот из Life Is Strange, когда тебе нужно выбрать, что съесть в кафе, либо яичницу с беконом, либо, по-моему, панкейки или что-то такое. Понятно, что это ни на что не влияет. Наверное, я не уверен. Но мне кажется, данный выбор не особо интересен, поэтому не является конфликтным. Ну и выбор, поскольку у игрока нет бесконечного количества выборов, у него всегда есть выбор, который ему предоставляет геймдизайнер. Он выбирает из предложенных вариантов, поэтому они и продиктованы правилами игры. Т.е. мы не всегда можем принять какой-то выбор, который сами считаем правильным и выбираем из тех, которые нам предлагают.


Понять, что такое игра в данном случае можно через три основных критерия, на самом деле их больше, но опять же, в рамках текущей лекции я рассмотрю только три основных. Это цель, конфликт и правило. Это на самом деле присуще всем играм и отличает игры от других видов деятельности, типа работы или ещё чего-то и от игрушек. Т.е. с одной стороны мяч не является игрой, он является игрушкой. Потому что игра уже происходит с самим мячом, он является объектом этой игры. И как раз мы сейчас перейдем к тому, из чего состоит игра на более низком уровне.


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


Взять ту же мебель Икеи, там куча разных деталей и в принципе она как-то между собой взаимодействуют. Если правильно по схеме собрать стул, то он станет стулом.



Не всегда, конечно, но по большей части.


В игре то же самое. Игра состоит из множества разных игровых механик. Они имеют каждая свои характеристики, свою динамику, свои параметры. И они взаимодействуют между собой каким-то образом.


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


В данном случае мы рассматриваем игру как систему и у игры у нас существует несколько параметров этой системы.


Во-первых, это объект. Объект то, с чем происходит игра. Объект может быть, как физический, так и абстрактный. Самый простой вариант это мяч или шайба для игры в футбол или хоккей. Это могут быть собственно какое-то оружие и противники, которые взаимодействуют между собой. Это может быть машина и трасса, т.е. вариантов множество. У каждого из этих объектов существуют свои атрибуты, т.е. их характеристики и свойства. Т.е. у нас есть футбол и у него есть резиновый мяч, мы играем резиновым мячом. У нас есть футбол, и мы играем каучуковым мячом, который отлетает от различных поверхностей. У нас может быть чугунный мяч, мы можем играть машинами, как это сделано в Rocket League.



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


Я плохо могу себе представить гоночную аркаду, где нужно ехать, как можно медленнее и как можно дальше отдалиться от соперника, в плане не обогнать его, а наоборот не доехать до него или оставить его перед собой это будет странно. Или тот же shooter, где тебе нужно бегать спиной, к примеру. Есть такие на самом деле представители жанра, но они скорее сделаны в виде каких-то артобъектов, т.е. это не игра в прямом смысле этого слова, это какая-то артинсталляция.


Далее, между объектами с определенными атрибутами есть отношения. Если говорить про мяч, то в данном случае мы можем бить по мячу с определенной силой, он куда-то отлетает, он может как-то взаимодействовать с окружающими объектами, например, с другими игроками, он может воздействовать на ворота, на какие-то стены, если мы играем внутри какого-то маленького помещения.


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


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


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


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



Но даже самые маленькие игры, типа того же Radical Fishing от Rami Ismail, где тебе нужно закинуть удочку в воду, пытаться уклоняться от рыб до тех пор, пока крючок не достигнет дна. После этого он начинает подниматься вверх и тебе нужно как можно больше рыбы поймать. И после того, как ты достигаешь поверхности воды, рыба взлетает вверх в воздух и тебе нужно её отстреливать из различного рода оружия. Даже в этой игре есть прекрасный контекст.


И в своё время на конференции в DevGAMM он рассказывал о том, что они сделали достаточно крупную книжку, в которой описывали, что происходит в игре. Они называли ее игровой библией. Там описывалось, что за персонажи, что за локации, что за рыба, как эта рыба взаимодействует друг с другом, почему есть некая преемственность рыб из одной локации в другую, иногда ты мог находить какие-то под водой объекты, типа сундуков и прочей ерунды, которые тоже объяснялись, откуда были взяты и как они там появились. Вообще сюжет крутится вокруг того, что главный герой мстит за отца.


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


Игровая механика. Как я уже говорил, их в игре обычно очень много. Они как-то взаимодействуют между собой. Даже если говорить про тот простейший вариант shooter. Даже в shooter количество игровых механик достаточно большое именно кор-геймплее. Т.е. в shooter есть механика перезарядки, есть механика прицеливания, есть механика перемещения. Мы можем убрать механику прицеливания и у нас будет автоприцел. Мы можем убрать механику перемещения и у нас будет тироподобная игра.



В Gears of War одной из фишек было добавление дополнительной степени свободы, связанной с перезарядкой. Т.е. мы перезаряжали оружие, и оно перезаряжалось какое-то время, пять секунд. Но если в процессе перезарядки вовремя нажать кнопку, то у нас перезарядка будет не пять секунд, а три. Это было довольно интересное геймдизайнерское решение. И тот же Клифф Блезински в свое время писал о том, что это очень сильно изменило динамику игры и повлияло на достаточно большое количество параметров внутриигровых, и вообще на динамику игры. Хотя всего лишь просто добавил дополнительный ритмгейм в процесс перезарядки. Но поскольку процесс перезарядки находится внутри других игровых механик, т.е. в тот момент, когда ты перезаряжаешься, на тебя прут монстры и стреляют в тебя, и тебе не до ритмгейма, ты там не Without You в оригинальном варианте от Badfingers на гитаре играешь в этот момент.



Все равно оно добавляет дополнительного ощущения какого-то влияния на геймплей. Игровая механика на самом деле состоит из четырех основных параметров, которые её характеризуют.
Во-первых, это принцип игровой механики, т.е. что это такое. Это стрельба в монстра, попадание в него, это удар по мячу и перемещение мяча в пространстве, это опускание фигурок в стакан и процесс, когда тебе нужно убирать линии, как в тетрисе, всё, что угодно. У игрока всегда в данном случае есть какой-то инструмент, которым он пользуется, для того, чтобы взаимодействовать с игровой механикой и какой-то результат, который он получает при взаимодействии.


Дальше изменения. Понятное дело, что в игре все происходит в динамике. Мы не можем представить себе игру, где после нажатия на кнопку или после взаимодействия с каким-то игровым объектом ничего не происходит. Обычно что-то меняется. Разбили камень, собрали какую-нибудь травинку, или что-то в таком духе. И всегда, собственно это принцип обратной связи, так называемый. Когда игрок что-то делает в игре, что-то должно поменяться, это относится как к игровым механикам, так и вообще ко всем действиям в игре, будь то нажатие кнопки, будь что угодно на самом деле.


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


И цикличность. Цикличность это повторение игровых механик. Если игровая механика запускает какие-то изменения в игровой среде, то важно понимать, что эти изменения цикличны. Т.е. мы бежим по локации, стреляем в монстров, убиваем их, бежим дальше, стреляем в монстров, они продолжают умирать, нас могут убить. То же самое с футболом. Мы ударили по мячу, попали в ворота, нам зачли гол, потом мы продолжаем играть, чтобы сделать больше голов, чтобы соответственно выиграть. И в данном случае я всегда провожу аналогию с механическими часами и тем, что в игре есть достаточно много механик, которые как-то между собой взаимодействуют, у них может быть разная динамика. Например, можно вспомнить механику стрельбы в том же Bioshock и механику взлома дверей. Это совершенно две разные механики, они совершенно различные по динамике и в принципе. Когда мы взламываем двери в Bioshock, нам нужно просто соединять трубы, по которым движется жидкость это совершено не то, что отстрел монстров и использование плазмидов.


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


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


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


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


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


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


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


Например, у меня есть снайперка, и я убиваю ей персонажей с дальнего расстояния, а потом я могу стрелять из снайперки по каким-нибудь тросам, для того, чтобы скинуть на противников булыжник, ящик, контейнер. Об этом мы поговорим чуть позже.


Это наслоение механик и наслоение игрового опыта друг на друга.


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


Это может быть бумажный прототип, это может быть какой-то собранный из квадратиков, треугольников какая-то штука в Юнити. В общем, в любом случае только прототип является конечным мерилом того, насколько игровая механика хороша или плоха в том или ином виде. Но есть какие-то вещи, которые можно понять ещё до создания прототипа. Во-первых, игровая механика должна быть простой и понятной. Игровую механику легко освоить за несколько секунд. И довольно важный критерий, который пришёл в геймдизайн из маркетинга это то, что механику можно интуитивно понять, глядя на скриншот игры. В данном случае это очень часто используется для создания каких-то промороликов, скриншотов и тому подобных вещей, которые относятся больше к маркетингу, чем к геймдизайну. Но при этом это очень хорошая лакмусовая бумажка, которая поможет понять, достаточно ли проста и легка механика, т.е. понятно ли по скриншоту, что здесь делать. В данном случае shooter, все понятно. Видно, что у нас есть какие-то животные, чтобы помогать нам в бою, есть самолеты, есть машины, т.е. у нас есть возможность пользоваться каким-то видом транспорта, есть разные виды оружия и все такое. И соответственно разные какие-то постройки на локации, есть деревья. Эффекты огня и прочего.


Механика должна быть понятной для игрока и соответствовать его ожиданиям. Процесс должен вызывать какие-то яркие эмоции и быстро погружать в потоковое состояние. Понятно, что эти вещи плюс, минус эфемерны, но о них частенько могут забывать. Есть ещё один критерий, который тоже очень часто упускают из вида, я о нем поговорю опять же далее.


Я очень часто привожу в пример игру Water Stone, это довольно старая аркадная гонка. В ней игрок выбирает сначала какое-то транспортное средство, которое он будет гонять в том или ином заезде. Это может быть грузовик, это может быть мотоцикл, это может быть байк, это может быть все, что угодно. И соответственно, сами трассы построены таким образом, что там есть множество развилок и эти развилки имеют разный материал. То есть ты можешь ехать по песку, ты можешь ехать по какой-то непересеченной местности, можешь ехать по трассе, ещё как-то. И соответственно выбор твоего транспортного средства напрямую влияет на то, какой тебе нужно выбирать путь для того, чтобы максимально использовать плюсы ландшафта, для твоего конкретного транспортного средства. Там могут быть какие-то очень узкие проезды, для которых подойдет только мотоцикл, там может быть достаточно короткая береговая линия, которая позволит срезать достаточно нехилое расстояние, но по береговой линии лучше всего перемещается багги. Соответственно, выбирая транспорт, ты выбираешь стратегию поведения. И в данном случае это как раз та механика, которая вызывает яркие эмоции, в том плане, что в начале, когда ты начинаешь играть и возможно этого не ожидаешь, выбрал мотоцикл, начал заезд, и тут решил поехать по береговой линии, утонул в песке и мимо тебя со свистом пролетел какой-то багги другого игрока. И ты сразу начинаешь понимать, по песку лучше на багги ездить, а на мотоцикле не стоит.


И вот такие вещи создают опыт игровой, и какие-то эмоции создают в том плане, что ты наоборот можешь угадать, ты можешь выбрать багги в начале и поехать по береговой линии и обогнать кучу соперников, потому что выбрал правильный вариант. И это все опять же соответствует ожиданию, ты не ожидаешь, что багги будет классно гонять в каких-то узких проходах, но ты ожидаешь, что мотоцикл будет хорошо гонять. Все эти игровые механики коррелируются с реальным миром, игрок может использовать игровой, даже не игровой, а свой жизненный опыт. Даже вот то, что его окружает, он может понять, что он какие-то вещи из реальной жизни использует в игре, ещё до того, как получил этот игровой опыт. Соответственно, получает обычному опыту подтверждение какое-то.


Далее тоже достаточно эфемерная сущность о том, насколько механика не надоедает, насколько механика не заставляет игрока вернуться обратно и насколько она оставляет некое эмоциональное послевкусие, как я назвал. Вообще есть понятия, факторы, и прочие вещи, которые считаются плюс, минус и даже можно какую-ту аналитику по ним строить, но это, опять же выходит за рамки моей лекции и я, возможно, пропагандирую то, что было бы неплохо прослушать мои лекции в полном виде. Поскольку я обо всех этих вещах рассказываю достаточно подробно, с примерами. В данном случае я выбрал игру Altos Adventure, их там две, я уже забыл какая с песком, а какая со снегом, но это неважно. В данном случае это игра, которая оставляет яркое эмоциональное послевкусие и собственно заставляет игрока потом вернуться обратно в игру. Данное эмоциональное послевкусие это некая медитативность.


Медитативность самого процесса езды, прыжков, и музыка, и визуал игры, они настолько работают хорошо в связи друг с другом, что они создают вот этот медитативный опыт, который остается даже на некоторое время после того, как ты игру закончил. Ты чувствуешь себя спокойнее и прям эмоционально более стабильно, поле того, как поиграл в эту игру. Это не какой-то там Dark Souls, в который ты играешь и потом разбиваешь джойстики, телевизоры, мониторы и вообще. А это вот именно противоположность Dark Souls.


Как второй пример можно привести у меня в свое время был, когда я ещё студентом был, особенно про геймдизайн не задумывался, в то время вышла игра Crysis, в которой был графоний и вот это вот все. Я довольно долго играл в нее в течение дня, я может, играл в нее часа четыре или три, а потом мне нужно было куда-то выйти. И собственно, когда я вышел на улицу, я был удивлен, насколько для меня все окружающее пространство было ярким достаточно, т.е. оно было не ярче обычного. Возможно за счет того, что яркость и достаточно неплохая графика на тот момент первого Crysis скоррелировалась с тем, что меня окружало после того, как я вышел после длительной сессии на улицу купить себе Доширак.


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


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



Если говорит про Zelda, то во время прохождения игры, игрок получает разные инструменты типа магнитов, типа всяких шестов, ещё что-то, много разных инструментов и проходит различные подземелья, используя эти инструменты или какое-то сочетание этих инструментов между собой. Опять же, эти сочетания являются достаточно очевидными, игрок понимает, что если есть какая-то железная штуковина, то он может передвинуть её с помощью магнита. Не бывает так, что он деревянные вещи двигает с помощью магнита или воду перемещает с помощью магнита. Это как звуковая отвертка у Доктора Кто, на дерево не работает. Соответственно, в Mario то же самое. Мы можем как-то даже комбинировать различные игровые механики, чтобы достигать каких-то игровых целей.


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


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


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


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


Если говорить о механиках гениальных, то это 2048, FlappyBird и прочие истории и вообще в принципе гиперказуальные игры, которые сейчас довольно популярны. В них как раз для того, чтобы сделать популярной, как мне кажется, гиперказуальную игру, нужно создать как раз аддиктивную механику. И тут как раз работа основная геймдизайнера это придумать что-то залипательное, что-то такое, во что хочется возвращаться. Coin Master, она вроде совершенно простая и бесхитростная, но при этом довольно залипательная, да и вообще много таких вещей. Я периодически за собой замечаю, что залипаю в игру, в которой максимально спинно-мозговая деятельность, но при этом она удовлетворяет всем этим критериям. Намного больше и точнее вы узнаете на курсе "Менеджмент игровых проектов", преподаватели которого и делились премудростями в этой статье.


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


P.S. Вспоминая о времени, сейчас не только 3:21 минут по Москве, но и уже 24 число. До начала онлайн-интенсива Kubernetes База осталось совсем ничего. Он пройдёт 2830 сентября. Хорошее начало для перспективной профессии или значительного апгрейда уже существующей.

Подробнее..

Совсем не ретро-эффекты для ретро-игры

06.01.2021 18:12:51 | Автор: admin

Всем привет! Занимаюсь разработкой игры: ее дизайн полностью сделан из символов, которые можно набрать на клавиатуре. Используются символы из ASCII таблицы. Как бы странно ни звучало, но моя цель - сделать современную игру. Она должна смотреться классно, сохраняя при этом ретро-эстетику.

Несколько 2D-способов достижения цели описаны в статье на Хабре:

ASCII игра компромисс аутентичности и удобства

В этой статье я опишу новый 3D-способ и визуальный эффект. Это экспериментальные техники. Надеюсь, они не разрушат аутентичность визуального стиля. Поэтому хочу узнать ваше мнение.


Свечение символов

В CRT-мониторах каждый символ/пиксель как будто светится. Для эмуляции данного эффекта вокруг каждого символа отображаются два ореола. Один вполовину ширины символа, другой более прозрачный в три ширины символа. Делая изначально этот эффект как дополнительную опцию, обнаружил, что картинка стала выглядеть значительно ярче и привлекательнее. Посудите сами.

Свечение выключеноСвечение выключеноСвечение включеноСвечение включено

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

3D-наклон

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

В ретро-игре, сделанной текстовыми символами, 3D-эффект вроде и лишнее, но смотрится прикольно. Как на ваш взгляд?

В опциях, конечно, дал возможность отключить и этот эффект на случай, если он будет утомлять.

Несколько часов тестировал оба эффекта, подстраивая параметры. Буду очень рад, если напишете свое мнение: нужны ли они, и как их можно подкрутить? Я оперативно подправлю параметры и обновлю ASCIIDENT на Стиме. Спасибо!

Подробнее..

Боевая система в 9 Monkeys of Shaolin. Как заново изобрести кунг-фу в видеоигре

26.01.2021 08:10:58 | Автор: admin

Всем привет. Публикую статью от именно своего коллеги Дмитрия Качкова - основателя Sobaka Studio.

Дмитрий КачковДмитрий Качков

Наша небольшая команда уже больше пяти лет занимается разработкой инди-игр в жанре beat em up, где весь игровой процесс жестко завязан на боевую систему. Наверное, многие замечали, что в самых успешных играх жанра beatem up игрока увлекает не столько сюжет или оформление окружения, а сам бой интересный, разнообразный, стремительный. Именно за приятную боевку критики хвалят обе наших игры. Redeemer: Enhanced Edition, где игровой персонаж мощный монах Василий зачастую должен раскидывать своих врагов подальше от себя кулаками (и не только). И 9 Monkeys of Shaolin, в которой персонаж сражается посохом против множества противников и в ходе игры должен улучшать свои боевые приемы с помощью системы прокачки навыков.

Ощущения насыщенности и сочности боя в обоих проектах достигается нами с помощью комбо-атак. Тому, из чего они состоят на движке Unreal Engine, и будет посвящена данная статья.

Конфигурация Комбо-атаки

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

Прежде чем рассказать о внутренней функциональности, давайте посмотрим как настраивается каждая комбо-атака в uobject сабклассах.

 Пример настроек одной комбо-атаки Пример настроек одной комбо-атаки

Параметры, которыми можно настраивать комбо-атаку, состоят из нескольких категорий:

  1. Анимация. Сюда входит указания анимации как для героя, так и для его оружия.

  2. Дизайн. Сюда входит группа параметров по балансировке геймплея. Урон (damage), шанс нанесения критического удара (critical hit), урон от кровотечения (bleeding damage), возможность блокировки удара противником и т.д. Плюс здесь же находится список модификаторов, получаемых игроком по мере прокачки персонажа, которые изменяют параметры удара.

  3. Атака. Сюда входят параметры, которые сопровождают анимацию: радиус поражения атаки, название кости, отвечающей за трассировку ударов (hit trace), дистанция до противника - насколько игрок должен подъехать к врагу, прежде чем начинать атаку, и т.д. Их настройкой, что неудивительно, занимается в основном аниматор.

  4. Заряженный удар. Сюда входят параметры относящиеся к усиленной версии удара при зажимании кнопки. Например, какой спецэффект проиграть при зарядке, и на какой удар надо переключиться, если этот зарядится (удар будет подменен в части геймплейных и атакующих параметров).

  5. Комбо. Здесь хранятся атаки, которые могут продолжить текущую в комбо, если игрок будет нажимать кнопки во время удара.

  6. Попадание. Здесь собраны параметры, относящиеся к тому, какой урон получит враг при успешно проведенной атаке, и как будет выглядеть нанесение удара. То есть здесь хранятся настройки эффектов, для которых используются частицы дым, огонь и т.п. (particle effect), звуки, мерцание врага, сотрясение камеры (camera shake), застывание (freeze), а также ссылка на блюпринт (blueprint), описывающий реакцию противника после попадания удара (анимацию, время недееспособности в нашем случае, время того, сколько враг лежит на земле, дистанция полета до стены и прочее).

Анимации атаки

Мы активно используем Animation Notifications (далее по тексту - нотификаторы) для настройки и балансировки геймплея, а также декоративных визуальных и звуковых изменений.

Давайте рассмотрим сперва основные геймплейные нотикаторы с помощью которых геймдизайнер вместе с аниматором могут вытачивать тонкости великолепного геймплея.

Настройка анимации атакиНастройка анимации атаки

Нотификатор Рывка (DASH)

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

Сам процесс dasha происходит внутри компонента простым кратным увеличением максимальной скорости и форсированного толкания персонажа в сторону точки назначения рывка (авто наведенный враг).

Нотификатор Определения области поражения (HIT ZONE)

Далее в каком-то моменте анимации атаки включается состояние AOEAttackState. Аббревиатура AOE расшифровывается как Area of Effect область действия. Это состояние активирует вычисление трассировки луча удара примерно в области оружия (иногда с сильно увеличенными размерами), чтобы определить, есть ли попадание по врагу.

Для регистрации попаданий по врагу используется не только AOEAttackState, но и специальный отдельный анимационный нотификатор StrikeHit. В момент активации нотификатора врагу, стоящему перед персонажем игрока в пределах определенного радиуса, принудительно наносится урон. Все настройки попадания (и трассировки в состоянии AOE и зоны попадания во время действия strikeHit) хранятся в блюпринте (blueprint) текущей комбо-атаки. Именно в нем дизайнеры могут детально настраивать попадания разных ударов.

Нотификатор Перехода в следующую атаку (SHORT TICK)

Дальше по ходу анимации удара может встретиться анимационный нотификатор ShortTick (моментальный удар). При срабатывании нотификатора ShortTick система проверяет, была ли нажата кнопка атаки после начала текущей. И если это произошло, значит атаку нужно продолжить следующей, которая настроена также в блюпринте комбо-атаки.

Т.е. блюпринт атаки содержит ссылки на блюпринты других атак которые срабатывают при условии, что на момент активации ShortTick была нажата одна из кнопок какого-либо удара. Важно, что ShortTick может задаваться несколько раз для тонкой настройки таймингов комбо.

Нотификатор Отмены (CANCEL)

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

Нотификатор Заряжаемых атак

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

Другие нотификаторы

SFX/VFX нотификаторыSFX/VFX нотификаторы

Помимо описанных выше нотификаторов, влияющих на геймплей, у нас есть те, что отвечают за звуковые и визуальные составляющие атаки. Они максимально дополняют картинку и делают ее завершенной.

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

Все персонажи в игре имеют один гуманоидный скелет, но при одной и той же анимации атаки, разный набор звуков и эффектов может кардинально изменить ее восприятие. Например, у нас может быть большой враг в железной броне, а может быть вообще без брони, поэтому голос вскрика например может быть принципиально разным.

Реакция на удар (Hit reaction)

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

В каждой комбо-атаке есть ссылка на блюпринт описывающий как будет реагировать тот, в кого эта комбо-атака прилетит:

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

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

Потом мы пробовали задавать классы врагов в самой реакции на удар. Но тут обратная проблема: в каждой реакции на удар надо прописывать много врагов и не забывать добавлять их по мере создания новых классов.

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

Легкий, средний и тяжелый врагиЛегкий, средний и тяжелый враги

Эффектность и обратная связь

Есть несколько вспомогательных эффектов с помощью которых можно вызвать у игрока более яркие впечатления. К ним относятся:

  1. Тряска камеры. Как на удары по врагам, так и на удары по игроку мы можем назначать настройки тряска камеры (конечно в основном это еле заметная тряска, но всё же). В момент особо мощных ударов по персонажу игрока эта тряска может быть сильнее, чтобы передать ощущение боли.

  1. Эффекты частиц. Мы придаем большое значение разного рода эффектам (в данном случае речь о эффектах частиц) и помимо эффектов самого удара (взмах палкой, порыв ветра, энергия Ци) мы настроили множество эффектов для попаданий по врагам. Особенно важным в нашем случае стоило назначать разные типы попадания когда враг просто получил урон, или когда он от удара умер. Зачастую мы сознательно преувеличиваем некоторые параметры, чтобы придать зрелищности. Вся наша работа нацелена на зрелищность в той или иной степени.

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

Новшества для 9 Monkeys of Shaolin

Чтобы подчеркнуть особенности дизайна 9 Monkeys of Shaolin, мы внесли несколько новшеств в систему.

  1. Анимация оружия. Аниматор делает анимации оружия синхронные с анимацией удара персонажа.

  1. Трассировка попаданий, обсчитывающая траекторию оружия. Зачастую удары в нашей игре очень быстрые и могут длиться всего пару кадров, в том же время оружие может пройти длинный путь и даже успеть пройти сквозь врага. Чтобы это предотвратить, мы рассчитываем пройденный оружием путь и делим его на отрезки, на каждом из которых проверяем пересечение оружия с врагом.

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

    Удар ногой в базовой комплектацииУдар ногой в базовой комплектации
Прокаченный удар ногойПрокаченный удар ногой

Заключение

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

Надеюсь наш опыт оказался вам полезен. И вы сможете проверить, как он реализован в наших играх, переосмыслить и применить в своих прекрасных проектах. Большое спасибо, что дочитали до конца ;)

Подробнее..

Работа и карьера геймдизайнера. Часть 1. Что за зверь и с чем его едят?

23.09.2020 16:18:12 | Автор: admin

Друзья из ВШБИ НИУ ВШЭ в рамках курса "Менеджмент игровых проектов" целую лекцию этой теме выделили, чтобы точно не осталось "белых пятен".


Сегодня мы говорим о такой теме, а что такое, собственно, работа и карьера гемдизайнера. Как найти свой путь в игровую индустрию, что здесь делать, чем здесь заниматься. Конечно, все могут сказать сразу: Очень легко, окей, я хочу делать то, что мне нравится. Прекрасно. Я тоже хочу делать то, что мне нравится. Но попутно всегда стоит вопрос А есть ли у вас деньги на это? Или вам еще нужно что-то зарабатывать?


Когда вы хотите попасть в игровую индустрию, вы так или иначе, как и любой сотрудник, который хочет попасть куда угодно, соизмеряют две вещи это ценности, возможности которые им даст это место (ценности компании в игровой индустрии, либо возможности Газпрома, куда вы хотите пойти) с вашими собственными потребностями. И вы сравниваете пойдет-не пойдет, мое-не мое.



Немного секретов Полишинеля о мерах, мерках и оценках HR


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


Есть разные системы, но самая простейшая, я вам её сегодня покажу, она подразумевает, что у вас есть некие ценности.


К примеру, ваша главная ценность деньги. Когда вы идёте на работу, вы такие, мне здесь платят 100 тысяч, а там мне платят 30 тысяч. Окей, всё понятно. Я пойду работать за 100 тысяч.
Для меня, как для работодателя, идеальные сотрудники, которые любят только деньги, больше ничего не любят, потому что они самые предсказуемые, самые понятные, их не надо мотивировать. Человек приходит на работу. Ты говоришь: Я хочу, чтобы ты сделал в два раза больше. Он говорит: Окей, плюс 30 тысяч зарплаты. Ты такой: На тебе деньги! Работай!. Конечно же, люди, которые замотивированы только деньгами и в первую очередь деньгами, действительно наиболее просты и понятны в управлении. С точки зрения руководителя с ними очень хорошо и комфортно.


Следующий тип ваших потребностей это то, что мы хотим условно некоего статуса, мы хотим признания. Чтобы нам сказали: Да, чувак! Ты крутой! Ты делаешь действительно великие игры!. Либо мы хотим некоего влияния, чтобы люди ходили и говорили: Это мой руководитель!. В профессиональной сфере это реализация себя как крутого чувака, в карьерной сфере это какая-то должность, пиар и всё прочее. С такими людьми бывает тяжелее, потому что представьте себе, ваша главная ценность это чтобы вас любили, про вас знали. Вы приходите на работу и начинаете, что делать вместо работы? Начинаете писать статьи, рассказывать всякие лекции, вести блог на ютубе, в инстаграме и все прочее. Соответственно, ваш руководитель будет не сильно доволен, потому что он хочет, чтобы вы просто с утра до ночи вкалывали и всё. Поэтому с этими сотрудниками тяжелее.


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


Соответственно, возвращаюсь к геймдеву, физический комфорт это то, что у нас в геймдеве всегда с избытком. Условно, вы приходите на собеседование, HR начинают задавать вам, казалось бы, глупые вопросы. Как доехала? А ты откуда ехала? С Мытищи? 4,5 часа? И как тебе? Всё нормально, комфортно? Ну, супер, здорово!. По факту они пытаются для себя понять и поставить +1 балл или -1 балл каждой из категорий. То есть, если вам вполне комфортно и нормально очень долго, издалека ехать, наверное, для вас этот физический комфорт является чуть менее приоритетным пунктом.


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


Соответственно, они ищут сотрудников, которые не требуют всего этого. Но для геймдева это легко. Сами подумайте, что стоит нам кофеварочка, пледики? Да ничего не стоят! Каждый праздник дарить сотрудникам подарки, это всё безумно дешево. А поднять всем зарплату на 10 тысяч рублей, это уже дороже, каждый месяц огромные расходы. 100 человек по 10 тысяч. Прибавочка, казалось бы, но всего 10 тысяч мне прибавили. 100 на 10 это миллион получается. Каждый месяц. 12 миллионов в год. Плюс налоги и всё прочее. То есть 15-20 миллионов вы теряете просто на то, что поднимете зарплату человеку на 10 тысяч рублей.


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


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


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


Соответственно, психологическая атмосфера хорошая, она снижает общее выгорание, и вы можете работать в этой компании дольше, что для работодателя тоже выгодно. Есть способ хорошо получать повышение к зарплате, просто меняя, переходя из компании в компанию, с одной стороны это логично, с другой стороны, когда вы слишком часто меняете работу, то все следующие работодатели будут относиться к этому очень настороженно. То есть он и от нас уйдет через три месяца? Нет, мы такого сотрудника не хотим. HR смотрит именно так. То есть я не берусь оценивать хорошо-плохо, я вам рассказываю просто, как оно есть, как оно работает, выводы с этого можете делать. Я уверен, что нас читают люди довольно-таки интеллектуальные Хабр издавна этим славился. И выводы за вас делать было не нужно.


Самореализация супер важный момент для геймдева. То есть когда человек приходит и говорит: Я хочу делать что-то интересное, я хочу сделать крутое, чтобы запомниться, чтобы свою задумку воплотить. Это очень популярная вещь. Самореализация может быть как в своем собственном развитии: я хочу прокачаться, занять другую позицию, стать старшим специалистом, научиться управлять командой, делать более сложные продукты, сегодня я делал гиперказуалки, завтра я буду делать восьмого ведьмака для айфона 16. Конечно, это один из важных драйверов.


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


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


Если вы понимаете, что они хотят вас исключительно купить деньгами, переманить, но при этом для вас ценность работать круглые сутки, ломая себе нервы и здоровье, является негативной, вы думаете: Нет, наверное, я не готов получать больше денег, но при этом страдать. А кто-то говорит наоборот: Не, у меня ипотека на 76 лет и в принципе хочу я, наверное, поработать на +40 часов в неделю больше за прибавку 3,5 тысячи рублей. Отлично, я пойду, я готов. Поэтому, конечно, это вещь очень индивидуальная. Соответственно, что мы с вами на практике делаем, мы берем, понимаем себя, мы смотрим, что есть в конкретной компании, сравниваем эти вещи. Сошлось? Окей, значит, попробую я в этой компании работать! Не сошлось? Сорян!


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


Что такое инди? И с чем оно вас ест?



Чем принципиально отличается инди? Над вами никого нет, вы за всё отвечаете сами.
А чем вы отвечаете? Той самой кружкой Доширака, сосиской и кошечкой, которая где-то мурлычет рядом. Что бы вы ни потеряли, ваши потери по сравнению с потерями корпорации незначительны, вы не рискуете своей жизнью, своей квартирой, ничем. Инди это в первую очередь возможность принимать решение самостоятельно и лучшее, чему это учит, как раз той самой самостоятельности и ответственности.


Если в большой компании вас всегда подстрахуют, за вас перепроверят 10 тысяч раз, то в инди ты делаешь игру, у тебя за спиной никого нет.


Вы вот маленькая команда, 2-3-5 человек, либо ты один. И твое решение, от него зависит весь проект. Конечно, это мегакруто, это ощущение того, что я лично руками делаю свою судьбу. Поэтому если ваша ценность та самая свобода и независимость, то, конечно, инди это прекрасный выбор. Да, наверное, у вас меньше бюджеты, но кто сказал, что инди неуспешные, кто сказал, что инди-игры бывают исключительно бедные.


Я могу привести пример Amplitude Studios, которая сделала такие прекрасные игры как Endless Space и Endless Legend, это всё чистый инди. С индии подходами к разработке и достаточно скромными бюджетами. Да, сейчас, когда они стали богатые, они делают Humankind уже по-серьезному, но тогда это всё начиналось, как инди, и мы видим, как много миллионов долларов они заработали.


Полным полно крутых примеров, что инди работает. Почему я говорю часто миллионы долларов? Потому что самый простой способ оценить результат нашей работы количество денег, которое заработал проект. Это не значит, что это единственный показатель, это не значит, что это самый правильный. Ключевое слово самый простой. Сравнить количество долларов это всегда запросто.


Опыт работы в крупной корпорации бесценен


Большая корпорация это, конечно, большие возможности. Возможность получить колоссальный опыт, возможность не ошибиться, будучи подстрахованным.


Перед вами колоссальный выбор, перед вами огромные знания, накопленные десятками тысяч людей, и не только сотрудников этой компании, но и best practices, которые они используют, опираясь на классические подходы в проектировании приложений, архитектурах, в проектном управлении, в создании пайплайнов производства арта. То есть корпорация это всегда действительно отлаженные процессы, поэтому у вас, как у человека всегда много возможностей что-то из нее извлечь.


Кто-то извлечет стресс, кто-то извлечет много денег.


Скорее всего, все извлекут хотя бы чуть-чуть стресса, без этого было б не то, что не интересно, было бы тяжеловато.



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


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


Вот она эта шкала, о которой я говорил. Свободочка Твой выбор Властюшка.



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


Потому что представьте себе, у вас там в корпорации четыре тысячи человек. Из них много зарабатывает сколько там, окей, десять руководителей, ну так на вскидку, десять из четырех тысяч это махонький процентик, а десять руководителей из компании в 250 человек или пять даже руководителей, это достаточно заметный процент, поэтому, конечно, в компании среднего уровня, можно заработать гораздо больше. Просто в корпорации конкуренция выше, тяжелее куда-то залезть.


И наконец-то итог нашей работы, то, что мы теперь работаем сами на себя, у нас достаточно денег и опыта для того, чтобы сказать окей, мы любим все компании, мы делаем то дело, которое приносит нам деньги, удовольствие, и не только нам, но и дает какой-то вклад, по крайней мере, мы очень надеемся, мы хотим верить что то, что мы делаем, оно полезно для индустрии. У нас есть страничка с трудоустройствами наших выпускников, для меня это самое приятное.


Мы в основном говорим сегодня про геймдизайн, конечно. И я говорю общие вещи, которые для всех профессий геймдейва свойственны, но вы читаете потому что любите слово геймдизайн, любите креатив, буйство фантазии и придумывать крутые вещи.


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



Кодзима, конечно, со мной сейчас не согласится, на его уровне можно уже креативить сколько хочешь, ты там и продюсер, и владелец, и геймдизайнер, и все кто хочешь одновременно. Поэтому, если вы еще не достигли уровня Кодзимы, то слушайте. Если достигли, то в принципе я вам рекомендую наше общение закончить, сесть в свой майбах и уехать на острова, чтобы придумывать там Death Stranding 2 и DLC к нему. Почему бы нет?



Соответственно, что ж мы делаем каждый день? Если вы думаете, что придумываете игры. Вряд ли. Придумываете игровые механики. С натяжечкой. Хотя бы контент придумываете. Тоже с натяжечкой. Все придумали за вас. Геймдизайнер человек, который реализует. И чем больше компания, тем уже спектр ваших возможностей и более конкретны ваши задачи. И опять-таки, это противоположность инди-студии, где вы можете что-то придумывать, потому что по факту вы не только геймдизайнер, но и продюсер, и владелец бизнеса. Вы просто может, не мыслите категориями, что я владелец инди-бизнеса, как-то звучит непонятно. Но на самом деле вы по факту выполняете его обязанности. То есть, продумываете некую стратегию развития компании. Даже, если вы не думаете этими словами и категориями.


Потом вы спускаете на продюсера задачу, придумай вот такую вот игру. И вы такие, ага, я сам продюсер, значит я сам же ее и придумываю. Потом вы спускаете на геймдизайнера задачу напиши документацию по этой игре, ага, я сам геймдизайнер, значит я и напишу. Таким образом, вы как бы вроде бы геймдизайнер, а на самом деле не только. Вы все сразу, человек-оркестр.


Чем геймдизайнер занимается на практике?


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


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


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


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


Тем не менее, у меня в маленькой моей компании, когда мы делаем разные гиперказуальные игрушки, и то нас не 200 человек, нас гораздо меньше и то у нас есть Confluence, где мы ведем разную техническую геймдевскую документацию, у нас есть Trello, где мы расставляем друг на друга задачки, проверяем, двигаем, у нас есть еженедельные созвоны, для того чтобы актуализировать информацию, у нас есть проектные созвоны, когда мы общаемся по конкретным задачам. То есть много процессов. И фактически вот этот менеджмент, чем меньше студия, тем больше каждый на себя берет. Чем больше студия, тем больше менеджмента вы отдаете PM.


То есть по факту вы как бы разрешаете ему собой командовать, и говорить себе, что вы должны делать. Видите, опять-таки, это отсылка к свободе. В инди-студии ты сам себе PM. По факту технически сам себе назначаешь задачку, сам её выполняешь, надеваешь маску PM и говоришь: Я хочу, чтобы ты выполнил 250 задач. Снимаешь маску PM, надеваешь маску геймдизайнера и такой: Да ты не прифигел ли? 250 задач! Да я за ночь столько не сделаю!. Потом снимаешь маску геймдизайнера, надеваешь маску продюсера: Эй, пацанчики, подождите, у нас есть договоренности с внешними партнерами, нам обязательно это нужно. Ты берешь котика, берешь кружечку кофе, пледик и начинаешь всю ночь фигачить эти уровни. Таким образом, вроде как полная свобода, но делать всё равно надо. Тебя никто не заставляет. Ты сам себя заставляешь это делать. И на мой взгляд это круто, когда я хочу, поэтому я делаю.



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


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


Чем же вы руководствуетесь, как вы выполняете такого рода креативные задачи? Когда я был начинающим специалистом, я их выполнял, скажем так, от балды. Типа я так вижу и всё. Я хочу вот так. В этом есть свой плюс. Во-первых, вы экономите время. Вы не занимаетесь ничем, вы просто говорите: Вот вам готовое решение! Бери и делай!. Если у вас большой игровой опыт, то, скорей всего, то, как вы хотите, это всего лишь то, что вы на смотрелись, наигрались в другие игры, фильмы и все прочее, пропустили через себя и ваше сознание это модифицировало и сказало: Я хочу вот так.


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


Вот вам нравится делать игру про писающих котороботов, замечательно, я за вас рад. Есть ли еще хоть один человек в мире, который любит котороботов? Не знаю.



Если бы вы делали в большой компании эту задачку, вы бы взяли всех конкурентов. А как бы их взяли? Вы бы спросили целевой рынок. Например, вам говорят: Это батлер для Азии. Окей, Азия. Вы заходите в корейский Store, сортируете игры по выручке ежемесячной, берете наиболее прибыльные среди всех игр. Вы находите игры в наиболее близком сеттинге, наиболее близком визуальном стиле и начинаете разбирать, декомпонизировать их механику.


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


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


То есть это таргет-система, можно выбирать цель или нет, но таргет, вы нажимаете абилку и он сам кого-то кастует. А почему так? Какие абилки? А как посчитать их цифры в математику, а вот сколько должно быть этих абилок, а сколько героев должно сражаться? Конкретно на этой картинке вы видите, что три героя сражаются против одного мини-босса. А почему три?



И тут на самом деле, логика очень сложная, вы должны помнить UI/UX. А сколько конкретно картинок можно уместить на экране, каким образом их расставлять для того, чтобы тапание пальцем по телефону было удобным. А если это игра для PC, какое количество там можно, как это вращать, как выделять, то есть у вас появляются ограничения, связанные с огромным количеством всяких факторов.


И сложностью управления и тем же UI/UX, и гемдизайнерскими какими-то аспектами, то есть, то, что вы делаете, на самом деле это не только ваша фантазия, желание и креатив, поэтому моя вам рекомендация выберите себе подход и четко с ним определитесь.


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


Было в моем любимом фильме Варкрафт: Гул`дан, чти наши традиции. Наша традиция просто брать и делать. Соответственно, подход корпоративных крыс, к которым я себя отношу это вот это всё исследование, сложная аналитика, чтобы показать и доказать самому себе и окружающим, презенташечки и все прочие, как оно должно быть на самом деле. Это хорошо, когда вы сидите, вам платят зарплату. Что бы ни поисследовать? Что бы ни сделать круто? Вы отвечаете за большие деньги этого проекта. У вас есть время, конечно, надо делать все серьезно и основательно. Опять-таки, это принципиальная разница между подходами инди и компанией.


В следующей статьей об инди-разработке мы обсудим различие и противоречия карьерного и профессионального развития и много чего ещё.


P.S. И напоминаем о бесплатном и вкусном. 18 октября 2020 года, в воскресенье, в 13:0018:00 пройдёт бесплатная онлайн-конференция "Хочу в Gamedev". Регистрируйтесь, пожалуйста, заранее!


P.P.S. И заранее прошу прощение, что вторично напоминаю о бесплатном, вкусном и ещё более близком. Сегодня, 23 сентября 20.00 по МСК Сергей Бондарев проведёт бесплатный вебинар Обзор возможностей Kubespray. Получать знания хорошо. Получать бесплатно ещё лучше.


До встречи во второй части статьи...

Подробнее..

Работа и карьера геймдизайнера. Часть 3

24.09.2020 18:11:15 | Автор: admin

В первом статье Работа и карьера геймдизайнера. Часть 1. Что за зверь и с чем его едят? Константин Сахнов рассказал, как геймдизайнеров видят HR и CEO и в чём заключается разница, работать на какую вселенскую корпорацию добра или в маленькой уютной инди-студии.


Во второй статье Работа и карьера геймдизайнера. Часть 2. Основы игровой механики Константин Сахнов продолжил профессиональную тему. И показал, что в Gamedev рано или поздно перед тобой стоит выбор кем ты будешь, профессионалом, который что-то делает руками, или управленцев. Все работы хороши выбирай на вкус. Все полезны для процесса, если человек компетентен и не злоупотребляет полномочиями. А так же Владимиру Огарёву рассказал основы игровой механики. Именно основы. Чтобы охватить эту поистине огромную тему всё же надо идти на Менеджмент игровых проектов. Ученье свет, а неученье папа-олигарх-генерал-министр, яхты, самолёты, модели, белые незубной порошок на зеркальце, 250 км\ч гонки по ночной Москве.


А сегодня поговорим о выборе. Между инди и крупной компанией. Какие есть плюсы от корпорации. И немного о том, что ожидают люди, приходя в Gamedev. И Георгий Миронов, геймдизайнер 1С Game Studios и вы выпускник Менеджмент игровых проектов разберёт эти темы.



Что такое архитектура игры


Давайте, сначала разберём, кто это архитектор информационных систем. Это человек, которому ставится задача сделать эту систему. Он собирает требования или придумывает их сам. Он их документирует. Делает план по реализации. Делает, тестирует, внедряет. Когда я проходил свое первое обучение, много вещей оттуда совпадали с тем, что нам преподавали на Менеджменте игровых проектов.


Например, это домашнее задание из моей первой учёбы. Блок-схемы всяких процессов, блок-схемы самой системы.


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


А потом я вообще задумался, единственная ли это профессия, которая настолько совпадает, настолько близко. И я подумал, что есть же шеф-повар, есть просто архитектор зданий. Если детально смотреть, что они делают, то они все идут по маршруту, они придумывают или забирают, что пользователь хочет получить. Они это документируют, создают рецепт, создают макет. Реализуют это вместе с командой. Если механически посмотреть, всё у них совпадает. Если смотреть, чуть более обще, получается, что все эти творческие профессии направлены на создание какого-то опыта. Геймдизайнер хочет, чтобы игроку было интереснее. Разработчику операционных систем чтобы пользователю было удобнее работать. Шеф-повару чтобы блюдо было вкусное. Архитектору чтобы здание вызывало монументальные чувства, вдохновение. Церковь строим или аэропорт, нам надо, чтобы люди хорошо ориентировались там.


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


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


У меня есть история, когда я заходил к подруге в магазин. Она работает продавцом. Это магазин товаров для взрослых. Магазин физически поделён на две части. В одной части лежат обычные вещи (масла и еще что-то), а вторая более целенаправленна. И я думаю, интересно, сколько людей заходит в первую часть, и не заходит во вторую. Потому что, в первой части всё сделано для скромных людей, которые могут зайти и не интересоваться более глубокими вещами.


Но в первой части есть вещь прямо на входе, которая может оттолкнуть покупателей. И я думаю, какая вообще воронка этих посетителей. Если подумать, то можно попробовать убрать эту вещь, сделать анализ (посмотреть, как повысятся продажи, или понизятся). Может кому-то нравится, что их на входе встречает девайс. Это первое.


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


Насколько я помню, это было переодетое существо. Это не суть важно. И я думаю, интересно, как это можно было бы переложить на геймдизайн. И потом я вспоминаю, Metal Gear Solid 2, где Кодзима, его сложно упрекнуть, что он геймдизайнер, это гений наш, он взял и вписал в один момент геймплей в рамку. Это была рамка Game over. Она была немного изменена, но смысл был в том, что он пытался обмануть игрока, и этим показывал, что game play ненастоящий. Что-то не так. Можно переложить это так.


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


Что хотят люди, попадая в GameDev


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


Плюсы инди, как я посчитал, это, естественно, творческая свобода. То, что рассказывал Костя Сахнов. У нас есть какой-то градиент от инди до компании. И твоя творческая свобода определяется тем, что ты хочешь. Во-первых, реализовать свои амбиции, сделать что-то уникальное. Я слышал еще такое, что мне в ум приходит, как рассказывал на GBC создатель Antichamber. Это такая игра, похожая на Portal чем-то, но от неё отличается.


Your browser does not support HTML5 video.

Он как раз говорил, что для того, чтобы сделать что-то новое, уникальное, но приемлемое для аудитории, чтобы ты это смог продать, то это должно быть где-то на границе приемлемости. Это что-то похожее на Portal, но со своими новыми штуками, которых нигде нет. У него получилось сделать Antichamber. Игра хорошая и много собрала.


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


Как я рассуждал, когда работал в компании. Работа в компании первым делом это значит, что уже есть продукт, который популярен, и ты на нём можешь, скажем так, практиковаться и получать много фидбека. Практически никто не знает, как сделать правильно. А если бы такие люди были, они бы уже гребли миллионы. Но как неправильно сделать, обычно, тебе подскажут. Я думаю, это попроще определить. И как раз, когда ты работаешь в компании, тебе могут сказать, что: вот так лучше не делать, потому что мы так пробовали, это не работает. Это, во-первых. Во-вторых, ты, в том числе, можешь попрактиковаться, посмотреть статистику хорошую. Тебе могут эту статистику разжевать. Например, у вас выходит какое-то обновление, вас потом собирают и ваш начальник рассказывает для команды, какие у вас показатели, что зашло, что не зашло, и что мы будем делать дальше. И надо понимать, что в команде у тебя стабильная зарплата, когда ты работаешь в компании. Это тоже немаловажно. Ты не живёшь на Дошираках.


В итоге, что же я выбрал, почему. Во-первых, мне, наверное, должно быть стыдно, но у меня не было никогда проектов личных. Я любил много играть в игры очень много с детства, копать их немножко, модифицировать. Но какого-то проекта, который я считал, что порвёт мир, у меня никогда не было.


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


Значит, первое это не было проекта мечты. Второе я хотел компенсировать своё обучение. И дальше, я понимал, что даже когда я пройду обучение, всё ещё буду зелёный огурчик. Мне надо учиться дальше. И поэтому, как раз вариант, когда я могу собрать много фидбека это мне полезно будет и хорошо. В чём проблема сбора фидбека у инди? Это то, что у вас охват маленький, как Костя тоже говорил. И скорее всего, вы фидбек не очень много получите. Здесь можно получить его гораздо больше. И в том числе, непонятно, кто этот фидбек вам будет давать. Потому что часто игроки могут сказать, что им что-то не нравится конкретно вот это и из-за этого.
Но на самом деле, они могут не указать причину или сказать вам что-то не то. Я вижу для инди вариант сбора фидбека это на конференциях, допустим, тоже. Но стрёмная тема. Не всегда понятно, что фидбек будет качественным.


Your browser does not support HTML5 video.

И наконец, это то, что инди у меня в голове, всё-таки, как авантюриста, я вспоминаю историю из кровь, пот и пиксели про разработчика Stardew Valley. Человек, который сидел несколько лет дома, один. Его содержала его девушка. Ему, конечно, повезло. Здесь очень много факторов. Очень много, где ему повезло. Его не бросила девушка. Помогла. Ему удалось найти свою аудиторию. И проект сам хороший. Это, конечно, титанический труд. Но я думаю, что очень много людей, которые прошли примерно такой же титанический труд и им не повезло. У них какая-то тема не зашла. У них движок перестал поддерживаться. Вышла игра в том же жанре с большим охватом аудитории. Таких историй много. Здесь как раз я нашёл цитату одного из издателей: Геймдев, инди-геймдев это минное поле и вам нужно сделать всё идеально. И я бы к этой цитате добавил, что вам ещё при этом должно повезти. Потому что бывают ситуации, когда ты сделал всё, что мог, всё идеально, но тебе не повезло. Поэтому в итоге я выбрал работу в компании.


Выбор: инди или большая компания


И, собственно говоря, ожидание и реальность. Пришёл я в новую компанию. Вообще, в какую компанию я пришёл и чем я занимался. Я пришёл в компанию Rocket Jump на проект Кризис и в качестве младшего геймдизайнера занимался внутриигровыми акциями. Тоже про что рассказывал Костя. Он, кстати, был моим руководителем тогда. У меня работа была такая, механическая чисто.



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


По поводу работы самой. Вот, собственно говоря, мои ожидания и реальность. Во-первых, я помню историю, как на первой работе мне сказали: Жора, у нас программист уволился, теперь программистом будешь ты. Я такой: Классно, спасибо большое. Я мог проводить неделями просто в гугле. Искать информацию. Чисто, случайно найти информацию на пятой странице шестая ссылка это будет то, что мне надо. А до этого я мог реально неделю копаться в всех этих ссылках. Гугл был моей Википедией.


А теперь моей Википедией по правое плечо стал Борис, по левое плечо стал Михаил. Потому что все инструменты самописные. Я ничего прогуглить не могу. Я могу только спросить. Либо спросить, либо копайся сам, пытайся соединить твои предыдущие знания с тем, что ты видишь здесь. Не очень эффективно. Поэтому приходилось спрашивать и много взаимодействовать с другими людьми. Во-вторых, наслушавшись истории про кранчей, про то, что индустрия беспощадна и невозможно нормально спать. Я ожидал работать по 11 часов. Я до этого уже успел немного поработать в KFC, смена по 11 часов на ногах. Или на предыдущей работе сидеть до 01:00 ночи, делать систему, сидеть на телефоне с людьми из Газпрома и спрашивать как там, как вы что-то заполните, рисками управляете, чтобы соединить это всё.


А тут как получилось? Тут, во-первых, благодаря Косте меня отпускали пораньше, чтобы я шёл на учёбу. Но это чисто моя тема. Хотя я думаю, что вы, скорее всего, сможете договориться с работодателем, что вы уйдёте в учёбу, что вы будете более хорошим специалистом после прохождения курсов. Поэтому, возможно, вам тоже разрешат уйти пораньше с работы, чтобы отправиться на учёбу. Это первое что опускают раньше. А второе, это то, что меня не задерживают. За всё время, я не помню ни одного раза, когда меня просили или требовали, чтобы я задерживался, до ночи кранчил и т.д. Если такое было, то это было только потому, что я хотел и потому что я понимал, что я сделаю свою работу плохо, если у меня что-то не получится. Я даже потом расскажу немножко, как я исполнял вообще всё это дело.


Дальше, это, чем нас постоянно пугают. Делают, наверное, правильно. Что играть в игры и разрабатывать игры это совершенно разное. И что играть вам не получится. На самом деле, особенно на этапе, когда ты только пришёл, играть ты будешь много. Потому что тебе надо изучить проект. Ну и в принципе, когда ты устал и решил поиграть в свою игру никто против не будет, я думаю. Главное по срокам задач Не профукивай задачи. И всё будет хорошо. Наконец, я думаю, что многие из нас сталкивались с фразой Забудь всё, что тебе говорили до этого. Я помню, что я эту фразу отлично услышал, когда я учился в автошколе. Я пришёл на первое практическое занятие с инструктором. Сажусь в машину, и он говорит: Забудь всё, что тебе говорили до этого. У меня волосы дыбом. В смысле? Это как? Это было стрёмно. Что получилось здесь? Здесь меня научили чисто прикладным знаниям. Как мне сделать то, что я хочу в таком-то инструменте. А что я сам захочу там сделать, это уже зависит, в том числе, от моего образования. Если я занимался монетизацией, поэтому уже на этапе чуть более продвинутом, когда я не под копирку что-то делал, я уже сам думал, что мне положить туда, по каким правилам мне это делать. Я посмотрел аналитику, применял знания, полученные на менеджменте игровых проектов, как это всё анализировать.


А теперь давайте тоже вернёмся к чуть более красочным моментам. Почему работать в геймдэйве это круто? Это офигенные офисы, это классные люди и классные ивенты, вкусняшки. Всё выглядит суперски. Там даже был душ, и я думал, почему же там нельзя жить. Жить нам там запрещали. Как раз, я хотел вернуться к тому, как я задерживался. Я не задерживался. Я приходил просто рано с утра в офис. Я сокращал время на поездку. Рядом с офисом был капсульный отель, где ты залезаешь в такую конуру, где ты можешь только сидеть или лежать. Закрываешь за собой ячеечку. Такие в Японии распространены. И я там отдыхал, потом в 9 утра шёл на работу. 9 утра для геймдейва это рано.



И теперь, перенесёмся немножко вперёд. Как я решил поменять свою работу. Я увидел, что появился проект Калибр, что там появилась вакансия. Мне с детства нравятся шутеры. Просто обожаю их. Шутеры моё всё. И я подумал, что это хорошая возможность изучить Unity в том числе. Потому что Кризис это флэш. Хотелось чего-то поновее, посовременнее, чтобы развиваться дальше. И как раз этот факт, что Калибр на Unity, меня волновал. Потому что Unity я тогда не знал, я прошёл только перед тестовым заданием этот минимальный курс Unity, как, что, куда кликать. Это было моё первое волнение. Но самый большой страх был, когда я смотрел, что у меня будет дальше. А у меня было дальше собеседование с господином Волковым. И вот тут Слава мне как раз запорол. Потому что этот человек должен был предстать очень страшным. -840 это его карма на DTF. Его считают бестактным человеком. От него с интервью уходили в слезах. Я понимал, что мне надо серьёзно подготовиться к такому испытанию. И как раз некоторые советы, которые я услышал, я хотел бы с вами поделиться ими.


Во-первых, надо понимать, что паук боится так же, как и вы его. Не надо ставить себя ниже компании. Компания тоже хочет найти человека, как и вы хотите в ней работу. Поэтому немножко уровняйте себя по приоритетам и не тряситесь.


Во-вторых, до сих пор бывают случаи, когда приходят на собеседование люди. Например, Бортпроект вышел, и мы спрашиваем Вы играли?. А соискатель может ответить: Я видео посмотрел. Это как-то чувствуется странно. Проект вышел, тебе над ним работать, а ты даже не удосужился поиграть. Если проект не вышел, то посмотрите всё, что вы можете о компании, посмотрите, кто там работает, можете попробовать к кому-нибудь постучаться, задать вопрос в личку. И что ещё, причина, по которой с Сергея так много минусов на DTF, это то, что иногда вас могут спросить вещи, которые вы можете посчитать личными. Хотя, например, мне довольно странно, что эти вопросы вы не хотите обсуждать на собеседовании, но при этом вы готовы их публиковать в соцсетях. Это странно. Надо понимать, что, когда вы проходите собеседование, помимо ваших качеств, еще и прорабатывают ваши риски. Насколько я помню, о чём Костя говорил. Вам ставит плюсик или минусик, плюс один бал. Риски, связанные с вами. Есть риски, которые связаны с вашей личной жизнью. И важно понимать для команды, кто вы, что вы есть. Поэтому не стесняйтесь и будьте отрытыми. Эта информация никуда не денется. HR её невыгодно куда-то публиковать или что-то ещё.


Собственно говоря, как я узнал эти советы. Это как раз благодаря каналу После титров. Когда я готовился, я увидел, что есть такой канал. Там как раз Сергей и Альберт рассказывают про разные темы, инди и так далее. И там был выпуск, как проходить собеседования. Сергей любит котиков, вообще душка.


И наконец, в конце я хотел бы поговорить, вообще как полюбить чужой проект. То есть, поскольку я пошёл по пути не инди, а в компанию. Это же, получается, что я работаю над чьей-то другой идеей. А как ты можешь вкладывать свои силы, свою душу и во что-то, что кто-то там придумал, а я над этим теперь должен работать. И вообще, надо понять, это вообще нужно? Можно же быть просто исполнителем. Делать чисто механическую работу и никак к проекту не относиться.


Тут я попробовал посмотреть разных людей, как они смотрят на какие-то схожие проблемы. Вот есть, например, высказывание Дмитрия Глуховского, который нам говорит, что, если для тебя эта тема неважна, ты не сможешь вдохнуть в неё жизнь. Он как бы это поэтически говорит. Но как я это воспринимаю? Я это интерпретирую так, что, если как-то очень просто говорить, например, клон ты сделать можешь, а какое-то развитие этой идеи дальше ты сделать не сможешь, потому что не очень понимаешь, что людям нравится в этой теме, в этой игре.


Я помню ещё была фраза Стива Джобса. Не помню её точно. Но помню, что смысл был в том, что ты не должен спрос потребителя удовлетворять, ты должен этот спрос создавать. И это как раз в ту же копилку, что как ты можешь создать новое, если не понимаешь, что людей волнует, что им нравится, от чего они получают удовольствие.



Есть ещё возможность посмотреть на эту проблему с другой стороны. Как раз ещё одна цитата Стива Джобса, которая заключается в том, что работа занимает большую часть вашей жизни и не очень в кайф делать то, что вам не нравится. Это довольно очевидная тема. Но что не маловажно, это то, что вы вряд ли сможете сделать эту вещь очень хорошо в своей работе, если она вам не нравится. Игру, которую вы делаете, вы не сможете сделать максимально хорошо.


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


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


Мы с вами пришли в геймдев или хотим перейти в геймдэйв, потому что нам не хочется работать на скучной работе, мы хотим сделать что-то крутое. Но надо понимать, что это не всегда возможно. Особенно, когда ты в начале пути. И я хочу поделиться с вами какими-то вещами, которые я нашёл полезными для себя. Например, найти сходство с тем, что вам нравится. С какой-то игрой, какие-то, возможно, отдельные элементы. Когда я пришёл на Кризис, я не был её целевой аудиторией, но я для себя нашёл очень прикольные вещи. Например, в Кризисе все анимации смерти сделаны в стиле Fallout. У них разрываются конечности, они кишки свои обратно засовывают. Это прикольно было. Мне прям сразу понравилось. И, в том числе, это было похоже на Red Alert, в которых я очень много в детстве играл. И поэтому со временем проект мне понравился. Дальше, найдите удовлетворение в самих задачах, попробуйте просто абстрагироваться от игры и посмотреть на свою работу, как на своего рода игру.


Например, была история от работника завода Ford. Это совершенно механическая работа. Собирает какие-то детали и переходит их обратно. Он целыми днями только это и делает. Он подошёл к своей работе тоже, как к игре. Он смотрел, сколько он минимально количество ошибок может допустить, смотрел скорость, с которой он собирает эти детали за час. И это вылилось в то, что, во-первых, у него повысилась производительность, а, во-вторых, он потом говорил: Это моя любимая работа и я не хочу, чтобы завод закрывали. Хочу до конца жизни ей заниматься. Ещё один момент это то, что с течением времени вы всё больше вкладываете себя в проект. Там вы сделали какой-то текст, там сделали новую миссию, там вы сделали новую акцию. И всё больше, больше и больше контента в игре получается от вас. И со временем проект, соответственно, всё больше становится вашим.


И наконец, ещё хороший вариант. Он, наверное, один из самых важных это быть на одной волне со своими игроками, понимать, что им нравится в игре.


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

Подробнее..

Работа и карьера геймдизайнера. Часть 3. Сложный выбор инди или крупная компания

24.09.2020 20:09:56 | Автор: admin

В первом статье Работа и карьера геймдизайнера. Часть 1. Что за зверь и с чем его едят? Константин Сахнов рассказал, как геймдизайнеров видят HR и CEO и в чём заключается разница, работать на какую вселенскую корпорацию добра или в маленькой уютной инди-студии.


Во второй статье Работа и карьера геймдизайнера. Часть 2. Основы игровой механики Константин Сахнов продолжил профессиональную тему. И показал, что в Gamedev рано или поздно перед тобой стоит выбор кем ты будешь, профессионалом, который что-то делает руками, или управленцев. Все работы хороши выбирай на вкус. Все полезны для процесса, если человек компетентен и не злоупотребляет полномочиями. А так же Владимиру Огарёву рассказал основы игровой механики. Именно основы. Чтобы охватить эту поистине огромную тему всё же надо идти на Менеджмент игровых проектов. Ученье свет, а неученье папа-олигарх-генерал-министр, яхты, самолёты, модели, белые незубной порошок на зеркальце, 250 км\ч гонки по ночной Москве.


А сегодня поговорим о выборе. Между инди и крупной компанией. Какие есть плюсы от корпорации. И немного о том, что ожидают люди, приходя в Gamedev. И Георгий Миронов, геймдизайнер 1С Game Studios и вы выпускник Менеджмент игровых проектов разберёт эти темы.



Что такое архитектура игры


Давайте, сначала разберём, кто это архитектор информационных систем. Это человек, которому ставится задача сделать эту систему. Он собирает требования или придумывает их сам. Он их документирует. Делает план по реализации. Делает, тестирует, внедряет. Когда я проходил свое первое обучение, много вещей оттуда совпадали с тем, что нам преподавали на Менеджменте игровых проектов.


Например, это домашнее задание из моей первой учёбы. Блок-схемы всяких процессов, блок-схемы самой системы.


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


А потом я вообще задумался, единственная ли это профессия, которая настолько совпадает, настолько близко. И я подумал, что есть же шеф-повар, есть просто архитектор зданий. Если детально смотреть, что они делают, то они все идут по маршруту, они придумывают или забирают, что пользователь хочет получить. Они это документируют, создают рецепт, создают макет. Реализуют это вместе с командой. Если механически посмотреть, всё у них совпадает. Если смотреть, чуть более обще, получается, что все эти творческие профессии направлены на создание какого-то опыта. Геймдизайнер хочет, чтобы игроку было интереснее. Разработчику операционных систем чтобы пользователю было удобнее работать. Шеф-повару чтобы блюдо было вкусное. Архитектору чтобы здание вызывало монументальные чувства, вдохновение. Церковь строим или аэропорт, нам надо, чтобы люди хорошо ориентировались там.


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


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


У меня есть история, когда я заходил к подруге в магазин. Она работает продавцом. Это магазин товаров для взрослых. Магазин физически поделён на две части. В одной части лежат обычные вещи (масла и еще что-то), а вторая более целенаправленна. И я думаю, интересно, сколько людей заходит в первую часть, и не заходит во вторую. Потому что, в первой части всё сделано для скромных людей, которые могут зайти и не интересоваться более глубокими вещами.


Но в первой части есть вещь прямо на входе, которая может оттолкнуть покупателей. И я думаю, какая вообще воронка этих посетителей. Если подумать, то можно попробовать убрать эту вещь, сделать анализ (посмотреть, как повысятся продажи, или понизятся). Может кому-то нравится, что их на входе встречает девайс. Это первое.


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


Насколько я помню, это было переодетое существо. Это не суть важно. И я думаю, интересно, как это можно было бы переложить на геймдизайн. И потом я вспоминаю, Metal Gear Solid 2, где Кодзима, его сложно упрекнуть, что он геймдизайнер, это гений наш, он взял и вписал в один момент геймплей в рамку. Это была рамка Game over. Она была немного изменена, но смысл был в том, что он пытался обмануть игрока, и этим показывал, что game play ненастоящий. Что-то не так. Можно переложить это так.


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


Что хотят люди, попадая в GameDev


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


Плюсы инди, как я посчитал, это, естественно, творческая свобода. То, что рассказывал Костя Сахнов. У нас есть какой-то градиент от инди до компании. И твоя творческая свобода определяется тем, что ты хочешь. Во-первых, реализовать свои амбиции, сделать что-то уникальное. Я слышал еще такое, что мне в ум приходит, как рассказывал на GBC создатель Antichamber. Это такая игра, похожая на Portal чем-то, но от неё отличается.


Your browser does not support HTML5 video.

Он как раз говорил, что для того, чтобы сделать что-то новое, уникальное, но приемлемое для аудитории, чтобы ты это смог продать, то это должно быть где-то на границе приемлемости. Это что-то похожее на Portal, но со своими новыми штуками, которых нигде нет. У него получилось сделать Antichamber. Игра хорошая и много собрала.


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


Как я рассуждал, когда работал в компании. Работа в компании первым делом это значит, что уже есть продукт, который популярен, и ты на нём можешь, скажем так, практиковаться и получать много фидбека. Практически никто не знает, как сделать правильно. А если бы такие люди были, они бы уже гребли миллионы. Но как неправильно сделать, обычно, тебе подскажут. Я думаю, это попроще определить. И как раз, когда ты работаешь в компании, тебе могут сказать, что: вот так лучше не делать, потому что мы так пробовали, это не работает. Это, во-первых. Во-вторых, ты, в том числе, можешь попрактиковаться, посмотреть статистику хорошую. Тебе могут эту статистику разжевать. Например, у вас выходит какое-то обновление, вас потом собирают и ваш начальник рассказывает для команды, какие у вас показатели, что зашло, что не зашло, и что мы будем делать дальше. И надо понимать, что в команде у тебя стабильная зарплата, когда ты работаешь в компании. Это тоже немаловажно. Ты не живёшь на Дошираках.


В итоге, что же я выбрал, почему. Во-первых, мне, наверное, должно быть стыдно, но у меня не было никогда проектов личных. Я любил много играть в игры очень много с детства, копать их немножко, модифицировать. Но какого-то проекта, который я считал, что порвёт мир, у меня никогда не было.


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


Значит, первое это не было проекта мечты. Второе я хотел компенсировать своё обучение. И дальше, я понимал, что даже когда я пройду обучение, всё ещё буду зелёный огурчик. Мне надо учиться дальше. И поэтому, как раз вариант, когда я могу собрать много фидбека это мне полезно будет и хорошо. В чём проблема сбора фидбека у инди? Это то, что у вас охват маленький, как Костя тоже говорил. И скорее всего, вы фидбек не очень много получите. Здесь можно получить его гораздо больше. И в том числе, непонятно, кто этот фидбек вам будет давать. Потому что часто игроки могут сказать, что им что-то не нравится конкретно вот это и из-за этого.
Но на самом деле, они могут не указать причину или сказать вам что-то не то. Я вижу для инди вариант сбора фидбека это на конференциях, допустим, тоже. Но стрёмная тема. Не всегда понятно, что фидбек будет качественным.


Your browser does not support HTML5 video.

И наконец, это то, что инди у меня в голове, всё-таки, как авантюриста, я вспоминаю историю из кровь, пот и пиксели про разработчика Stardew Valley. Человек, который сидел несколько лет дома, один. Его содержала его девушка. Ему, конечно, повезло. Здесь очень много факторов. Очень много, где ему повезло. Его не бросила девушка. Помогла. Ему удалось найти свою аудиторию. И проект сам хороший. Это, конечно, титанический труд. Но я думаю, что очень много людей, которые прошли примерно такой же титанический труд и им не повезло. У них какая-то тема не зашла. У них движок перестал поддерживаться. Вышла игра в том же жанре с большим охватом аудитории. Таких историй много. Здесь как раз я нашёл цитату одного из издателей: Геймдев, инди-геймдев это минное поле и вам нужно сделать всё идеально. И я бы к этой цитате добавил, что вам ещё при этом должно повезти. Потому что бывают ситуации, когда ты сделал всё, что мог, всё идеально, но тебе не повезло. Поэтому в итоге я выбрал работу в компании.


Выбор: инди или большая компания


И, собственно говоря, ожидание и реальность. Пришёл я в новую компанию. Вообще, в какую компанию я пришёл и чем я занимался. Я пришёл в компанию Rocket Jump на проект Кризис и в качестве младшего геймдизайнера занимался внутриигровыми акциями. Тоже про что рассказывал Костя. Он, кстати, был моим руководителем тогда. У меня работа была такая, механическая чисто.



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


По поводу работы самой. Вот, собственно говоря, мои ожидания и реальность. Во-первых, я помню историю, как на первой работе мне сказали: Жора, у нас программист уволился, теперь программистом будешь ты. Я такой: Классно, спасибо большое. Я мог проводить неделями просто в гугле. Искать информацию. Чисто, случайно найти информацию на пятой странице шестая ссылка это будет то, что мне надо. А до этого я мог реально неделю копаться в всех этих ссылках. Гугл был моей Википедией.


А теперь моей Википедией по правое плечо стал Борис, по левое плечо стал Михаил. Потому что все инструменты самописные. Я ничего прогуглить не могу. Я могу только спросить. Либо спросить, либо копайся сам, пытайся соединить твои предыдущие знания с тем, что ты видишь здесь. Не очень эффективно. Поэтому приходилось спрашивать и много взаимодействовать с другими людьми. Во-вторых, наслушавшись истории про кранчей, про то, что индустрия беспощадна и невозможно нормально спать. Я ожидал работать по 11 часов. Я до этого уже успел немного поработать в KFC, смена по 11 часов на ногах. Или на предыдущей работе сидеть до 01:00 ночи, делать систему, сидеть на телефоне с людьми из Газпрома и спрашивать как там, как вы что-то заполните, рисками управляете, чтобы соединить это всё.


А тут как получилось? Тут, во-первых, благодаря Косте меня отпускали пораньше, чтобы я шёл на учёбу. Но это чисто моя тема. Хотя я думаю, что вы, скорее всего, сможете договориться с работодателем, что вы уйдёте в учёбу, что вы будете более хорошим специалистом после прохождения курсов. Поэтому, возможно, вам тоже разрешат уйти пораньше с работы, чтобы отправиться на учёбу. Это первое что опускают раньше. А второе, это то, что меня не задерживают. За всё время, я не помню ни одного раза, когда меня просили или требовали, чтобы я задерживался, до ночи кранчил и т.д. Если такое было, то это было только потому, что я хотел и потому что я понимал, что я сделаю свою работу плохо, если у меня что-то не получится. Я даже потом расскажу немножко, как я исполнял вообще всё это дело.


Дальше, это, чем нас постоянно пугают. Делают, наверное, правильно. Что играть в игры и разрабатывать игры это совершенно разное. И что играть вам не получится. На самом деле, особенно на этапе, когда ты только пришёл, играть ты будешь много. Потому что тебе надо изучить проект. Ну и в принципе, когда ты устал и решил поиграть в свою игру никто против не будет, я думаю. Главное по срокам задач Не профукивай задачи. И всё будет хорошо. Наконец, я думаю, что многие из нас сталкивались с фразой Забудь всё, что тебе говорили до этого. Я помню, что я эту фразу отлично услышал, когда я учился в автошколе. Я пришёл на первое практическое занятие с инструктором. Сажусь в машину, и он говорит: Забудь всё, что тебе говорили до этого. У меня волосы дыбом. В смысле? Это как? Это было стрёмно. Что получилось здесь? Здесь меня научили чисто прикладным знаниям. Как мне сделать то, что я хочу в таком-то инструменте. А что я сам захочу там сделать, это уже зависит, в том числе, от моего образования. Если я занимался монетизацией, поэтому уже на этапе чуть более продвинутом, когда я не под копирку что-то делал, я уже сам думал, что мне положить туда, по каким правилам мне это делать. Я посмотрел аналитику, применял знания, полученные на менеджменте игровых проектов, как это всё анализировать.


А теперь давайте тоже вернёмся к чуть более красочным моментам. Почему работать в геймдэйве это круто? Это офигенные офисы, это классные люди и классные ивенты, вкусняшки. Всё выглядит суперски. Там даже был душ, и я думал, почему же там нельзя жить. Жить нам там запрещали. Как раз, я хотел вернуться к тому, как я задерживался. Я не задерживался. Я приходил просто рано с утра в офис. Я сокращал время на поездку. Рядом с офисом был капсульный отель, где ты залезаешь в такую конуру, где ты можешь только сидеть или лежать. Закрываешь за собой ячеечку. Такие в Японии распространены. И я там отдыхал, потом в 9 утра шёл на работу. 9 утра для геймдейва это рано.



И теперь, перенесёмся немножко вперёд. Как я решил поменять свою работу. Я увидел, что появился проект Калибр, что там появилась вакансия. Мне с детства нравятся шутеры. Просто обожаю их. Шутеры моё всё. И я подумал, что это хорошая возможность изучить Unity в том числе. Потому что Кризис это флэш. Хотелось чего-то поновее, посовременнее, чтобы развиваться дальше. И как раз этот факт, что Калибр на Unity, меня волновал. Потому что Unity я тогда не знал, я прошёл только перед тестовым заданием этот минимальный курс Unity, как, что, куда кликать. Это было моё первое волнение. Но самый большой страх был, когда я смотрел, что у меня будет дальше. А у меня было дальше собеседование с господином Волковым. И вот тут Слава мне как раз запорол. Потому что этот человек должен был предстать очень страшным. -840 это его карма на DTF. Его считают бестактным человеком. От него с интервью уходили в слезах. Я понимал, что мне надо серьёзно подготовиться к такому испытанию. И как раз некоторые советы, которые я услышал, я хотел бы с вами поделиться ими.


Во-первых, надо понимать, что паук боится так же, как и вы его. Не надо ставить себя ниже компании. Компания тоже хочет найти человека, как и вы хотите в ней работу. Поэтому немножко уровняйте себя по приоритетам и не тряситесь.


Во-вторых, до сих пор бывают случаи, когда приходят на собеседование люди. Например, Бортпроект вышел, и мы спрашиваем Вы играли?. А соискатель может ответить: Я видео посмотрел. Это как-то чувствуется странно. Проект вышел, тебе над ним работать, а ты даже не удосужился поиграть. Если проект не вышел, то посмотрите всё, что вы можете о компании, посмотрите, кто там работает, можете попробовать к кому-нибудь постучаться, задать вопрос в личку. И что ещё, причина, по которой с Сергея так много минусов на DTF, это то, что иногда вас могут спросить вещи, которые вы можете посчитать личными. Хотя, например, мне довольно странно, что эти вопросы вы не хотите обсуждать на собеседовании, но при этом вы готовы их публиковать в соцсетях. Это странно. Надо понимать, что, когда вы проходите собеседование, помимо ваших качеств, еще и прорабатывают ваши риски. Насколько я помню, о чём Костя говорил. Вам ставит плюсик или минусик, плюс один бал. Риски, связанные с вами. Есть риски, которые связаны с вашей личной жизнью. И важно понимать для команды, кто вы, что вы есть. Поэтому не стесняйтесь и будьте отрытыми. Эта информация никуда не денется. HR её невыгодно куда-то публиковать или что-то ещё.


Собственно говоря, как я узнал эти советы. Это как раз благодаря каналу После титров. Когда я готовился, я увидел, что есть такой канал. Там как раз Сергей и Альберт рассказывают про разные темы, инди и так далее. И там был выпуск, как проходить собеседования. Сергей любит котиков, вообще душка.


И наконец, в конце я хотел бы поговорить, вообще как полюбить чужой проект. То есть, поскольку я пошёл по пути не инди, а в компанию. Это же, получается, что я работаю над чьей-то другой идеей. А как ты можешь вкладывать свои силы, свою душу и во что-то, что кто-то там придумал, а я над этим теперь должен работать. И вообще, надо понять, это вообще нужно? Можно же быть просто исполнителем. Делать чисто механическую работу и никак к проекту не относиться.


Тут я попробовал посмотреть разных людей, как они смотрят на какие-то схожие проблемы. Вот есть, например, высказывание Дмитрия Глуховского, который нам говорит, что, если для тебя эта тема неважна, ты не сможешь вдохнуть в неё жизнь. Он как бы это поэтически говорит. Но как я это воспринимаю? Я это интерпретирую так, что, если как-то очень просто говорить, например, клон ты сделать можешь, а какое-то развитие этой идеи дальше ты сделать не сможешь, потому что не очень понимаешь, что людям нравится в этой теме, в этой игре.


Я помню ещё была фраза Стива Джобса. Не помню её точно. Но помню, что смысл был в том, что ты не должен спрос потребителя удовлетворять, ты должен этот спрос создавать. И это как раз в ту же копилку, что как ты можешь создать новое, если не понимаешь, что людей волнует, что им нравится, от чего они получают удовольствие.



Есть ещё возможность посмотреть на эту проблему с другой стороны. Как раз ещё одна цитата Стива Джобса, которая заключается в том, что работа занимает большую часть вашей жизни и не очень в кайф делать то, что вам не нравится. Это довольно очевидная тема. Но что не маловажно, это то, что вы вряд ли сможете сделать эту вещь очень хорошо в своей работе, если она вам не нравится. Игру, которую вы делаете, вы не сможете сделать максимально хорошо.


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


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


Мы с вами пришли в геймдев или хотим перейти в геймдэйв, потому что нам не хочется работать на скучной работе, мы хотим сделать что-то крутое. Но надо понимать, что это не всегда возможно. Особенно, когда ты в начале пути. И я хочу поделиться с вами какими-то вещами, которые я нашёл полезными для себя. Например, найти сходство с тем, что вам нравится. С какой-то игрой, какие-то, возможно, отдельные элементы. Когда я пришёл на Кризис, я не был её целевой аудиторией, но я для себя нашёл очень прикольные вещи. Например, в Кризисе все анимации смерти сделаны в стиле Fallout. У них разрываются конечности, они кишки свои обратно засовывают. Это прикольно было. Мне прям сразу понравилось. И, в том числе, это было похоже на Red Alert, в которых я очень много в детстве играл. И поэтому со временем проект мне понравился. Дальше, найдите удовлетворение в самих задачах, попробуйте просто абстрагироваться от игры и посмотреть на свою работу, как на своего рода игру.


Например, была история от работника завода Ford. Это совершенно механическая работа. Собирает какие-то детали и переходит их обратно. Он целыми днями только это и делает. Он подошёл к своей работе тоже, как к игре. Он смотрел, сколько он минимально количество ошибок может допустить, смотрел скорость, с которой он собирает эти детали за час. И это вылилось в то, что, во-первых, у него повысилась производительность, а, во-вторых, он потом говорил: Это моя любимая работа и я не хочу, чтобы завод закрывали. Хочу до конца жизни ей заниматься. Ещё один момент это то, что с течением времени вы всё больше вкладываете себя в проект. Там вы сделали какой-то текст, там сделали новую миссию, там вы сделали новую акцию. И всё больше, больше и больше контента в игре получается от вас. И со временем проект, соответственно, всё больше становится вашим.


И наконец, ещё хороший вариант. Он, наверное, один из самых важных это быть на одной волне со своими игроками, понимать, что им нравится в игре.


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


P.S. Нашему учебному центру тоже близка, как вы догадались, образовательная работа. И потому даже не скрываю, что у нас намечаются обновлённые Kubernetes База 2830 сентября и Kubernetes Мега 1416 октября, а SRE придётся подождать до 1113 декабря.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru