Женя|AI-пайплайны и свои игры
635 subscribers
41 photos
72 videos
2 files
53 links
Пишу про применение AI в играх. Делаю игровую студию с нуля. Публикую свой прогресс. Выпустил 3 игры.

Мне можно писать сюда @jack_b3
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Какая я же это боль - настраивать Google Analytics. Это просто удивительно не интуитивно. А часть информации можно найти вообще только в роликах на ютубе, а не в доках 🤯😭 Как-нибудь расскажу об этом подробнее.

Тем временем первый предварительный тест по бутылочке закончился и получился не очень хорошим. CPI больше доллара, retention D1 - 11%, плейтам 5 мин 27 сек.

По стоимости инсталла данные неоднозначные, попали на сезонное удорожание рекламы. Будем тестить другие рекламные сетки, кроме FB, и чуть позже. А вот с retention (1 из 10 только вернулся в игру) и плейтам уже хочется разобраться повнимательнее.

Поскольку в GA необходимо было сначала завести, так называемый custom definitions, чтобы все правильно посчиталось, сказать на каком уровне люди отваливались не получилось.

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

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

Хорошая - плейтайм вырос почти в 2 раза, с 5 мин 27 сек до 9 мин 10 сек. Игроки проходят все наши 12 уровней🤦‍♂️ (т.е. приходят 12 событий level_finished в среднем от игрока). Затем включается генератор рандомных уровней, который видимо не особо интересный. Ретеншн D1 в прошлый раз я посмотрел неправильно, он не 11%, а около 15-20% (как точно посчитать в Firebase Analytics для когорты я не знаю, только по дням). Сейчас поднялся где-то до 20-25%.

Плохая - стоимость по-прежнему больше доллара. Надо думать, что делать с игрой дальше.
👏3
Смотрите какую крутую штуку мы научились считать. Отток по уровням💥 Спасибо, Настя 👋

Видно, что начиная с 7 уровня начинаются вдруг резкие отвалы. Проанализировал уровни, там как раз появляются преграды и нужно нажимать кнопку рестарт. В качестве исправления запланировал сделать проигрыш автоматическим и писать причину (кончилось топливо).

Про то, как считать отток в комменте скину ссылку на статью.

И еще одна обнадеживающая новость. На новых креативах удалось спустить стоимость установки меньше доллара🔥 Все еще много, конечно, но прогресс радует. Попробуем выпустить больше контента, как минимум, чтобы точно покрыть первый день игры.
🔥8
У нас в бутылочке после 12-го уровня включался генератор уровней. Он создавал уровень рандомно из указанного перечня предметов и выставлял между ними также случайное расстояние.

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

Получилось довольно интересно. В этой табличке видно сколько пользователь тратил попыток. Некоторые уровни так и не были пройдены, т.е. игроки отвалились. Это конечно печально.

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

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

Есть свои плюсы от рандомной генерации.

Возникла идея. В качестве бонусных уровней иногда игроку давать рандомный уровень, который он может скипнуть. Так и данные можно собирать и отвалов избежать. (Идею со сложными бонусными уровнями видел в Going Balls)
👍5🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Я всё-таки каждый раз удивляюсь как круто ТикТок может подбирать музыку.

Лайкайте оригинальный пост тоже!❤️

https://vt.tiktok.com/ZSNss4wGa/
🔥63
[Список игр]

Решил вспомнить во что я играл в жанре 3D shooter/beat’em up. Начинаю развивать геймдизайн экспертизу потихоньку. Плюсиком пометил те, которые я прошел. Чет грустно получается, много старья..

Wolfstein 1992 + (с читами:)
Descent 1995 + (я любил 3D а там можно было перемещаться во все 3 направлениях)
Quake 1996
Quake 2 1997 +
MDK 1997 + (первая игра, где я увидел многократный зум у оружия)
Turok 1997
Redneck Rampage 1997
Half-life 1998 +
Unreal 1998 +
SIN 1998 +
Quake 3 Arena 1999
Unreal Tournament 1999 (там был уровень, где можно было засесть сверху на карте и все время хэдшонить по ботам)
Aliens Versus Predator 1999 + (прошел за хищника)
Soldier of Fortune 2000 + (ragdoll у противника)
Deus Ex 2000
Counter-Strike 2000
Evolva 2000
Max Payne 2001 + (бомбический эффект замедления времени)
Red Faction 2001 + (в первый раз можно было крушить ландшафт, хоть и избирательно)
Return to Castle Wolfenstein 2001
Serious Sam 2001 +
GTA Vice City 2002 + (вдоль и поперек)
Project Nomads 2002 (меня идея очень зацепила, все происходило на летающих островах)
Call of Duty 2003
Savage: The Battle for Newerth 2003
The Suffering 2004 +
Far Cry 2004 + (можно по разному пройти миссии: отстрелил канат, который держал лодку в лагере противника и уплыл на ней, вместо того чтобы всех перебить)
Painkiller 2004 (очень прикольно втыкались бревна во врагов)
Doom 3 2004
Half-Life 2 2004
Star Wars: Republic Commando 2005 (прикольно было играть вместе со сквадом, хоть они и боты)
Prey 2006 +
Medal of Honor: Airborne 2007 +
Lost Planet: Extreme Condition 2007
BioShock 2007
Assassin's Creed 2007 + (прыжок веры, конечно, поразил. И возможность бегать где угодно, карабкаться по зданиям на крыши)
Crysis 2007
Team Fortress 2 2007
Far Cry 2 2008 +
Fallout 3 2008
Left 4 Dead 2 2009
Borderlands 2009
PlanetSide 2 2012
CS: GO 2012
GTA V 2013
Payday 2 2013
Just Cause 3 2015
Paint the Town Red 2015 +
SUPERHOT 2016
Titanfall 2 2016
Star Wars Battlefront II 2017
PUBG 2017
Battlefield V 2018
Risk of Rain 2 2019
Devil May Cry 5 2019
Tom Clancy's The Division 2 2019
Deep Rock Galactic 2020
Clone Drone in the Danger Zone 2021 +
Chivalry 2 2021
Gunfire Reborn 2021

Если выбрать что-то одно попробовать на каникулах для людей, которые любят челендж, то это будет Paint the Town Red https://store.steampowered.com/app/337320/Paint_the_Town_Red/

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

13 сентября: один из прототипов показался интересным издателю. Начал работу над его доработкой.

29 сентября: со мной начал работать мой партнер-художник.

6 ноября: сабмит бутылочки в гугл плей.

13 ноября: апрув от гугла и выход в публичный тест. Начали готовить вторую игру к запуску.

18 ноября: закончился первый тест CPI по бутылочке. Результаты значительно хуже средних.

26 ноября: сабмит новой версии бутылочки. Исправили непроходимые уровни.

5 декабря: закончился второй тест CPI по бутылочке. Поднялся ретеншн, плейтайм и удалось снизить CPI. Начали работу над проверкой бизнес метрик (LTV).

14 декабря: сабмит шарика в гугл плей.

19 декабря: апрув от гугла по шарику.

Итого на данный момент 2 игры в гугл плее. Есть шаблон приложения с переключением между экранами и сохранкой. Научился встраивать разные sdk (firebase, meta, adjust). Самый главный sdk - про монетизацию тоже встраиваю (ironsource). Научился настраивать аналитику, смотреть основные показатели, дорабатывать игру так, чтобы эти показатели росли.

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

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

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

От мысли, что буду двигаться дальше, испытываю большое удовлетворение. Кайф!

P.S.: ссылки на игры (откроются только с впн из США)
1) Бутылочка https://play.google.com/store/apps/details?id=com.akpublish.jet.bottle
2) Шарик https://play.google.com/store/apps/details?id=com.akpublish.rock.go.tile
🔥10
Женя|AI-пайплайны и свои игры pinned «Наступает конец года, хочется подбить итоги. Прошло 4 месяца, как я решил делать игровую студию и вот основные этапы. 13 сентября: один из прототипов показался интересным издателю. Начал работу над его доработкой. 29 сентября: со мной начал работать мой…»
Хочу добавить "смертельные зоны" вместо смерти от пола.

Добавил шипы, но мне не очень нравится, как выглядит.

Что кроме шипов может подходить сюда в качестве смертельной зоны? Если ещё будет подходить и для дома и для пляжа то вообще супер, но можно и для каждой локации отдельно что-то сделать.
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
[Update по бутылочке]

В следующем тесте мы готовимся оценить бизнес метрики. Т.е. окупает ли выручка с пользователя (RpD = Revenue per Download) стоимость установки (CPI).

Много что пришлось доделать для этого:
- Добавили 29 новых уровней (и удалили 2 демо уровня). Теперь их в игре 39, а дальше генератор. Этого должно хватить на 25-30 минут геймплея.
- Встроил показ рекламы между уровнями. Использовал Ironsource SDK. Ох уж и муторно с ним было разбираться.
- Встроил первую в жизни игровую покупку 🤑 отключение рекламы (и бонус с двойным топливом в придачу). Вполне просто делается через Unity package In App Purchasing. Только тестирование покупки требует дополнительных манипуляций с Google Play Console.
- Заменили смерть от пола на новый игровой элемент - черная дыра. Спасибо всем, кто писал идеи и в особенности @desumationfan 🫶
- Сделали кнопочки UI покрасивее

Скоро запустим тест 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41
[Программирование]

Пытаюсь проапгрейдить свой шаблон приложения.

Решил еще раз просмотреть базовые принципы и паттерны.

Вот список литературы, которую я читаю на этот счет

1. C# style guide: Write cleaner code that scales и
- конкретный пример
2. Level up your programming with game programming patterns
- репо с примерами
3. Game Programming Patterns

Из SOLID я честно говоря использую только S и D (D и то коряво, без всяких там модных Zenject или VContainer, а через поиск объектов в Awake). Остальное неактуально, так как объектов в моих играх пока очень мало.

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

Observer
Потоки событий к UI, аналитике, медиации и магазину.

MVC
Все действия кнопок дергают соответствующие контроллеры.

StateMachine
Для переключения экранов интерфейса в уровне (победил, проиграл, в игре, и т.п.).

Singleton
для внешних менеджеров аналитики, медиации и т.п.

А что используете у себя вы?
🔥5🤔1
[Пришли результаты теста по шарику]

Очень много чего интересного!

CPI весьма неплох - меньше 0.5$ Причем это показал ролик, который я нарезал для тиктока! Я начинающий маркетолог😎

Плейтайм = 9 минут, ретеншн D1 = 23%. В целом тоже неплохо, но до целевых не дотягивают.

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

Также я посчитал кривую сложности (кол-во проигрышей)/(кол-во стартов). И она очень неравномерная. А принято, чтобы был один сложный уровень и потом череда простых, чтобы игрок успел отдохнуть и получить удовольствие.

Итого к 6-му уровню мы теряем ТРЕТЬ игроков🫣

Как все поправим и добавим рекламу + noads, запустим новый тест.

P.S.: Как же круто видеть статистику прохождения и строить гипотезы, опираясь на нее. Мне потребовалось всего 3 события, чтобы посчитать отток и сложность - level_start, level_finished, level_failed
👍6🔥52
This media is not supported in your browser
VIEW IN TELEGRAM
[Jetpack joyride краткий разбор]

Решил найти как была сделана игрушка Jetpack joyride. С нее мы вдохновились сделать полет на пене в бутылочке.

Вот видео в котором все подробно рассказано.

Основные моменты.

Первый прототип сделали из квадратиков за неделю. Следующий уже полноценный за месяц.

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

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

После полировки геймплея также много экспериментировали с магазином, ежедневными миссиями и системой левелапов.

В итоге больше 200 млн скачиваний
🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
[Jet Bottle. Промежуточные результаты]

После наших изменений (новые уровни, чёрная дыра, убрали смерть от пола) - ретеншн вырос до 28%. Количество сессий стало больше, но они стали короче. В итоге playtime остался тот же 9 мин.

К 10 уровню уходит половина игроков. Людям явно становится скучно.

Что посоветуете добавить в основную механику, чтобы стало интереснее?
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Добавил монетки. По-моему очень прикольно.

Теперь надо добавить хоть что-то, на что их можно потратить. Самое простое мне сейчас - это сделать бустер с двойным объемом топлива.

Можно было бы это закостылять, но поскольку магазин, скины, бустеры это обязательная монетизационная часть игр, решил разобраться поглубже. Взял за основу код системы инвентаря из этой демки от Unity. Очень понятно и много комментариев по коду - рекомендую.
🔥9
[Завершение бутылочки (почти)]

Обновление с монетками не зашло. Ретеншн D1 так и остался ниже 30%, а плейтайм даже упал с 9 мин 40 сек до 7 минут.

Так же мы протестили монетизацию. Если интерстишлы показываются в среднем через 30 сек, то 10 минут геймплея приносит около 20 центов.

С учетом того, что закупка была больше 50 центов, требуется 25 минут чтобы отбить затраты на рекламу.

Про все эти показатели (30 минут геймплея, ретеншн 35%) я и раньше слышал. Все топовые издатели про них пишут. Но прочувствовать это на своем опыте вызывают совсем другие ощущения.

Есть, конечно, разочарование от того, что результат не достигнут. С другой стороны я чувствую сильную мотивацию сменить тактику и искать геймплей, где CPI = 10 центов или ретеншн d1 = 50%.

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

P.S.: Решили с издателем сделать последнюю попытку - выложить бутылочку как instant game.
👍62🔥1😢1
Апдейт, что сейчас происходит

Бутылочку закрыли. Мне удалось сжать билд с 45 мегабайт до 15 - это требование чтобы загрузить в Instant games. Но мы решили не выкладывать, так как там поменялись правила и больше нельзя показывать интерстишл рекламу. А никакой другой монетизации в игре нет. Как кейс в портфолио, мне он все равно нравится.

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

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

По программированию. Давно натыкался на подход Game architecture with Scriptable objects и вот решил погрузиться. И теперь я в восторге, сколько разных проблем он решает. Кому интересно, читайте вот этот гайд от Юнити и вот этот гитхаб. Основное преимущество - геймдизайнеры могут создавать куски геймплея и игровых систем не привлекая программиста. Просто 🔥 Напишите в комментах, если кто пользуется. Может есть подводные камни.
5🔥5👍1
С прошлой недели начал работать с геймдизайнером. Катя привет 👋

Как же это круто когда есть человек, который думает про ниши, тренды, а ещё и про геймплей.

Я могу полностью заниматься тем, что нравится мне - перебирать какими паттернами программирования реализовать игровые механики 😂

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

Мы определились с нишей для следующей игры - это будут гоночки с дрифтом в вертикальном формате. Что-то в таком стиле по графике https://play.google.com/store/apps/details?id=com.nostel.taxi.run&hl=ru&gl=US

В целом кажется что жанр очень большой и живучий. Можно будет поитерировать несколько раз вокруг одного мвп.
👍8🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Купил в Unity Store ассет за 5 долларов с аркадной физикой для машинок.

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

https://assetstore.unity.com/packages/tools/physics/arcade-vehicle-physics-193251
🔥6🦄2
В этот раз делюсь ссылкой на бесплатный ассет с Unity store для горизонтального скролла-карусели, который я прикрутил себе. Хороший пакет, рекомендую.

На втором видео другие режимы из коробки.

https://assetstore.unity.com/packages/tools/gui/simple-scroll-snap-140884
🔥9