Портфолио. Разработка
История разработки проекта для портфолио, история выборов и ошибок.
Предыстория
Год назад меня рекомендовали в одну крупную геймдев компанию игровым писателем. Я ни на секунду в себе не сомневался. Всё-таки я учусь на литературного работника, я прочитал много классической литературы, знал основы драматургии, написал много текстов. После успешно выполненного тестового, я был абсолютно уверен, что собеседование — ерунда.
Но меня не взяли. Рекомендовали книги по сценаристике. Дали советы и лёгкую надежду, что когда буду опытнее, — возьмут.
Я прочитал все рекомендованные книги, просмотрел бесплатные курсы по нарративу в играх, читал Джесси Шелли про геймдизайн.
Но это всё теория, слова. Нужно было портфолио. Нужна была практика.
Концепт и подготовка
Хотелось чего-то вроде "To the moon" и "Disco Elysium". И мини-игры. И головоломки. И нелинейность. И озвучку…
Я написал геймдизайн документ, а идея обрастала реальными ограничениями.
1. Время. В планах было закончить проект за три месяца.
2. Знания. Ни знаний языков программирования, ни умения рисовать.
3. Время. Я учусь на заочном и работаю на двух работах.
4. Команда. Я один.
Драматическая история с видом «top-down», в пиксель арт графике из бесплатных ассетов с тремя механиками — взаимодействие с предметами, взаимодействие с npc и ходьба.
Логлайн:
По просьбе больной жены Том едет на полустанок забрать тайник из сада ее бабушки. В ходе недолгого путешествия он узнаёт о причинах загадочного пожара, случившегося на полустанке, и раскрывает тайны своего прошлого.
Сейчас кажется, что проще было сделать визуальную новеллу с упором на нелинейность и текст. Но нет. Хотелось настоящую интерактивную историю, хотелось сделать свою игру, почувствовать себя инди разработчиком.
Движком я выбрал Unity.
Я написал черновик сценария и занялся Unity и C#. За два месяца я понял только самые азы, циклы, классы, и проч. Я бы и дальше изучал, и до сих пор бы изучал, если бы в какой-то момент не задумался:
— А зачем мне делегаты и интерфейсы?
«Я вернулся» и переписал сценарий в чистовой вариант. Затем ещё… но уже интегрировал в articy:draft, добавил выборы, диалоговые ветки и логику.
Из бесплатных ассетов собрал в фотошопе локации.
Особых архитектурных навыков здесь не требуется. Рутинная работа. Создаёшь сцену, основываясь на своём видении и вкусе, а игровой опыт и теоретические знания нарративного дизайна подсказывают как рассказать историю через окружение.
В целом, это и был весь этап подготовки: изучение C#, изучение Unity, создание сцен. Написание и переписывание сценария и персонажей. С нуля это заняло четыре месяца.
Разработка
Если писать сценарий было легко и приятно, то эта часть оказалась самой мучительной. Оказалось, что все те знания о Unity: из видео, из бесплатных курсов, были поверхностны, что в реальной задаче, в реальной разработке, сам придумываешь решение, используя доступные инструменты.
А выполнение некоторых задач растягивалось на три-четыре дня, а то и на неделю. Например, анимацию остановки персонажа в сторону движения («идёт вверх» — останавливается — «смотрит вверх») я настраивал четыре дня, поскольку никак не мог понять, как сделать переход от анимации движения к остановке в нужном направлении. Или простое обращение из класса к другому объекту. Пытался понять часов семь, зато потом настраивал объекты за пятнадцать минут.
Я перестал пользоваться трекером или составлять списки задач — я итак уже знал всё, что мне нужно сделать на следующий день и что работает некорректно.
После настройки логики диалогов, выборов и ответов, всё свелось к простым алгоритмам:
1. Загрузка. psd файла локации в unity.
2. Настройка polygon collider 2d для стен.
3. Добавление префабов объектов взаимодействия и npc.
4. Написание скриптов для разных задач (открытие дверей, движение npc, выключение иконки предмета для взаимодействия после самого взаимодействия).
5. Тестирование.
6. Правка багов.
7. Тестирование…
Фиксить баги, когда знаешь причину ошибки — просто и приятно. Фиксить то, что не работает «просто потому что», по неясной причине — болезненно и долго.
Даже такой простой игре нужно много часов и дней тестирования. Я и не поверил бы, если сам бы этим не занимался. И всё равно останется деталь, которую ты пропустил.
Но все бессонные ночи и усталость вознаграждаются очень странным, приятным чувством — ты проходишь свою игру от начала и до конца и она работает. Ты уже знаешь, что сейчас должно включиться, а что выключиться. Знаешь, какой здесь работает кусок кода, и как его можно пофиксить. А если не знаешь, то можешь правильно загуглить, чтобы быстро найти решение.
4. Плейтесты
После них были исправлены ошибки в тексте, недочёты в драматургии, различные баги с коллайдерами, с взаимодействием с предметами и проч. Всегда найдётся что править и что добавить. Всегда нужно вовремя остановиться.
И вот на чём я остановился:
Я выложил игру на itch. io, обновил резюме и портфолио, и с чувством выполненного долга впал в глубокую апатию.
От идеи до плейтестов прошло восемь месяцев. Я продирался через усталость, через боль, через незнание к большой цели. А достигнув её — потерял смысл. Казалось, что всё, чем я занимался: от концепта до кода и сценария — одна большая ошибка. Что нужно было идти другой, более простой дорогой.
Под тяжестью снега еловые ветви выглядят унылыми и понурыми. В окнах домов первые замыслы и наброски новогоднего настроения — гирлянды. Апатия переросла себя, повзрослела в чувство иного качества. В новую цель — продолжать развивать в себе профессиональные навыки.
Вновь захотелось искать, узнавать, пробовать. Перечитать книги по нарративному дизайну, проходить курсы, всё-таки написать сценарий для визуальной новеллы.
Наверное, в этом и есть развитие и его суть — ставить сложные, но решаемые задачи.
Верю, что и у вас всё получится.