Newbilius

Newbilius

Пикабушник
Дата рождения: 2 апреля
5920 рейтинг 344 подписчика 18 подписок 86 постов 38 в горячем
Награды:
10 лет на Пикабу
6

Как «ИИ» (не)помогает мне разрабатывать игру Creepy Support


Уже год я неторопливо разрабатывают свою небольшую инди-игру Creepy Support, о которой уже делал посты на Пикабу, о технической части например. И недавно меня в очередной раз спросили, «а ты не пробовал использовать «ИИ» для ускорения разработки»? Я начал писать человеку развёрнутый ответ, и в процессе понял, что текст разрастается до небольшого поста...

Что за игра и какой мне нужен контент

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

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

Каждая история — это возможность задать 10-20 вопросов, и по мере того, как игрок их задаёт — открываются новые вопросы. Но количество самих вопросов за сеанс лимитировано! Ну т.е. игрок не может просто протыкать всё подряд, приходится выбирать, о чём спросить необходимо, а какие детали можно и упустить. По результатам в каждой истории выходим на одну из примерно 3-6 концовок. Минимум 3 есть всегда, но порой удаётся разгуляться от души)

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

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

Программирование

Игра пишется на MonoGame (.NET) + UI библиотеке Myra. И так уж получилось, что я по профессии — программист, и мне просто-напросто в кайф писать код. Плюс у меня уже был опыт написания мелких бесплатных игрушек и даже выкладывания их в опенсорс, так что деятельность не совсем незнакомая. По итогу я пробовал «вайбкодить» для игры полтора раза.

Успешный опыт: написания для Myra компонента отображения анимированных текстур. Написал подробный промт со ссылкой на исходники библиотеки и описаним того, какие параметры должны быть в компоненте, что он должен делать — и получил на выход рабочий код буквально с трёх запросов. Тот случай, когда я примерно понимаю, как решить задачу, но и могу оценить, что работа может затянуться на час. А тут всё было решено буквально за 5-7 минут. Если вам интересно — описал тут этот опыт, включая дословное цитирование тех самых запросов в ChatGPT.

Неудачный опыт: попытка прикрутить Яндексовскую AppMetrica к десктопному приложению. Сдался минут через 15-20 и отложил на потом, т.к. до релиза задачка третьестепенная. И кстати, оффтоп, но я был просто поражён, насколько лучше вопрос с метриками и аналитикой решён в веб- и мобильной разработке по сравнению с десктопом. Для десктопа все сервисы или платные, или с таким минимумом фич, что польза от них становится сомнительна.

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

Тексты историй

Основная суть, на которой держится игра. Тут я всё пишу сам по той же причине, что и код: я хотя бы в каком то объёме умею это и мне этот процесс в кайф! Так зачем мне делегировать машине то, что я и сам умею и что меня радует? Надо мной нет издателя или другой необходимости бежать к какому-то конкретному дедлайну. Поэтому 100% текста в игре написано самостоятельно.

Впрочем, частичное применение для LLM я таки нашёл: бывает так, что я уже дописал историю целиком со всеми концовками, но кажется, что «чего-то не хватает». В этом случае я скидываю в сетку синопсис истории и прошу накидать мне идей, какие ещё вопросы мог бы задать игрок? По итогу оказывается, что из примерно 10 нейросетевых идей 5 я уже реализовал, 4 — какая-то дичь или просто не подходит конкретно мне, а одна оставшаяся «звучит прикольно, но в сыром виде использовать нельзя, хотя если использовать в качестве трамплина для других идей...» В общем, LLM-ка тут мне заменяет утёнка, но текст из неё в игру не идёт ни в каком виде, только идеи.

Музыка и звук

Музыку для игры частично пишет мой брат, композитор и дирижёр, частично — нахожу в сервисах типа Zapslat, выбирая тот контент, который можно использовать в игре легально и бесплатно, лишь указав автора в титрах. Со звуками аналогично. Мне просто нет причин упражняться с промтами для звуков и музыки, если нужный контент уже создан кем-то или будет создан лично для меня ;-)

Озвучка

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

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

Перевод текста на английский

Вот тут скорее всего придётся LLM-ки активно юзать, потому что по бюджету перевод такого объёма живым человеком я не потяну. Для демки перевод вообще был сделан через Google Tranlsate, лол... Кстати, вы знали, что он умеет принимать табличные файлы, например из того же Excel?) Я вот раньше не знал.

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

Графика

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

Графика: интерфейс

Тут моих навыков в графическом редакторе пока хватило: референсом стал стиль Windows 3.X, воспроизвести его было несложно даже руками с моим радиусом кривизны.

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

Графика: ключевой арт, он же заставочный экран

Генерация нейросетками. 50+ попыток, куча референсов, разных промтов, немного Фотошопа Gimp’а — и вот результат, который вы уже видели. Изначально я планировал его использовать только как референс для живого художника, но за время создания и использования его в разных материалах настолько прикипел к этой картинке, что перерисовывать уже просто жалко. А вы что думаете? Бросилась ли вам в «нейронность» картинки ДО того, как вы узнали, что это нейронка?

Графика: лица клиентов

Здесь я тоже без зазрения совести использовал нейросети: на экране картинки занимают примерно 50x50 пикселей:

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

Графика: присылаемые игровыми клиентами фотографии и скриншоты

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

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

К тому же, иногда неидеальность генерации иногда даже работает на атмосферу: вот например здесь надпись ДОЛЖНА по сюжету быть кривой, и мне даже не нужно было что-то ещё специально дописывать для её генерации :D

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

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

Трейлер

Единственное здесь применении «ИИ» — генерация картинки с лиминальным офисом, на фоне которой я читаю текст. Но я практически уверен, что об этом никто из смотревших трейлер не догадался ;-)

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

Маркетинг и продвижение игры

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

Вместо итога

Мне кажется, что ситуации с ненавистью к «ИИ» как инструменту для большинства сродни отторжению к «компьютерной графике» в кино. Люди говорят, что «не любят компьютерную графику, она всегда хуже реальных декораций и аниматронных кукол», но подразумевают, подчас неосознанно, что они не любят ПЛОХУЮ компьютерную графику. Когда же она сделана хорошо, и ты не можешь провести явную грань и угадать, что в кадре реально, а что нет — то и отторжения она не вызывает.

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

xxx: У плохого мастера всегда инструмент виновал
xxx: *виноват
xxx: Долбаная клавиатура!

Показать полностью 7 1
8

Англоязычный трейлер для своей инди-игры своими руками, без ИИ и СМС

Не смотря на то, что у меня есть базовый разговорный английский и опыт поездок за границу, полноценно этот язык я никогда не учил. Школа №1 города Краснотурьинска, где в 11 классе мы в очередной раз повторяли программу 3 (или 5?) класса не в счёт. Поэтому для создания трейлера мне понадобилась помощь. И я её получил от...

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

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

Потом попросил Машу отредактировать его, пару спорных моментов она нашла и пофиксила.

Далее пошли съёмки и запись закадра, и это было весело 😃 Сложность была в том, чтоб произнести фразу (в порядке снижения важности)

  • правильно (не потеряв вспомогательные слова, окончания и т.п.)

  • чётко, разборчиво, с правильными ударениями

  • эмоционально, выделяя ключевые моменты

  • с не очень жутким акцентом

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

В итоге после примерно получаса дублей у меня получился минутный трейлер. Естественно для него нужно было перезаписать и игровой видеоряд с английским языком, но это было уже достаточно простым делом. Теперь трейлер залит на страничку демо-версии игры в Steam и возможно поможет в продвижении игры на ближайшем Steam Scream Fest'е, а также на Youtube и в группу в телеграме.

Показать полностью
15

Старые игры в новой оболочке (Old-Hard №104, видо)

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

Это же видео на boosty (доступно бесплатно):
https://boosty.to/old_hard/posts/77fe85f7-48d6-49a3-9631-91e...

Игры в выпуске: Blake Stone, Chasm: The Rift, Quake, Killing Time: Resurrected, FastDoom, Diablo, Duke Nukem 2 и... кое-что ещё ;-)

Показать полностью
19

Creepy Support - первый трейлер

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

Для английской версии трейлера просто добавил английские субтитры.

Показать полностью
20

AdLib Music Synthesizer Card - звуковая карта из 1987 года (Old-Hard №103)

AdLib Music Synthesizer Card - одна из важнейших вех в истории компьютерного звука, ведь именно она заложила столь привычное нам "мидишное" (хотя правильнее, наверное, "OPL-ное") звучание классических игр для MS-DOS. И вот наконец-то эта карта появилась в моей коллекции! Так что давайте вместе посмотрим на что она способна в новом выпуске Old-Hard 😉

Это же видео на Boosty (доступно без оплаты).

21

Клавиатурный смартфон Sony Ericsson Vivaz Pro U8i из 2009 года (Old-Hard №102, видео)

В этом выпуске мы рассмотрим, на что способен смартфон Sony Ericsson Vivaz Pro U8i из 2009 года, на базе Symbian 9.4 и с полноценной qwerty-клавиатурой!

Посмотреть можно и на boosty (бесплатно).

22

Creepy Support: танец на граблях при создании нелинейной текстовой игры

В программирование меня изначально привело желание делать игры, но как-то так получилось, что за 16 лет карьеры я успел позанимался чем угодно, но не ими. Десктоп, фуллстек-разработка, бэкенд, мобильные приложения, в создания которых я влюбился с головой... Но желание делать игры не пропадало, а просто ждало где-то в сторонке — и спустя столько лет таки дождалось своего часа! Демоверсия уже загружена в Steam, и меня прямо таки распирает от желания рассказать… нет, не о самой игре, а о набитых шишках и о том, как меняется игровой процесс после столкновения с первыми плейтестами.

Вдохновение

Всё началось с очередного фестиваля демоверсий в Steam, где я встретил игру Home Safety Hotline. В ней вы берёте на себя роль консультанта на горячей линии, куда обращаются с любыми проблемами в доме: от нашествия муравьев и искрящей проводки до призраков и слизняков-людоедов. И естественно, в разборе всяких паранормальных обращений и был главный смак происходящего.

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

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

Идея Creepy Support

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

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

В плане интерфейса — никаких текстовых команд и ручного ввода текста, только кнопочки как в текстовых квестах из «Космических Рейнджеров». Идеальная игра для разработчика, который так и не смог научиться рисовать, ведь для такой игры 95% работы — это код и текст тех самых диалогов. Выглядит посильно. Погнали!

Как писать нелинейную вариативную историю

В простейшем варианте нелинейная истории сводится к коллекции пар «вопрос-ответ», а также простейшим условиям появления или исчезновения тех или иных вопросов в зависимости от уже выбранных фраз. Звучит как диалог. Диалоги существуют в играх многие десятилетия, значит удобные инструменты для этой задачки уже наверняка кто-то разработал. Верно?)

В итоге удобного лично для меня решения я не нашёл. Редактор для Twine показался не очень удобным и наглядным, Articy:draft - слишком монструозным. Поэтому в итоге моим редактором историй стал… Obsidian.

Окей, не Obsidian в чистом виде, а его режим Canvas, ручное описание параметров каждого вопроса в ячейках и собственная консолька для конвертирования XML-файла в JSON для моих нужд. Выглядит всё ещё не слишком изящно, но приноровиться реально. Я уже написал в таком формате 8 историй, а также несколько раз возвращался к старым историям после долгого перерыва, и дорабатывать их было не слишком сложно. Окей, с редактором разобрались, время решать, как будем писать остальной код игры.

Техническая сторона

Во вступлении к этому посту я немного слукавил: да, коммерческой разработкой игр я никогда не занимался, но попытки писать собственные игрушки у меня были. И мой единственный полноценный релиз — это пересоздание классических «Цветных Линий» от Gamos на Unity, результат этой работы я выложил в Google Play, а исходники — в опенсорс.

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

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

MonoGame

Почему MonoGame? Потому что, с одной стороны, на нём написан ряд успешных коммерческих игр, а с другой — у меня есть немало лет опыт работы с C#. Я писал на нём и бэкенд, и консольки, и даже мобильные приложения на Xamarin. И при этом я хотел иметь хотя бы гипотетическую возможность позже собрать свой проект не только для Windows, что Monogame тоже покрывает — среди платформ есть и Linux, и Mac, и игровые консоли.

Раз уже .NET – почему не Unity? Потому что небольшой опыт с Unity у меня тоже был, и для моей задачки этот движок кажется избыточен, если не сказать «монструозен». Monogame же предоставляет даже скорее не движок, а фрейворк для разработки игры, приятно-минималистичный. К тому же, базовая UI-библиотека в Unity несколько лет назад была, с моей точки зрения, несколько глючновата и не очень удобна для использования, если в игре экраны сложнее меню настроек.

Почему не Godot, где тоже есть поддержка C#? По отзывам моих знакомых разработчиков — там C# язык «второго сорта», и писать под этот движок гораздо приятнее на GDScript. Но у меня не было цели «стать профессиональным разработчиком игры на Godot», мне хотелось сосредоточиться на разработке игры, а значит изучать в процессе минимум нового и переиспользовать максимум уже имеющихся скиллов. Впрочем, возможно замечание про «второй сорт» уже неактуально, и если у вас есть такой опыт — пожалуйста, напишите в комментариях, так ли это сейчас?

Ну и напоследок: большую часть последних лет на работе я пишу код на Kotlin под Android, но мне очень хотелось, чтоб процесс написания кода для игры был максимально не похож на написание кода на работе.

UI библиотека Myra

Я перепробовал кучу разных UI-библиотек для Monogame, и в итоге остановился на Myra. Вот примеры скинов из комплекта библиотеки:

Эта библиотека очень проста в использовании, содержит реально все необходимые компоненты, легко кастомизируется и продолжает развиваться. Последнее проверено [на собственном опыте](https://github.com/rds1983/Myra/pulls?q=is%3Apr%20is%3Amerge...), несколько фиксов и микрофич автор от меня принял, за что я ему крайне благодарен. Ну и финальный аккорд — у неё под капотом отличный рендер текста! Когда я перебирал разные библиотеки, то сильно удивился, что банальный скейлинг шрифтов без косяков умеет далеко не каждая либа подобного типа.

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

Правки концепта после первых плейтестов

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

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

Выкинул идею с премированием и депремированием игрока по итогам каждой истории. С одной стороны это позволяло создавать довольно специфичную атмосферу и хохмы вида «вы всех спасли, но слишком долго провисели на связе? Получите минус к премии, нас интересует KPI, а не спасённые жизни». С другой стороны — опять же, это вызывало кучу вопрос как сюжетно, так и геймплейно.

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

Рассказ про итоги своего выбора. Изначальной идеей было показывать результат решения игроку сразу, в отдельном канале под рабочим названием «Будущебот». Игрок принял финальное решение в диалоге — особая аномальная технология показала ему, к чему решение приведёт в будущем. Опять же, создавало большие дыры в логике и сеттинге, поэтому теперь формат такой:

  • игрок разбирает несколько обращений, после чего заканчивает игровой день

  • смотрит анимацию «прошло X дней»

  • получает отчёт по всем выполненным делам из предыдущего уровня

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

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

Лимиты времени. С одной стороны — я просто ТЕРПЕТЬ НЕ МОГУ, когда в играх на меня давит таймер. С другой — хотелось бы добавить игроку некоторого напряжения и необходимости обдумывать каждый шаг. В итоге я сделал лимит на число задаваемых вопросов. Т.е., в истории максимум, скажем, 20 вопросов, но задать можно успеть 14, и волей-неволей придётся каждый раз задумываться — «а хочу ли я задать тот вопрос или этот? Где потенциально полезная информация, а где оффтопик?» Причём в изначальном варианте я прямо писал числом, сколько вопросов осталось, теперь же показываю прогресс-бар, убывающий после каждого заданного вопроса.

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

  1. рассказать игроку про этот мир, погружать в сеттинг

  2. давать намёки на то, какой выбор стоит сделать в какой ситуации

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

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

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

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

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

О написании историй

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

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

Но не смотря на некоторые сложности, тексты историй я пишу от и до сам, без нейросетей, хотя и последние можно неплохо использовать в качестве костыля к воображению. Работает это так: когда я уже написал целиком историю, но мне кажется, что тут ещё чего-то не хватает — я скармливаю сетке краткое описание сюжета и прошу её накидать ещё идей для вопросов или концовок. 99.9(9)% такого вывода отправляется в мусорную корзину, но оставшаяся доля процента может оказаться годной для дальнейшего размышления.

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

Контент: не текстом единым

Естественно, даже в такой минималистичной игре нужен не только текст, но и графика, музыка и звуки. И если скин для интерфейса я сделал сам с оглядкой на интерфейс Windows 3.1, остальное пришлось добывать другим путём.

Иконки. Мне оооооочень хотелось бы использовать в игре иконки из Windows 95…

...но авторские права никто не отменял, поэтому я пользовался сайтами с иконками, позволяющими бесплатное коммерческое использование, например Flaticon, FreeIcons или Iconfinder. Но не все иконки там доступны для бесплатного коммерческого использования, так что пришлось внимательно проверять лицензию на каждую картинку. Для своего интерфейса я не нашёл готовых классных иконок в пиксельарт-стиле, поэтому подбирал иконки в высоком разрешении, уменьшал их до разрешения 64x64 с помощью neighbors algorithm, после чего доводил до ума вручную в графическом редакторе.

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

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

Ключевой арт игры, аватарки игровых «клиентов» и фотографии. А вот тут уже не обошлось без нейросетей, благо часть из них (например Kandinsky и ChatGPT) вполне позволяют коммерческие использование результатов их труда. Да, часть фотографий в игре — это реально снятые мною пейзажи, объекты или коллажи, но иллюстраций от «ИИ» в ней тоже немало. Для той же заставочной картинки в начале поста мне понадобилось 50+ итераций и немного фотошопа GIMP’а, но итоговый результат вышел довольно приличным, это вот практически то, что я хотел.

Маркетинг

Перед работой над игрой я хорошенько подготовился: прослушал сотни эпизодов подкастов «Как делают игры», «Пилим трём», «Как питчить игры» и т. п., несколько книжек об авторах хитовых игр, а также книгу о маркетинге игр от Сергея Галёнкина https://galyonkin.com/book/. Поэтому я решил совершить только 90% типичных ошибок в продвижении игры. Ну серьёзно, я пока что определённо не готов искать маркетинговую команду, тратить сотни часов на прокачку аккаунта в тредах реддита или платить за съёмку профессионального трейлера. Тем не менее, некоторые вещи я сделал более-менее верно:

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

  • перед началом продвижением игры — создал страницу в Steam, чтоб потенциальные игроки могли уже на этом этапе добавлять её в вишлист

  • страницу в Steam оформил по всем канонам — чётко обозначил жанр, сеттинг и настрой в текстах, первые же скриншоты явно дают понятие о геймплее и содержании игры

  • написал этот пост, так что самое время оставить ссылку на демоверсию игры в Steam ;-)

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

Показать полностью 12
12

Восемь отличных демоверсий (Old-Hard SX)

Симулятор некроманта, ретро-шутеры, советское крипи и Ктулкху знает, что ещё - в новом выпуске Old-Hard SX ;-)

Посмотреть также можно на boosty, без какой либо подписки.

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

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества