Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Вы владелец небоскреба! Стройте этажи, управляйте магазинами и работниками!

Небоскреб Мечты

Казуальные, Симуляторы, 2D

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
14
TehnoMagEG
TehnoMagEG
Лига Разработчиков Видеоигр
Серия Relict Engine

Relict Engine: Итоги 2025⁠⁠

12 дней назад

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

Что было сделано за этот год:

  • Разработана архитектура и модель памяти движка.
    Создана фабрика всех движковых объектов, Сборщик мусора, отвечающий за автоматическое удаление и освобождение памяти от ненужных сущностей. И центральное хранилище объектов. Продуманы системы подгрузки подсистем, встроенных модулей и взаимодействие с проектами высокого уровня (читай играми).

  • Создана скрипт подсистема на основе языка Lua и внедрена в виде подключаемой подсистемы.

    Подробнее: Relict Engine: Скриптовая подсистема + DevLog 20250405

  • Разработана утилита для импорта внешних форматов в формат движка

    Подробнее: Relict Engine: RatTools. Меши. Статичные Меши

  • Разработан формат хранения статичной геометрической сетки (статичный меш)

    Подробнее: Relict Engine: Формат Статичного меша

  • Разработана система работы с асинхронными задачами

    Подробнее: Relict Engine: ThreadManager и DevLog 20250822

  • Разработана структура сцен
    Подробнее: Relict Engine: Мир и DevLog 20250928

  • Разработана система вывода графики и работа с ней

    Подробнее: Relict Engine: DevLog 20251120

    Иными словами за этот год я смог сделать некий полнофункциональный скелет. И теперь, на этот скелет следует наращивать мяско.


Что планируется на 2026

Начало 2026 года я планирую посвятить работе над ошибками. Например, очень хочется организовать очередь создания объектов, дабы была возможность управлять порядком их создания (сейчас некоторые объекты, например RenderObject, создают свои дефолтные экземпляры вне main рутины, а ДО нее, что не есть очень хорошо, и может привести к проблемам в какой-то момент).

Так-же будет нужно сделать шейдерный pbr и доделать для них внятную систему материалов; добавить ассет текстур; добавить различные юниты для работы со светом, системами частиц, итд. Поэтому, остальной 2026 год будет посвящен работе "в ширь". Успею ли сделать что-то еще зависит от множества неподконтрольных мне факторов, поэтому загадывать по максимуму не буду.

Еще хочу напомнить, что у движка есть дорожная карта, ознакомится с которой можно вот тут: https://yougile.com/board/8o3quozyj1in , и где видно сколько было сделано. И сколько еще предстоит сделать.


И на этом год 2025 считаю закрытым.

И в заключении, от себя и от лица команды Delta-Proxima Team хотим заранее поздравить пользователей Пикабу, и отдельно Лигу разработчиков Видеоигр с новым, 2026м годом. Желаем, чтобы ваши проекты покоряли вершины чартов, а каждый новый релиз становился событием в мире игровой индустрии.
Пусть код пишется легко, баги находятся быстро, а вдохновение никогда не покидает вас!
А на кухне никогда не заканчиваются кофе и печеньки ;)

С уважением и наилучшими пожеланиями,
Delta-Proxima Team

Показать полностью
[моё] Разработка Gamedev Инди Игровой движок Новый Год
3
119
sergiolamoz
sergiolamoz
Лига Разработчиков Видеоигр

Текстовый бот-бродилка в телеграме [часть №9]⁠⁠

12 дней назад

Всем привет! Давно не виделись!

© картинка самосбор

© картинка самосбор

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

Поиграться можно вот тут: Roomer_bot
Группа по игре находится тут: strangebunkers

* в группе я чаще всего на связи, потому с вопросами и предложениями, если нужен шустрый ответ, лучше - туда

