«В 13 лет не было ни навыков, ни средств для создания собственной графики»: интервью с Kapoff3D, разработчиком Province Simulator
Беседуем о мотивации, поиске визуального стиля и о том, как в одиночку встроить в игру локальный ИИ для симуляции погоды.
Province Simulator — это игра на стыке жанров: квест, point-and-click и выживание. Нужно не замёрзнуть, не умереть от голода или болезней и попытаться заработать деньги в условиях постоянной нехватки ресурсов. Главная цель — вырваться из города и начать новую жизнь.
Игроку доступен мир с разнообразными локациями и повседневными активностями: от работы на заводе, до простых бытовых действий, вроде готовки или прослушивания неработающего радио.
Особого внимания заслуживает атмосфера — разработчик уделил много времени для создания реалистичного звукового сопровождения. Огромную роль при этом играет реалистичная и непредсказуемая система погоды.
В целом, получилась действительно увлекательная игра, в которой я сам несколько раз умер. Но не буду спойлерить и излишне растягивать текст — лучше поиграйте сами. А сейчас перейдём уже к интервью.
Интервью участвует в конкурсе.
Здравствуй, Роман! Расскажи, пожалуйста, немного о себе. Чем ты занимаешься по жизни?
Привет! Я Kapoff3D, разработчик Province Simulator. Если говорить о хобби — собственно, разработка игр, модов, в частности для MudRunner, мелких программ. Также немного пробую в техноблог, но это пока пробы. В целом — всё связанное с железом и играми.
Ого! Какие моды для MudRunner ты делал?
Моды для MudRunner — в основном карты, иногда экспериментирую с графикой и физикой.
Как люди в твоём окружении относятся к твоему занятию разработкой?
Самих людей в окружении немного, но те, что есть, относятся к моему занятию положительно.
Как разработка повлияла на твою жизнь?
Разработка повлияла на заинтересованность в играх и индустрии: начал больше разбираться в самих процессах создания, работе с железом и прочим. И, конечно, занимала очень много времени.
Ты работал над игрой один или в команде?
Работал в одиночку, с редкой помощью от других людей в локальных моментах. В целом, я единственный разработчик.
Что подтолкнуло или вдохновило тебя к разработке своей игры?
К созданию подтолкнуло несколько факторов. Начал изучать программирование в августе 2023, а в сентябре уже начал делать игру. Вдохновился играми, вроде IT'S WINTER («ШХД: ЗИМА»), и другими инди поделками еще меньшего уровня. Хотел сделать «it's winter на телефон», поставил для себя такую цель. В последствии забыл, но не совсем.
Как выбрал тематику и жанр?
Тематику выбрал, основываясь на вышеуказанной игре. Жанр вытекал из движка — визуальная новелла, но без сюжета, с личной историей и всё. В последствии и этот жанр сменился на квест/выживание/point and click, но движок остался.
На каком движке игра, и какие языки программирования ты используешь?
Движок — Ren'Py, язык — Python. Поскольку изначально я делал новеллу, а затем стал делать квест с «открытым миром», движок пришлось переделывать под себя. Я убрал линейную структуру для новелл, и создал структуру для жестко разделённых локаций. Затем переделывал движок с упором на визуальные эффекты и анимации, которые вообще возможны на Ren'Py.
Перед началом у тебя уже были навыки программирования, или ты всему учился на ходу?
Знал минимальное устройство Python, но, в целом, всему учился на ходу.
Когда ты выбирал игровой движок, ты представлял себе его возможности?
Да, и он до сих пор хорошо подходит. Главное что повлияло на выбор Ren'Py — это то, что я знал минимальную базу Python. А ещё это 2д движок с соответствующими требованиями к железу и навыкам. Я сразу представил, что вся графика будет строиться на фотографиях, поскольку в 13 лет не было ни навыков, ни средств для создания собственной графики. Сейчас всё, в целом, так и осталось, но с очень значительными изменениями.
Менялись ли твои задумки по ходу разработки, и приходилось ли тебе отказываться от замыслов из-за ограничений движка или недостатка знаний?
Через 2-3 месяца разработки новеллы, я придумал, как можно сделать новеллу не линейной, а полноценной игрой. С тех пор игра развивается именно в этом направлении — максимальная открытость и функциональность внутри игры, а не «линейная новелла».
Отказаться, точнее, изменить, пришлось систему инвентаря. Из-за довольно сложных механик предметов внутри игры, сделать полноценный инвентарь с визуальным окном, иконками, сортировкой предметов, их разных количеством, ограничениями, возможностью использования из него предметов и перестройкой на ходу — не представлялось возможным. Я реализовал «невидимый» инвентарь.
Жалеешь ли ты о том, от чего пришлось отказаться?
Жалею, но не сильно.
Что ты чувствуешь, когда наконец воплощаешь идею, ради которой пришлось освоить что-то с нуля?
Думаю, радость, что всё получилось.
Что вызвало наибольшие сложности в разработке?
Наибольшие сложности — делать на движке для новелл игру с «открытым» миром, когда почти все обсуждения и информация в интернете, в основном, именно о разработке новелл.
Чем ты гордишься в своей игре?
Горжусь тем, что это, наверное, одна из самых сложных, с точки зрения механик и визуала, игра, из сделанных на этом движке. Свой локальный ИИ для генерации погоды, работы, система локаций, болезни, активности и так далее. И «графикой» тоже горжусь, конкретно эффектами.
Когда ты первый раз столкнулся с выгоранием или зашёл в тупик?
Выгорание или тупик — возможно, каждые несколько месяцев, но не сказать что прям сильно. Разработка просто иногда надоедала, а иногда шла очень хорошо.
Ты как-то говорил, что рассматривал аниме-стиль для визуального оформления игры. Почему отказался от этой идеи?
Аниме стиль был одним из вариантов визуального оформления, альтернатива реальным фото, это был эксперимент, позднее я перешёл к стилю пиксель-арта.
Как сформировался итоговый визуальный стиль?
На последних стадиях разработки игра все еще была в виде фото, которые я подобрал еще 2.5 года назад. Эти фото идеально, по моему мнению, сочетаются между собой. Но под конец визуальный стиль образовался за счет случайного эксперимента с фото в стиле пиксель-арта.
Фотографии для игры сделал сам?
Нет, фотографии я не делал сам, на это опять-таки нужна хорошая камера, и... правильное время года.
Часто ли ты ленился, переносил что-то на другой день?
Думаю да, но я бы назвал это не ленью, а скорее растянутым процессом разработки. Иногда делаю все и сразу, иногда позже.
Что мотивировало тебя продолжать?
Два года мотивировало обычное «скорее бы закончить», последние пол года — появление издателя и релиз в Steam, который оказался возможным именно благодаря издателю.
Боялся ли ты, что кто-то не поймёт твоё творчество?
Я не боялся, скорее понимал. Игра была задумана изначально не для продажи, не под тренды индустрии, а только под собственные желания.
Как относишься к критике?
К критике отношусь хорошо, её не хватает. Но только действительно объективной критики.
Какой положительный отзыв запомнился тебе больше всего?
Положительный отзыв — думаю, просто первое впечатление одного из «тестировщиков» моей игры, просто знакомый, который в неё поиграл.
Оглядываясь назад, что бы ты посоветовал самому себе?
Что бы посоветовал самому себе? Возможно, упорства, и чаще читать документацию.
Ты сказал о собственном ИИ для симуляции погоды. Расскажи подробнее, как это работает.
В коде игры я реализовал локальную ИИ модель для симуляции погоды. Она состоит из 1 нейрона и 5 параметров. Принимает на вход сложность, предыдущий тип погоды, силу ветра, генерирующуюся отдельно, и длину нынешнего цикла погоды. Длина цикла генерируется случайно, как и ветер. Просчет погоды происходит при каждом переходе на локацию. Исходя из расчётов модели, генерируется реалистичная погода, с различными анимациями снега, звуками и влиянием на игрового персонажа.
Опиши подробнее, как погода влияет на персонажа.
Помимо визуальных и звуковых эффектов, в зависимости от типа погоды меняется скорость замерзания персонажа. При слишком низкой температуре, персонаж может заболеть простудой и переохлаждением, что влечет за собой получение урона, необходимость лечения, и, возможно, смерть.
А как реализованы болезни?
Персонаж заболевает в игре при употреблении неправильной еды, или разной степени замерзания на улице. Игрок получает разовый урон, и затем регулярный урон при переходе по локациям, что может привести к смерти. Лечение и восстановление здоровья реализовано через лекарства, больницу, сон, и некоторую еду.
Цель игры — заработать денег и уехать. Но деньги как раз нужны для покупки еды и лекарств. Много ли времени ушло на балансировку экономической системы?
Прежде всего, отталкивался от цен на продукты, которые установлены в примерном соответствии реальным. Таким же образом установлены цены на лекарства и другие вещи. Затем, я сделал сбалансированные зарплаты на работах, что бы при базовых тратах, что-то оставалось для главной цели. А саму главную цель балансировал просто исходя из планируемого времени прохождения.
Расскажи подробнее о графике. Как работает система освещения?
Ну, освещения как такового нет, скорее эффекты лучей света. На локациях с очевидными источниками света установлены динамические спрайты лучей света и бликов — они двигаются противоположно движению камеры персонажа, что задумывалось как эффект параллакса.
Также лучи света подсвечивают эффекты снега, что, по моему, довольно хорошо выглядит и похоже на реальность. Если говорить об основе визуала как о реальных фото и дальнейшем улучшении картинки с приближением ее к реальности, с помощью эффектов и анимации камеры, снега, лучей света и бликов, которые сочетаются между собой.
Я правильно понимаю, что игру можно назвать кликером? Расскажи подробнее о том, как формировался игровой процесс.
Да, смысл был в максимальной открытости игры, и возможности действий на выбор игрока, а не линейный сюжет. Игровой процесс формировался из особенностей реализации задуманной концепци на движке игры, с его ограничениями.
Релиз в Steam планировался изначально?
Изначально релиз в стиме не планировался, были мысли что это было бы хорошо, но как будто недостижимо, учитывая первоначальный взнос.
Какие платформы ещё рассматривал?
Для распространения только ПК, когда-то думал про Android и Play Market, но быстро оставил эти мысли.
Как ты нашёл издателя?
Издателя нашел совсем случайно, очень повезло с этим. Просто общались с блогером о играх, потом я о своей игре рассказал, что делаю, ни на что не рассчитывая, а он предложил помочь. Издатель нашелся примерно за 7 месяцев до релиза.
Занимался ли ты продвижением своей игры?
Продвижением особо не занимался, этим занимался издатель. В основном через его ютуб канал и рекламу.
Как появился универсам Нагнут?
В оригинале там был бренд, на упоминание которого у нас не было лицензии ( ° ʖ °)
Как долго ты придумывал название для своей игры?
Рабочее название Project winter — сразу. Мгновенно. Но такая игра уже есть, и название использовать не получилось. Нынешнее название я придумывал довольно долго, прям помучился. Оно в принципе меня устраивает, но первое все равно лучше.
Сильно ли ты расстроился, что такая игра уже есть? В какой момент ты это заметил?
Сильно ли расстроился? Очень. Когда заметил? Просто решил проверить в интернете, есть ли что-то с таким названием. Это было, скорее, ближе к концу разработки. Однако рабочее название таким и осталось, но для распространения я называю ее Province Simulator.
Какая локация своей игры тебе больше всего нравится?
Визуально, думаю, «автобусная остановка» и «гаражи».
Как относишься к DTF? Почему не продвигаешь здесь свою игру?
Как к площадке, отношусь положительно, к аудитории смешано. Релиз состоялся недавно, я думал написать про историю разработки, но мне предложили взять интервью, так что продвигаю, но не сам :>
Сколько денег потратил на разработку?
Ну, если убрать счёт за электричество, то нисколько.
Не думал ли ты о добавлении случайных событий? Например, во время работы за станком, персонаж мог бы пораниться.
Думал, но больше о событиях на улице. Как-то постепенно отошел от этой идеи, пока разрабатывал игру в целом.
Что ты имеешь в виду под разработкой «в целом»?
Реализация всех основных идей и виденья игры в целом. Более конкретные вещи, чем мысли о возможных случайных событиях.
Грубо говоря, у тебя был план, и ты его придерживался?
Да.
Но историю разработки напиши!
Возможно :>
Сам ты, я так понимаю, играешь на ПК? Есть ли у тебя другие платформы?
2 ПК, старый и новый, и Xbox Series S.
Много ли наиграл в Mudrunner?
В MudRunner — очень много, вместе со SpinTires.
Какие жанры игр тебе нравятся ещё? Можешь назвать конкретные игры.
Жанры — RPG от 3 лица, немного шутеры, немного симуляторы, в последнее время RTS нравятся, из-за The Scouring. Еще люблю необычное инди, и выживание.
Когда ты станешь взрослым игровым разработчиком, на кого хочешь быть похожим?
Павел Загребельный — создатель SpinTires и MudRunner.
(Пока мы разговаривали с Романом, он внезапно вспомнил о критике, которая очень его разозлила).
«Слишком низкая частота кадров»…
Я её СДЕЛАЛ на g3220 и 4 гигах оперативы!
Сидел, делал оптимизацию под все возможные железки, скорость стриминга ассетов, настройки и лимиты кеширования, выгрузки локаций на границах регионов. Системные требования все высчитывал подробно, на реальном железе тестил!
При невероятной оптимизации, благодаря компу разработчика, у кого-то все равно лагает! Или что под низкой подразумевается? Может ему 120 мало?
Ты сказал, что у тебя 2 ПК. Один старый, на g3220, а новый?
Amd Ryzen 7 5700x
Sapphire Amd Radeon Rx 7600 Pulse Gaming OC
32Gb Adata Xpg GAMMIX D35
Gigabyte B550m Aorus Elite Ax
Роман, спасибо за то, что согласился на интервью! Я был очень рад с тобой беседовать!
Спасибо за предложение поучаствовать, было интересно отвечать на вопросы, необычный опыт. На некоторые я вообще для себя отвечал сначала, в первую очередь ( ° ʖ °)
На этом всё!
От себя хочу сказать, что мне очень понравилось говорить с Романом о его игре — локальным ИИ для погоды я вообще искренне восторгаюсь. Очень хочется, чтобы его следующая игра стала инди-хитом, потому что уже сейчас у него есть огромный потенциал.
Настоятельно рекомендую купить и пройти Province Simulator, вы очень порадуете этим разработчика, а я буду знать, что брал это интервью не зря.