В прошлой части я рассказал про подачу заявки на создание страницы в Steam, но на самом деле сделал это только спустя месяц разработки. Решил рассказать об этом пока в памяти свежо и чтобы сразу отделаться от этого ненужного куска. А вообще не вздумайте создавать страницу игры в стиме пока у вас ещё нет существующей игры и реального рабочего плана. Под этим я подразумеваю демо с рабочими core-механиками, концепцию, в которой вы уже уверены, подконтрольный инструментарий и фактическую команду; в общем то, что живёт не только в мире теорий.
С командой мы разобрались в Первой части. Концепция у нас довольно простая и проверенная временем, но так как игра не геймплейная, то оценить её сложно; тем не менее, пока карты складываются. В этой части я постараюсь немного разобраться с механиками и частью инструментария, которые я изучал в течении первого месяца разработки.
Геймплей
В моём случае механик в игре - кот наплакал, так что реализовал я их довольно быстро с моими навыками. Много взял из прошлых прототипов (один из плюсов игр, которые не выпускаются), как, например, системы сохранения, смены сцен, быстрого создания интерфейса, диалоговое окно и прочие мелочи. Но, конечно, даже в этих случаях постоянно код улучшается и дополняется.
Одной из новых механик нужно было сделать мини-игру "три в ряд". Сама идея простейшая, поэтому за день спокойно пишется. Но чтобы сделать всё работало "правильно", красиво и удобно, пришлось потратить ещё несколько дней. Для сравнения смотрел в стиме; и те, что нашёл, реализовали "три в ряд" ну очень так себе, а когда оценивал браузерные три в ряд, так там вообще кошмар. Где-то шарики меняются не принципом "drag and drop", а "кликни сначала на один шарик, потом на второй, и тогда они поменяются" или тупым свайпом. Где-то просто проблемы с алгоритмом положения шариков, например, постоянные наслаивания или "падение сверху" вразнобой. Играется очень неприятно. В общем, потратил несколько дней на расчеты и полировки алгоритмов. Я не берусь говорить, что я сделал всё идеально, но результат меня пока что радует. Дальше ещё нужно потратить время на дополнительные механики для игры (я их типа сделал, но пока что недоволен, так что буду работать над ними ещё).
На одном недавних этапов я решил добавить вторую мини игру. По концепции игры игрок должен сначала купить продукты в магазине, а потом уже их готовить в игре "три в ряд". И сначала они просто покупались без условностей, но мне захотелось что-нибудь к этому придумать. Надеюсь, я не перемудрил для казуальной аркады: у игрока есть корзина с продуктами, в которую он сам выбирает что положить, но каждый ингредиент имеет свою цену в десятичных (напр. 2.2), а оплачивать можно только целыми монетами, то есть надо набрать такую комбинацию товаров в корзине, чтобы она была целочисленной (напр. 12), то есть кратной целым золотым монетам; плюс ограничения на количество монет у игрока, объём корзины и необходимость купить каждый ингредиент хотя бы по одной штуке. (Наличие телевизора в гостиной и оплата золотыми монетами - это условность выдуманного мира, где еда может превратиться в вайфу.)
Во время так называемых "H Scene" мы решили ограничиться кликером (игрок нажимает кнопку мыши, анимация ускоряется, висячие конечности больше двигаются). Лично мне кажется, что не стоит создавать из сексуальных сцен игровые механики, - это не то время, когда герой хочет поиграть в игру. Единственный вариант, который меня устраивает, это если игровая механика помогает управлять сценой, например, ускорить её.
Ну и на самом деле больше всего работы ушло на взаимодействие с игрой. Ведь геймлпей у нас это по большому счёту не мини-игры, а нажимание кнопок и переходы из сцены в сцену. Поэтому самым сложным с точки зрения программиста было (и остаётся) сделать логику поведения игры - выбора правильной сцены и правильной отработки кнопок и других компонентов в сцене. (Например, кнопка "играть" должна появиться ТОЛЬКО, если игрок находится на сцене кухни, выбрал рецепт в книге, купил все необходимые ингредиенты и мини-игра готова к тому, чтобы её играли. А если игрок не начал новую игру, а загрузил старую, то надо ещё загрузить положения шариков.)
Звуковые эффекты
Чтобы было ещё приятнее передвигать шарики, нужно обязательно украсить всё приятными "попами" и "пупами". Не знаю у всех ли разработчиков так, но я всегда вспоминаю про звуки в самый последний момент, как о последней детали игры. Отсутствие звуков играть не мешает, сюжет смотреть тоже; даже без музыки сложнее, чем без звуков. Как будто бы звуки - это приёмный ребёнок в семье творческого проекта. Тем не менее, не узнаешь, работает ли игра в шарики или нет, пока не озвучишь их.
Для работы со звуками использую небольшую программу Audacity, не знаю, самая ли удобная и интуитивно понятная, но самая популярная, кажется, точно. В ней же управляю музыкальными дорожками, которые отправляет композитор. Из всего инструментала там научился только нарезанию, изменению громкости и кривой громкости (чтобы, например, начинать звук тише, а продолжать громче).
Записывать звуки самостоятельно я никогда не пробовал, беру всё с самых разных источников в интернете. Если честно, звуки - это единственное, где я забил на вопрос лицензии; главное не копировать из других проектов, а брать с сайтов, где продают звуки, и не платить, - я не стесняюсь. Советовать какие-то ресурсы я тоже не могу, ибо реально сам беру откуда попало, от ютуба до аудиобанков.
Интересно, конечно, было искать звуки seкса. Найти хорошие хлопанья и хлюпанья - та ещё задачка, скажу я вам. Для начала сложно вообще понять, каким запросом такое искать. Далее, "где такое искать?", на стандартных аудиобанках почему-то нет такого. Думал даже взять из аниме, но там слишком много происходит одновременно, да и звуки, честно говоря, не похожи на seкс. Мои поиски уходил на такие аудиобанки нижнего интернета, что 95% звуков seкса там - это действительно звуки из домашнего видео с явно не профессиональной аудиозаписью (были и такие сайты, где звуки "мужик жестко орёт", не мем уже). В общем, после этих сайтов я шёл прямиком в душ отмываться. Чтобы записать звуки, которые были похожи на seкс, но не были бы ими в действительности - работа для специалиста, а уже для профессионала. После долгих поисков нашёл приятный сайт, где профессиональный саунд дизайнер сделал пак очень хороших звуков, которые при этой имеют идеальную грань между реальным и не реальным seксом. (Если кому интересно, то подходящие запросы - это "touch wet body", "body collide" и "mouth saliva".)
Писать диалоги для специальных сцен мы не стали, потому что я не смогу писать текст по типу "Вставь в меня глубоко...", умру от кринжа. И плюс мне всё равно не хватит духу просить актеров это озвучить, а потом ещё слушать. Но, чтобы не оставлять совсем немое кино, я решил поискать так же "охи" и "ахи". С этим на удивление всё оказалось проще. Есть много людей, которые пользуются своим женским голосом и зарабатывают тем, что записывают "охи" и "ахи" специально для таких проектов. А за дополнительный прайс можно даже заказать commission и они даже сексуально озвучат все ваши сценарные фантазии.
Анимации
То, что специальные сцены должны быть анимированы, было понятно, но вот стоит ли анимировать отдельные спрайты? Конечно, чтобы убедиться, что сделать нашу игру реально, надо сначала понять, насколько реально сделать анимацию, и сколько это выйдет по затратам. До этого я анимировал только пиксельные спрайты покадрово, либо элементы интерфейса изменяя размер, положение и угол поворота.
Так как у меня нет навыков After Effect, да и вообще я слабо представляю, как делать анимации, то сначала подумал обратиться к друзьям, прайс не такой большой. Но потом я начал копаться и узнал, что инструмент движка Unity "spine animation" не просто двигает элементы персонажа с разных слоёв, но и может превратить спрайт в набор mesh'ев (треугольных 2д полигонов), которыми можно управлять для анимирования, то есть деформировать картинку так, как я захочу. Это же буквально то, что мне нужно! Плюсы: не надо обучаться After Effect и прочим; я могу сделать это сам без помощи других. Минусы: я не могу вытащить эту анимацию за пределы Unity.
Итак, что нужно, чтобы сделать красивую двухмерную анимацию с помощью spine animation: навыки photoshop (придётся много рисовать, дорисовывать, перерисовывать), готовый спрайт в формате PSD, с желательно отделёнными частями, которые будут анимированы (чем больше работы сделает художник, тем меньше работы будет делать аниматор), много времени на монотонную работу. Надо создать уйму правильно расположенных мэшей, создать "bones" для каждой двигающейся детали и привязать вершины мэшей к "костям", чтобы манипулируя "костями" двигались вершины и тем самым деформировался спрайт.
Я думаю, в After Effect и в приложениях в трёхмерной графикой принцип такой же. Гайд, чему я научился и как лучше делать картинку на мэши, я уж не буду, но просто дам пару советов в воздух: одни вершины мэшей должны двигаться, другие не должны; вершины мэшей лучше располагать так, чтобы границы мэшей шли по недеформируемым линиям; чем больше должен деформироваться участок, тем больше нужно мэшей.
Можно заменить, что глаза и рот просто наложены друг на друга, это потому что они анимированы покадрово, и для каждого кадра сделан свой слой. Вот так вот приходится совмещать "spine animation" и покадровую анимацию.
Потом в аниматоре можно уже крутить и двигать "кости", создавая анимацию. В целом всё круто, но если требуется просто сжимать какой-то элемент (напр. рот), то это те ещё костыли из кучи "костей". Из всего этого следует, что делать двухмерную анимацию не так уж и трудно; на практике это больше муторная задача, чем сложная.
А для будущих проектов можно изучать Live2d cubism или другую программу для анимирования аватаров витуберов. Там есть свои механики физики и сложных анимация. Так что спрайты могут выглядеть почти как трёхмерные.
Рисование фонов
Ещё одна неочевидная деталь в разработке - это фоны. Изначально на уровне идеи это не представлялось чем-то сложным, мол, мы же умеем рисовать картинки, нарисуем что-нибудь и на фон. Теперь я отдаю большое почтение художникам фонов для визуальных новелл, ибо это не легче, чем собрать и выстроить декорации для фильма (там я тоже всегда думал, что не стоит оно того ради двух минут в кадре создавать целую искусственную сцену). Крутые фоновики есть, но их сложно найти, да и берут они немало; для нашей, по сути, первой и небольшой игры попытаемся справиться сами.
Рисовать фоны для новелл - совсем не то же самое, что рисовать спрайты персонажей или предметов. И даже не то же самое, что рисовать обычные фоны. В визуальных новеллах, когда крохотный спрайт занимает 1/5 экрана, то много места остаётся под статичное разглядывание. Много предметов, деталей, работы со светом, полноценная самодостаточная композиция. Да ещё и спрайт персонажа должен достаточно выделяться, но не ощущаться инородным в кадре. Одним словом, работа, по масштабам превосходящая ожидание. И тут нужен либо крутой художник фонов, либо придётся опускаться до нейросетей. А у нас только первая игра и опыта не так много, как хотелось бы.
Я никогда в жизни не рисовала фоны, только в детстве могла нарисовать солнышко, траву и небо раскрасить. Когда поняла, что мне предстоит это нарисовать, то отнеслась к этому сначала с интересом и с надеждой. А вдруг с первого раза выйдет что-то хорошее. Да и голова начала генерировать кучу идей: «А вот еще это нарисовать, это добавить, так оформить, а еще… а еще…». Но на практике пришлось столкнуться с тем, что работа, во-первых, требует в разы больше времени. Потому что фон по сути состоит из мини полноценных артов. Во-вторых, мне нужно понимать, как работает окружение, то есть как падает свет, тень, как какие-либо материалы выглядят, лежат, отражают и прочее-прочее. А еще это скука смертная. Вот такое комбо - скучно, долго и сложно. Было мучительно себя заставить рисовать фоны каждый раз. И думаю все могло дойти до выгорания и к тому, что я ненавижу рисовать. Поэтому решила отказаться от этой части работы в пользу того, чтобы с удовольствием рисовать милых девочек. Но не поймите меня неправильно, рисовать фоны я планирую, но в своем темпе, начиная с чего-то простого и без дедлайнов.Художник
В общем, пришлось приползти на коленях за помощью к нейросетям. Поэтому нужно было начать изучать, как генерировать профессиональные изображения в 2025 году. Решил начать со Stable diffusion, как самый доступный и высокооцениваемый вариант. Уж сейчас-то хорошие сборки придуманы, так что сначала скачал Easy diffusion, - по сложности несложно, но, по какой-то причине, он генерировал размытые и размазанные картины, установка LoRa и использование промтов по типу "beautiful, detailed" не помогло. Не стал долго разбираться и перешёл на Fooocus. (Модели LoRA — это небольшие обученные модели для Stable Diffusion, которые вносят дополнительные изменения в генерацию изображений и используются вместе со стандартными моделями.)
Скачал всё на пк, благо моих 4060 хватает, хотя оперативки пришлось поднять до 32 гб. Fooocus генерирует уже красивые вещи, но какой же он тупой. Я действительно намучился с ним, один фон несколько дней делал, чтобы получить что-то более-менее подходящее. Скачивал разные LoRa, чекпоинты, инструменты фокуса, но всё равно рвался между "да нафига мне здесь окно во всю стену" и "нарисуй ты мне вечерний свет, ну прошу, умоляю". Получилось сделать что-то удобоваримое только с составлением композиции в фотошопе (для сцен попроще) или с рисованием полного лайна и цвета (для сцен посложнее), а потом дать "аишке" дорисовать по прототипу уже.
И даже после мучительной генерации, смешивания вариантов, апскейла и множества фотошопа необходимо блюрить картинку, потому что рука нейросети режет глаз. Так что нейросети пока что не заменяют человека, по крайней мере с такими сложными задачами, как фон для визуальной новеллы. Честное слово, лучше заплатить специалисту, чем самому так долго мучиться и получить "годный" вариант. Но всё-таки один фон мы успели нарисовать сами, и скорее всего нарисуем к релизу другие самые важные фоны, но пока так.
В общем, делать игру - это не только программировать и рисовать. Будьте готовы либо набирать команду специалистов, либо много учиться новым инструментам и другим разноплановым задачам. А пока это ещё не последняя часть, но я уже начинаю догонять актуальный таймлайн. Вот наша игра уже в стиме есть, с вымученными скриншотами и описанием, надеюсь и про это расскажу.
Лучшие комментарии
Как-то больно вы недооценили силу авторского права. Смотрите, чтоб потом вам не прилетело
АИшка кошек не пощадила… :(
Как минимум ради картинок скетчей заходу почитать.
По сути перемещение это и есть улучшенная версия свайпа (то есть позволяет управлять шариком не хуже свайпа), то в отличии от свайпов предотвращает случайные движения и позволяет перед тем как сходить подвигать шарик, чтобы посмотреть как вообще можно им сходить
realavtДолжны одновременно поддерживаться все варианты, ибо разные пользователи играют по-разному — и да, свайп тут не «тупой», а наоборот, самый важный для быстро играющего (даже если он играет мышью на ПК, а не пальцем на мобиле).