А теперь - что же у нас изменилось?
Много чего :

  • увеличено количество комнат 81 -> 82

  • переработана игровая механика в части комнат

  • улучшена визуальная составляющая для некоторых комнат

  • исправлены недочеты и множественные ошибки

  • улучшены существующие комнаты и их логика/награды

  • добавили новый клевый сет с "живым" посохом (порой его хочется заткнуть)

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

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

  • провели рефакторинг автобоя. Ввели ограничение в 50 ходов.

  • добавили новую локацию - Египет, с очень опасными монстрами. Посещение этой локации больно ударит по вашим карманам, да еще и эта жара ... В общем, постарайтесь не умереть )

  • появилось вселенское зло, которое терроризирует игроков, если его выпустить(М.А.Р.И.Я. - Модулированный Аварийный Режим Ироничного Ядра)

  • добавили сразу несколько новых классов

  • добавили наград при прохождении лабиринта

  • появилась комната где можно сохранить свой прогресс профессии и в случае чего - не начинать сначала, а продолжить качать профу с того, на чем остановились

  • перевели большую часть старых боевых комнат на новую логику

Немного по технической части:

  • провели глобальный рефакторинг кода, сократили и упростили кодовую базу, сохранив функциональность

  • ввели продвинутую обработку и логирование ошибок

  • обработали и исправили сетевые ошибки, мешающие игрокам

  • нас уже более 3100+ человек


    В ближайшем будущем нас ждут: новые монстры для newbie & high-level игроков, новые профессии, новые сеты, новая локация с надоедливыми мобами(🏞), новые квесты и многое другое


    Увидимся в одном из бункеров! :)

Показать полностью 1
[моё] Gamedev Разработка Игры Telegram Telegram (ссылка) Telegram бот Картинка с текстом Текстовые игры Ретро-игры
8
7
PSKandid
PSKandid
Лига Разработчиков Видеоигр

Свадьба, Бергман, RetroGPT и два Мармеладова⁠⁠

13 дней назад

Трудимся над нашей новой интерактивной драмой.

После нескольких лет работы в стол наша новая игра стала обретать осязаемые формы, и захотелось чем-то поделиться. Это не настоящий анонс, скорее разминка застоявшихся социальных мышц.

Об игре

1. Жанр — визуальная новелла с элементами интерактивного кино

2. В основе драматическая история о свадьбе

3. Важная тема — проблемы современного ИИ (эх, не устареть бы к релизу!)

4. Действие, как и в предыдущих наших играх, развернётся в мире Прогресс-программы

5. Текстовый движок — Ink

6. Визуальный движок — Unity6. По платформам изначально ориентируемся на Steam, далее как пойдёт

Страницы Steam и трейлера пока нет. Готовим их к полноценному анонсу в 2026-м. Тогда же раскроем название и подробности по сюжету.

И немного скринов из рабочей версий:

Об источниках вдохновения

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

1. Свадьба — «Свадьба» Лунгина, «Торжество» Винтерберга и немного всем известного «Горько».

2. Бергман — «Сцены из супружеской жизни» Ингмара Бергмана (не так давно выходил хороший сериал-ремейк с Оскаром Айзеком).

3. RetroGPT — фильм «Она» с Хоакином Фениксом, замешанный с ретрофутуризмом из мира художника Саймона Сталенхага.

4. Мармеладов 1 — визионер и дизайнер Вадик Мармеладов — создатель сервиса «подписки на жизнь» Lot 2046.

5. Мармеладов 2 — спившийся титулярный советник Семён Захарович Мармеладов из «Преступления и Наказания» — представитель русской классической литературы.

О нас

Мы — это студия Provodnik Games. Сейчас в команде 3 человека: сценарист-программист (я), художник и аниматор.

К настоящему моменту на нашему счету 2 новеллы: Вагон-Вагон и Серость. Вторая была отмечена несколькими наградами в индустрии и добралась до Steam и консолей.

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

Текущие дела

На данный момент у нас готов черновой сценарий и собран 1 эпизод c финальной графикой на Unity. Прохождение текстовой версии занимает около 4-5 часов.

Сейчас все силы направлены на визуальное и звуковое оформление игры. Оставшийся объём работ велик (боюсь, не один год), но мы не унываем и терпеливо жуём слона по кусочкам.

В заключение ещё пара картинок из повседневной работы нашего художника:

Подбор референсов для главной героини

Подбор референсов для главной героини

Подбор референсов для отеля в горах

Подбор референсов для отеля в горах

Вот такие дела.

Приходите в наши соцсети — VK и Телеграм, нам будет очень приятно. Там потихонечку будем раскрывать другие подробности.

Показать полностью 7
[моё] Разработка Gamedev Визуальная новелла Свадьба Искусственный интеллект Преступление и наказание (Достоевский) Инди Unity Гифка Длиннопост
3
8
KVgames
Лига Геймеров

Многокамерный режим⁠⁠

13 дней назад


Продолжается путь по созданию игры про мехов. Чтобы она не выглядела хотя бы на первый взгляд так простенько, было принято решение добавить несколько камер. Ну то есть вид сверху, сзади подальше, сзади поближе, кокпит.
На это есть несколько причин: ну во первых должно быть круто, во вторых - если в каком-то из режимов будет проседать fps , то можно переключить на другой. А так же, чтобы мех не смотрелся просто картинкой в кадре, я добавил камерам сглаживание резкости слежения (как сложно звучит, offset кароче ) Я и не подозревал в какой геморрой это выльется: то ли дрожат ноги не успевая за торсом, то ли камера не успевает за торсом, то ли фиг пойми. Если убрать эту компенсацию момента рывка камеры - всё норм двигается, но очень скучно - мех как нарисованный, а у меня-то он настоящий )) Вот вопрос: переход на cinemashine даст профит? Пропадёт тряска, или только опять зря всё переделаю?
Да, Юнити я освоил недавно (и это было не так то и просто). Если найдутся люди, готовые помочь, подсказать - милости прошу.
Всем отозвавшимся искреннее спасибо.
Да, игру можно будет запускать на смартфоне, пк. Такие дела.

Любо вы можете протестить игру в открытом тесте на Гугл Плей. Вылетает / не вылетает, тормозит / не тормозит и так далее.

https://play.google.com/store/apps/details?id=com.KV.MechWar...

Показать полностью 1
[моё] Unity Gamedev Программирование Баг Battletech Меха Mechwarrior Игры Ретро-игры Инди игра Мобильные игры Видео RUTUBE Короткие видео
9
46
CyberCook
Игровые скидки и раздачи

Раздача хоррора HOTEL GREENWOOD на Indiegala⁠⁠

13 дней назад

HOTEL GREENWOOD

ЗАБРАТЬ

Сюжет:

После смерти Эшли Андерсон, работавшей в сфере обслуживания в отеле «Гринвуд», происходят необъяснимые события. Ночью 6 октября 2012 года, когда Эшли пришла убирать номер 352, на неё напали постояльцы. Несмотря на все меры, девушка погибает. После этого невероятного убийства нападавшие признались, что использовали Эшли для своего ритуала в номере. Ровно через год после инцидента постояльцы номера 352, Т. Х. и его семья, были найдены мёртвыми в своём номере. Следователи не смогли найти никаких улик, указывающих на причину убийства семьи. Не сумев прояснить этот загадочный инцидент, власти решили закрыть отель. Но, несмотря на то, что отель закрыт, говорят, что каждый год 6 октября внутри загорается свет и слышны странные звуки. Чтобы разобраться в ситуации, власти решили, что молодой детектив Аарон Паркер — главный кандидат на эту должность. Так ли правдивы эти заявления? Реальны ли звуки, доносящиеся из отеля? Вам, как детективу, будет непросто раскрыть паранормальные события в этом проклятом отеле.

Окружающая среда:

  • Действие игры разворачивается в отеле, расположенном в лесистой местности вдали от города, в Гринвуде, Англия. Вы будете одни в холодных и величественных коридорах отеля, но не волнуйтесь, за вами будет наблюдать товарищ по команде. Кто знает, может быть, за вами наблюдают и другие?

Сверхъестественные существа:

  • Дух женщины, потерявшей жизнь после ритуала, проведённого в отеле, и демоны, которые были её союзниками, могут появиться перед вами в любое время в отеле. Обязательно следите за дверями, предметами и даже за манекенами.

Комментарий разработчика об игре:

  • Мы рекомендуем не играть в одиночку людям, которые боятся темноты, страдают заболеваниями сердца и боятся оставаться в одиночестве.

Отказ от ответственности:

  • Это вымышленное произведение. Имена, персонажи, места и события являются исключительно плодом воображения или используются в вымышленных целях. Любое сходство с реальными событиями, местами, живыми или умершими людьми является случайным.

ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ!: Обновления могут повредить старые файлы сохранения. Для достижения наилучших результатов начните новую игру.

ВНИМАНИЕ: Эта игра может вызвать приступы у людей с фотосенситивной эпилепсией. Игрокам рекомендуется проявлять осмотрительность.

  • Опубликовано 4 июля 2025 г.

  • Жанр Симуляторы

  • Тип Одиночная игра

  • Теги #FPS #УЖАСЫ #СИМУЛЯТОР #ИССЛЕДОВАНИЕ #МИСТИКА #АТМОСФЕРИЧЕСКАЯ #ОТ ПЕРВОГО ЛИЦА #ОДИНОЧНАЯ ИГРА #ГОЛОВОЛОМКИ #3D #МРАЧНЫЙ #ТРИЛЛЕР #ПСИХОЛОГИЧЕСКИЙ ХОРРОР #ПОИСК ПРЕДМЕТОВ #РЕАЛИСТИЧНАЯ #ИГРА В БОГ #ДЕМОНЫ #IMMERSIVE SIM #КИНЕМАТОГРАФИЧЕСКАЯ #3D ВИДЕНИЕ

Системные требования

Минимальные:

  • Требуется 64-разрядный процессор и операционная система

  • ОС: WINDOWS® 10 (64-разрядная версия обязательна)

  • Процессор: Intel® CoreTM2 Quad 2.7 ГГц или лучше, AMD PhenomTM II X4 3 ГГц или лучше

  • Оперативная память: 4 ГБ

  • Видеокарта: NVIDIA® GeForce® GTX 560 или лучше

  • Память: 4 ГБ свободного места

  • Звуковая карта: Стандартное аудиоустройство

  • ссылки : steam

Показать полностью 1 1
Инди Gamedev Инди игра Раздача Разработка Не Steam Indiegala Хоррор игра Инди-хоррор Симулятор Головоломка Мистика Видео YouTube Длиннопост
3
10
Adarov
Adarov
Лига Художников

Ночной прыжок⁠⁠

14 дней назад
Ночной прыжок
Показать полностью 1
[моё] Арт Рисунок Творчество Милота Юмор Цифровой рисунок Художник Рисование 2D Gamedev Game Art Иллюстрации Современное искусство Обои на рабочий стол Обои на телефон Необычное Искусство Слоны Digital Иллюстратор
0
2
gmaedev
gmaedev
Unity

Как две минуты первой сессии предсказывают судьбу вашей игры (и 4 SQL-запроса для анализа)⁠⁠

14 дней назад

Анализ первой сессии -- это "момент истины" для твоей игры.

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

Замылил картинку для интриги :D

Замылил картинку для интриги :D

Ниже я расскажу, как на основе длительности этого "свидания", можно давать оценку и строить гипотезы. А еще прикреплю SQL запросы и поделюсь аналитикой по своей веб-игре Ферма на острове (https://yandex.ru/games/app/336608).

Что показывает длительность первой игровой сессии

1. Эффективность онбординга

  • Короткая сессия (менее 3-5 минут) часто означает, что игрок "уперся в стену" -- не понял механики, запутался в интерфейсе или столкнулся с техническими проблемами

  • Оптимальная длительность (5-15 минут) говорит о плавном вхождении в игру

  • Длинная сессия (15+ минут) — игрок "зацепился", он получил достаточно мотивации продолжать

2. Прогноз долгосрочного удержания

По моим данным (я их округлил для наглядности), игроки с первой сессией:

  • Менее 2 минут — 80% никогда не возвращаются

  • 5-10 минут — 45% возвращаются на следующий день

  • 15+ минут — 65% играют через 7 дней

3. Качество маркетингового трафика

Разная длительность сессии по источникам:

  • Рекламные сети — часто короткие сессии, если реклама не соответствует геймплею

  • Рекомендации друзей — более длинные сессии, так как есть социальное доверие

  • Органический поиск — самые вовлеченные пользователи

Сбор данных и SQL запросы

Данные я собираю в Unity Analytics.

Анализ длительности первой сессии за последние 90 дней

WITH first_sessions AS (

SELECT

USER_ID,

EVENT_JSON:sessionID::STRING as session_id,

MIN(EVENT_TIMESTAMP) as first_session_start

FROM EVENTS

WHERE EVENT_JSON:eventName::STRING = 'newPlayer'

GROUP BY USER_ID, EVENT_JSON:sessionID::STRING

),

session_durations AS (

SELECT

fs.USER_ID,

fs.session_id,

fs.first_session_start,

MIN(e.EVENT_TIMESTAMP) as session_start,

MAX(e.EVENT_TIMESTAMP) as session_end,

DATEDIFF(second, MIN(e.EVENT_TIMESTAMP), MAX(e.EVENT_TIMESTAMP)) as duration_seconds

FROM first_sessions fs

JOIN EVENTS e ON fs.USER_ID = e.USER_ID

AND fs.session_id = e.EVENT_JSON:sessionID::STRING

WHERE e.EVENT_DATE > CURRENT_DATE-90

GROUP BY fs.USER_ID, fs.session_id, fs.first_session_start

),

percentiles AS (

SELECT

APPROX_PERCENTILE(duration_seconds, 0.1) as p10_seconds,

APPROX_PERCENTILE(duration_seconds, 0.5) as p50_seconds,

APPROX_PERCENTILE(duration_seconds, 0.9) as p90_seconds,

AVG(duration_seconds) as avg_duration_seconds,

COUNT(*) as total_sessions

FROM session_durations

WHERE duration_seconds >= 0 -- исключаем отрицательные значения

)

SELECT

ROUND(p10_seconds, 2) as p10_duration_seconds,

ROUND(p50_seconds, 2) as median_duration_seconds,

ROUND(p90_seconds, 2) as p90_duration_seconds,

ROUND(avg_duration_seconds, 2) as average_duration_seconds,

total_sessions

FROM percentiles;

Анализ длительности первой сессий по платформам за последние 90 дней

Если аналитика по твоей игре собирается сразу для нескольких платформ, то будет полезно посмотреть на них отдельно.

WITH first_sessions AS (

SELECT

USER_ID,

EVENT_JSON:sessionID::STRING as session_id,

MIN(EVENT_TIMESTAMP) as first_session_start,

EVENT_JSON:platform::STRING as platform

FROM EVENTS

WHERE EVENT_JSON:eventName::STRING = 'newPlayer'

GROUP BY USER_ID, EVENT_JSON:sessionID::STRING, EVENT_JSON:platform::STRING

),

session_durations AS (

SELECT

fs.USER_ID,

fs.session_id,

fs.platform,

fs.first_session_start,

MIN(e.EVENT_TIMESTAMP) as session_start,

MAX(e.EVENT_TIMESTAMP) as session_end,

DATEDIFF(second, MIN(e.EVENT_TIMESTAMP), MAX(e.EVENT_TIMESTAMP)) as duration_seconds

FROM first_sessions fs

JOIN EVENTS e ON fs.USER_ID = e.USER_ID

AND fs.session_id = e.EVENT_JSON:sessionID::STRING

WHERE e.EVENT_DATE > CURRENT_DATE-90

AND fs.platform IS NOT NULL

GROUP BY fs.USER_ID, fs.session_id, fs.platform, fs.first_session_start

)

SELECT

COALESCE(platform, 'Не указана') as platform,

ROUND(APPROX_PERCENTILE(duration_seconds, 0.1), 2) as p10_duration_seconds,

ROUND(APPROX_PERCENTILE(duration_seconds, 0.5), 2) as median_duration_seconds,

ROUND(APPROX_PERCENTILE(duration_seconds, 0.9), 2) as p90_duration_seconds,

ROUND(AVG(duration_seconds), 2) as average_duration_seconds,

COUNT(*) as total_sessions

FROM session_durations

GROUP BY platform

ORDER BY total_sessions DESC;

Анализ длительности первой сессии понедельно за последние три квартала

Иногда может быть полезно посмотреть как изменилась длина первой сессии с течением времени.

WITH first_sessions AS (

SELECT

USER_ID,

EVENT_JSON:sessionID::STRING as session_id,

MIN(EVENT_TIMESTAMP) as first_session_start,

EVENT_JSON:platform::STRING as platform,

YEAR(EVENT_TIMESTAMP) as session_year,

WEEK(EVENT_TIMESTAMP) as session_week

FROM EVENTS

WHERE EVENT_JSON:eventName::STRING = 'newPlayer'

GROUP BY USER_ID, EVENT_JSON:sessionID::STRING, EVENT_JSON:platform::STRING,

YEAR(EVENT_TIMESTAMP), WEEK(EVENT_TIMESTAMP)

),

session_durations AS (

SELECT

fs.USER_ID,

fs.session_id,

fs.platform,

fs.first_session_start,

fs.session_year,

fs.session_week,

MIN(e.EVENT_TIMESTAMP) as session_start,

MAX(e.EVENT_TIMESTAMP) as session_end,

DATEDIFF(second, MIN(e.EVENT_TIMESTAMP), MAX(e.EVENT_TIMESTAMP)) as duration_seconds

FROM first_sessions fs

JOIN EVENTS e ON fs.USER_ID = e.USER_ID

AND fs.session_id = e.EVENT_JSON:sessionID::STRING

WHERE e.EVENT_DATE > CURRENT_DATE-270

AND fs.platform IS NOT NULL

GROUP BY fs.USER_ID, fs.session_id, fs.platform, fs.first_session_start,

fs.session_year, fs.session_week

)

SELECT

session_year,

session_week,

CONCAT(session_year, '-W', LPAD(session_week, 2, '0')) as year_week,

ROUND(APPROX_PERCENTILE(duration_seconds, 0.1), 2) as p10_duration_seconds,

ROUND(APPROX_PERCENTILE(duration_seconds, 0.5), 2) as median_duration_seconds,

ROUND(APPROX_PERCENTILE(duration_seconds, 0.9), 2) as p90_duration_seconds,

ROUND(AVG(duration_seconds), 2) as average_duration_seconds,

COUNT(*) as total_sessions

FROM session_durations

WHERE session_year IS NOT NULL

AND session_week IS NOT NULL

GROUP BY session_year, session_week

ORDER BY year_week ASC;

Анализ длительности первой сессии по версиям за последний год

И еще интереснее сравнить длительность первой сессии для каждой версии игры за последнее время.

WITH first_sessions AS (

SELECT

USER_ID,

EVENT_JSON:sessionID::STRING as session_id,

MIN(EVENT_TIMESTAMP) as first_session_start,

EVENT_JSON:clientVersion::STRING as version

FROM EVENTS

WHERE EVENT_JSON:eventName::STRING = 'newPlayer'

GROUP BY USER_ID, EVENT_JSON:sessionID::STRING, EVENT_JSON:clientVersion::STRING

),

session_durations AS (

SELECT

fs.USER_ID,

fs.session_id,

fs.version,

fs.first_session_start,

MIN(e.EVENT_TIMESTAMP) as session_start,

MAX(e.EVENT_TIMESTAMP) as session_end,

DATEDIFF(second, MIN(e.EVENT_TIMESTAMP), MAX(e.EVENT_TIMESTAMP)) as duration_seconds

FROM first_sessions fs

JOIN EVENTS e ON fs.USER_ID = e.USER_ID

AND fs.session_id = e.EVENT_JSON:sessionID::STRING

WHERE e.EVENT_DATE > CURRENT_DATE-360

AND fs.version IS NOT NULL

GROUP BY fs.USER_ID, fs.session_id, fs.version, fs.first_session_start

)

SELECT

version,

ROUND(APPROX_PERCENTILE(duration_seconds, 0.1), 2) as p10_duration_seconds,

ROUND(APPROX_PERCENTILE(duration_seconds, 0.5), 2) as median_duration_seconds,

ROUND(APPROX_PERCENTILE(duration_seconds, 0.9), 2) as p90_duration_seconds,

ROUND(AVG(duration_seconds), 2) as average_duration_seconds,

COUNT(*) as total_sessions

FROM session_durations

WHERE version IS NOT NULL

GROUP BY version

ORDER BY version DESC;

Пример например

На примере веб-игры Ферма на острове (https://yandex.ru/games/app/336608), я собрал следующий запрос (ниже опишу разницу):

WITH first_sessions AS (

SELECT

USER_ID,

EVENT_JSON:sessionID::STRING as session_id,

MIN(EVENT_TIMESTAMP) as first_session_start,

EVENT_JSON:clientVersion::STRING as version

FROM EVENTS

WHERE EVENT_JSON:eventName::STRING = 'newPlayer'

GROUP BY USER_ID, EVENT_JSON:sessionID::STRING, EVENT_JSON:clientVersion::STRING

),

session_durations AS (

SELECT

fs.USER_ID,

fs.session_id,

fs.version,

fs.first_session_start,

MIN(e.EVENT_TIMESTAMP) as session_start,

MAX(e.EVENT_TIMESTAMP) as session_end,

DATEDIFF(second, MIN(e.EVENT_TIMESTAMP), MAX(e.EVENT_TIMESTAMP)) as duration_seconds

FROM first_sessions fs

JOIN EVENTS e ON fs.USER_ID = e.USER_ID

AND fs.session_id = e.EVENT_JSON:sessionID::STRING

WHERE fs.version IS NOT NULL

GROUP BY fs.USER_ID, fs.session_id, fs.version, fs.first_session_start

)

SELECT

version,

ROUND(APPROX_PERCENTILE(duration_seconds, 0.1), 2) as p10_duration_seconds,

ROUND(APPROX_PERCENTILE(duration_seconds, 0.5), 2) as median_duration_seconds,

ROUND(APPROX_PERCENTILE(duration_seconds, 0.9), 2) as p90_duration_seconds,

ROUND(AVG(duration_seconds), 2) as average_duration_seconds,

COUNT(*) as total_sessions

FROM session_durations

WHERE version IS NOT NULL

GROUP BY version

HAVING total_sessions > 100

ORDER BY version DESC;

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

1. Я исключил данные по версиям, в которых было менее 100 первых сессий, чтобы убрать всплески:

Вот эти пики точеные портят картину

Вот эти пики точеные портят картину

Например тут было две сессии, где игроков затянуло

Например тут было две сессии, где игроков затянуло

2. Выгребаю данные за всё время, чтобы вот вообще всё увидеть :D

Вот, что получилось:

Результат анализа времени первой игровой сессии

Результат анализа времени первой игровой сессии

Релиз 1.1.2 от 30 октября 2024 года каким-то образом сломал первое впечатление об игре.

50% игроков проводили 43 секунды и меньше в свою первую игровую сессию

50% игроков проводили 43 секунды и меньше в свою первую игровую сессию

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

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

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

Решение было простым: генерировать случайный идентификатор и сохранять его в данных игрока, а затем использовать в качестве UnityServices.ExternalUserId.

20 октября была выпущена версия 1.2.0, в которой игра начала идентифицировать игроков корректно:

Это позволило адекватно оценить продолжительность первой игровой сессии и составить ряд гипотез. Первое, что бросилось в глаза после плейтестов: игра дарит игроку снаряжение, но не объясняет, как им пользоваться.

Спустя еще неделю игра начала обучать игрока экипировать и прокачивать снаряжение, и вот результат:

Это дало прирост в две минуты или ~28%!

После нескольких релизов летом, начиная с реализации защиты от накруток при переводе времени на устройстве, медиана начала падать:

Возможно, механики просто наскучили и игроки хотят чего-то нового.

Гипотезы закончились, проект наскучил и я переключился на новый.

Заключение

Надеюсь, что мне удалось рассказать что-то интересное и поделиться опытом аналитики.

Спасибо за внимание! Жду вопросы в комментариях.

Показать полностью 7
[моё] Gamedev Unity Аналитика Длиннопост
0
13
CyberCook
Лига Разработчиков Видеоигр

Раздача ассета Ultimate Nature Pack на Unity asset store⁠⁠

14 дней назад

Ultimate Nature Pack

Раздача ассета Ultimate Nature Pack  на Unity asset store

ЗАБРАТЬ

Промо код BLACKHORIZON2025

  • Версия Unity 2019.4.40f1

  • Встроенная Совместимо

  • URP Несовместимо

  • HDRP Несовместимо

Описание

Набор Ultimate Nature Pack поддерживает следующие версии Unity: Unity 2019, Unity 2020, Unity 2021, Unity 2022, Unity 2023, Unity 6+. URP и HDRP не поддерживаются.

Набор Ultimate Nature Pack включает в себя более 355 уникальных полностью редактируемых деревьев, пней, кустов, растений и цветов, созданных с помощью Unity Tree Creator. Набор Ultimate Nature Pack основан на множестве различных климатических условий, что позволяет вам увидеть растительность со всего мира. Каждый тип растительности уникален и представлен в нескольких размерах, что обеспечивает огромное разнообразие. Все деревья оснащены коллайдерами, идеально подходящими для их стволов.

Демонстрационные сцены включены в демонстрацию

  • Лесная демонстрация

  • Пляжная демонстрация

  • Горная демонстрация

Деревья

  • 10 сосен (тип 1) – 5 больших и 5 маленьких

  • 5 сосен (тип 2) – 5 средних

  • 5 сосновых пней – разных размеров

  • 15 можжевельников – 5 больших и 10 маленьких

  • 10 заснеженных сосен – 5 больших и 5 маленьких

  • 5 заснеженных сосновых пней – разных размеров

  • 5 кустов заснеженных сосен – разных размеров

  • 10 секвойи – 10 больших

  • 10 мертвых деревьев (тип 1) – 5 больших и 5 маленьких

  • 10 мертвых деревьев (тип 2) – 5 больших и 5 маленьких

  • 5 мертвых пней – разных размеров

  • 25 пальм – 10 больших прямых, 10 маленьких, 5x Изогнутые

  • 20x Осины (зелёные) – 5x Большие, 5x Средние, 5x Маленькие, 5x Саженцы

  • 20x Осины (оранжевые) – 5x Большие, 5x Средние, 5x Маленькие, 5x Саженцы

  • 5x Пни осины – разных размеров

  • 5x Дубы – 5x Большие

  • 15x Зелёные деревья (Тип 1) – 5x Большие, 5x Средние, 5x Маленькие

  • 15x Зелёные деревья (Тип 2) – 5x Большие, 5x Средние, 5x Маленькие

  • 10x Зелёные/жёлтые деревья (Тип 3) – 5x Большие и 5x Маленькие

  • 5x Зелёные пни (Тип 1) – разных размеров

  • 5x Зелёные пни (Тип 2) – разных размеров

  • 10x Дальневосточные сосны – 5x Большие и 5x Маленькие

  • 10x Дальневосточные цветущие деревья – 5 крупных и 5 мелких

Растения

  • 5 тропических растений (тип 1) – разных размеров

  • 5 тропических растений (тип 2) – разных размеров

  • 5 тропических растений (тип 3) – разных размеров

  • 5 тропических растений (тип 4) – разных размеров

  • 5 небольших лесных растений – разных размеров

  • 5 папоротников – разных размеров

  • 15 бамбуковых растений – 5 крупных, 5 средних, 5 мелких

  • 5 цветов (тип 1) – разных размеров

  • 5 цветов (тип 2) – разных размеров

  • 5 цветов (тип 3) – разных размеров

  • 5 цветов (тип 4) – разных размеров

  • 5 цветов (тип 5) – разных размеров

  • 5 цветов (тип 6) – разных размеров

Кустарники

  • 5 кустов (тип 1) – разных размеров

  • 5 кустов (тип 2) – разных размеров

  • 5 кустов (тип 3) – разных размеров

  • 5 Кусты (тип 4) – разных размеров

  • 5 кустов (тип 5) – разных размеров

  • 5 кустов (тип 6) – разных размеров

  • 5 заснеженных кустов – разных размеров

  • 5 сосен – разных размеров

  • 5 заснеженных сосен – разных размеров

  • В набор также входят:

  • 5 звуков птиц

  • 5 эффектов частиц – дождь, снег, падающие листья, туман и эффект таинственного леса

Примечание: Освещение и небо от UniStorm (не входят в комплект). Этот ассет не поддерживает URP или HDRP.

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

Этот ассет не поддерживает URP или HDRP.

Показать полностью 1
Инди Gamedev Инди игра Раздача Разработка Unity Unity3D Asset store Asset Видео YouTube Длиннопост
4
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии