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

Симулятор войны: 1985

Мидкорные, Стратегии, Симуляторы

Играть

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

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

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

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

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

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

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

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

12 дней назад


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

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

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

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

Продолжение поста «Как я создавал ландшафт в unity по реальным геоданным»⁠⁠5

12 дней назад

Вобщем настало время все это безобразие покрыть текстурами. Идея в том, что надо как-то покрывать все это разными текстурами, а если точнее, то делать привязку по высотам (для начала) . И вот тут я решил, что надо сразу заложить оптимизацию, ибо множество текстур для разных высот да плюс еще карты нормалей и все такое, вобщем надо чтобы не тормозило. Было приято решение передавать в шейдер не отдельные текстуры а массивы текстур. Итак, первая проблема, надо написать механизм который создаст карту слоев, на основании настроек привязки к высотам. Я решил, что буду делать одну большую текстуру и передавать в нее данные смещения для текселей и размер области выборки тайла. Это позволит передать в шейдер сразу всю карту. Так, значит скрипт в Unity генерирует текстуру R8, т.е. это одноканальное изображение с 255 значениями на пиксел, что по моей задумке будет указателем на индекс текстуры в массиве. Ну или проще говоря, мы будем делать семпл каждого текселя в слое с индексом взятым из карты слоев.

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

Все эти сложности и хитрости, мною задуманы исключительно ради оптимизации семплов, потому что я к примеру пробовал делать подобное на стандартном Terrain от Unity, и тормоза выхвали не слабые)

АААААА, точно, я ж еще и стохастическое семплирование прикрутил, так что это еще +3 семпла на тексель для текстуры и карты нормалей. так что думаю я еще отказаться от интерполяции между слоями, в пользу дезеринга ( https://ru.wikipedia.org/wiki/Дизеринг )

Это позволит экономит один-два семпла...поглядим

ну и вот видео-отчет:

https://youtu.be/w3Fqocu-6zw?si=lEOOGZ64jFp_SH9w

https://rutube.ru/video/e47009a893ea36a1d091ab538ab52686/

https://vkvideo.ru/video-227321118_456239036

Показать полностью 3
Игры Unity Открытый мир Эксперимент Программирование Ответ на пост YouTube (ссылка) Видео Видео ВК YouTube RUTUBE Длиннопост
0
1
gmaedev
gmaedev
Unity

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

13 дней назад

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

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

Замылил картинку для интриги :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⁠⁠

13 дней назад

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
49
ThisIsZolden
Лига Разработчиков Видеоигр

Разрабатывая физическую симуляцию, порой проводишь ради интереса случайные эксперименты, без особых на то причин⁠⁠

13 дней назад
Перейти к видео

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

Игра, для которой я это делаю, называется Simulario, и доступна для вишлистения на Стиме. Когда она выйдет пока не ясно, потому что я только закончил делать физ-движок, и приступил к реализации геймплея.

Показать полностью
[моё] Unity Gamedev Физика в играх Видео Без звука Короткие видео
20
12
CyberCook
Лига Разработчиков Видеоигр

Раздача 3-х ассетов на Matte Painting Skybox Pack: Chaotic Skies,Futuristic Warrior CYBER WARRIOR и Laketown на fab.com⁠⁠

13 дней назад

Matte Painting Skybox Pack: Chaotic Skies

ЗАБРАТЬ

Описание

ВИДЕО ПОЛЕТА: youtube

Эпоха Flowmap уже здесь! Теперь вы можете создавать невероятно эпическое небо с анимацией, сохраняя при этом отличную производительность. Использование в играх уровня AAA и голливудских фильмах!

Эта версия знаменитого пакета неба включает в себя невероятно детализированные, апокалиптические грозовые облака. Могу сказать, что это самая детализированная и эпическая версия из всех, что я делал на сегодняшний день. Благодаря новым знаниям в области Houdini и 20-летнему опыту работы с матовой живописью в киноиндустрии, я представляю вам идеальное решение для создания эпических небесных сфер в ваших проектах.

Пакет содержит 6 матовых картин кинематографического качества с высоким разрешением (4K) и обзором 360 градусов, которые можно использовать для улучшения вашего окружения и придания ему кинематографического эффекта. В папке Sources также находятся исходные файлы RAW-карт высот и тепловых карт.

Пакет использует систему анимации Flowmap из пакета Matte Painting Skybox Bundle Pack. Все небеса полностью анимированы. Это полностью оптимизированная для производительности система чертежей.

Небо имеет базовые экземпляры материалов для лёгкого изменения цвета, контрастности, экспозиции, скорости и других параметров анимации. Я также включил в подарок 8K-ландшафт с анимированными тенями от облаков. Для слабых и мощных компьютеров я включил версии с ландшафтом и без него.

Небо проецируется на сферу с UV-развёртками, которые служат полукуполами. Поэтому пакет не основан на старой системе боксов из 6 изображений. Это купол неба.

Я бывший художник по цифровым мэтам, поэтому надеюсь, вам понравятся мои рисунки. Обратите внимание, что я создал эти рисунки специально для этого пакета. Он не включает изображения скайбокса, которые можно найти в моей серии Elite Landscapes или предыдущих наборах скайбоксов.

Включенные форматы

  • Unreal Engine

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

Особенности:

  • 6 изображений неба

  • 4K

  • Система анимации Flowmap на основе чертежей

  • Пейзаж 8K

  • Размеры текстур: все небо 4K.

  • Столкновения: не требуются.

  • Уровни детализации: не требуются.

  • Количество сеток: 1 статичная сетка для небесной сферы.

  • Количество материалов и экземпляров материалов: 5 базовых материалов, 15 экземпляров материалов

  • Количество текстур: 23

  • Поддерживаемые платформы разработки: ПК и консоли.

  • Поддерживаемые целевые платформы сборки: ПК и консоли.

Важные/дополнительные примечания: Если вы хотите связаться со мной: (darth_velarion@yahoo.com)

Совместимость

Поддерживаемые версии Unreal Engine

  • 4.26–4.27 и 5.0–5.6

Поддерживаемые целевые платформы

  • Linux

  • Mac

  • PS4

  • SteamVR / HTC Vive

  • Win32

  • Xbox One

  • Windows

  • Oculus

Futuristic Warrior CYBER WARRIOR

ЗАБРАТЬ

PREVIEW1

PREVIEW2

Подпишитесь на меня в DISCORD и других социальных сетях и не забудьте оставить отзыв*****. Спасибо.

  • Дополнительные кости, добавленные в Epic Skeleton: join1

  • Подходит для игр разных жанров: RPG, стратегии, от первого лица и т. д.

  • В архиве базовая сетка (fbx и maya).

  • Изображения, демонстрирующие визуальное содержимое продукта, отрендерены в Unreal Engine 4 и Marmoset.

  • UV-развёртка 4096x4096 (уменьшено до 1024x1024)

  • Риггинг в Epic Skeleton

  • Модель содержит 6 демонстрационных и 43 основных анимации.

  • Риггинг: (Да)

  • Риггинг для скелета Epic: (Да)

  • При риггинге для скелета Epic включаются кости IK: (Да)

  • Анимация: (Да)

  • Количество анимаций: 43

  • Типы анимации (Root Motion3/In-place 40):

  • Количество персонажей: 1

  • Количество вершин персонажей: 47 554

  • Количество материалов и экземпляров материалов: 19

  • Количество текстур: 51

  • Разрешения текстур: ((2048x2048), (4096x4096))

  • Поддерживаемые платформы разработки:

  • Windows: (Да)

  • Mac: (Да)

  • Документация: Ссылка: Нет

  • Важные/дополнительные примечания: Нет

  • Модель загружена и работает в Unreal Engine 5, но скелет имеет структуру из Unreal Engine engin 4, будьте внимательны и учтите этот момент.

Включенные форматы

  • Unreal Engine

  • Unity

  • fbx

  • obj

Конвертированные GLB, glTF и USDZ

Технические подробности

  • Видео: youtube

  • Риггинг: (Да)

  • Риггинг к эпическому скелету: (Да)

  • При риггинге к эпическому скелету кости IK включаются: (Да)

  • Анимация: (Да)

  • Количество анимаций: 43

  • Типы анимации (Root Motion3/In-place 40):

  • Количество персонажей: 1

  • Количество вершин персонажей: 47554

  • Количество материалов и экземпляров материалов: 19

  • Количество текстур: 51

  • Разрешение текстур: ((2048x2048), (4096x4096))

  • Поддерживаемые платформы разработки:

  • Windows: (Да)

  • Mac: (Да)

  • Документация: Ссылка

  • Важные/дополнительные примечания: Нет

Совместимость

Поддерживаемые версии Unreal Engine

  • 4.18 – 4.27 и 5.0 – 5.4

Поддерживаемые целевые платформы

  • Win32

  • Xbox One

  • Windows

Laketown

ЗАБРАТЬ

Описание

Готовые к использованию дома и доки в средневековом стиле на берегу озера. Детализация со всех сторон позволяет варьировать их.

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

В здании нет интерьеров.

Снег — это отдельный материал, создаваемый после обработки.

Эффект падающего снега на землю — процедурный и может быть отключен/настроен с помощью отдельных материалов.

Включенные форматы

  • Unreal Engine

Технические данные

  • Физически корректный рендеринг: Да

  • Размер текстур: 4K

  • Столкновения: Да (AutoCollision)

  • Количество полигонов: Различное

  • Уровни детализации: 2-3 (AutoLod)

  • Количество сеток: 45

  • Чертежи: 5

  • Количество материалов и экземпляров материалов: 27

  • Количество текстур: 69

  • Совместимость с движком: ПК

  • Платформа: ПК

  • Протестированные платформы: ПК

  • Документация: Нет

Ссылка на демо-видео: youtu.be

Совместимость

  • Поддерживаемые версии Unreal Engine: 4.26 – 4.27 и 5.0 – 5.4

  • Unity 2022.x

Поддерживаемая целевая платформа Платформы

  • Windows

  • Win32

Показать полностью 5 3
Инди Gamedev Инди игра Раздача Разработка Unreal Engine Видео YouTube YouTube (ссылка) Длиннопост Город Киберпанк Воин Персонажи Река Ассет ФАБ Unreal Engine 4 Unreal Engine 5 Unity Asset
0
9
HenjTV
HenjTV
Лига Разработчиков Видеоигр

Я бесплатно выпустил онлайн игру своей мечты, не написав ни строчки кода с абсолютного нуля⁠⁠

15 дней назад

Всем привет, меня зовут Henj и я тут новенький.

Хочу рассказать о своем небольшом хобби - создании онлайн игры.

Немного о себе

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

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


Период блокнотика

К сожалению (или счастью), ни времени, ни желания учиться программированию у меня не было и с тех пор я начал фиксировать все, что касается игры в блокнотик. Наброски интерфейса, игровые механики, истории персонажей.

Так продолжалось достаточно долго (почти 3 года, если честно) и в какой-то момент я понял, что:
1. Материалов уже достаточно, чтобы сделать прототип
2. Блокнотик заканчивается и надо начинать что-то переносить в компьютер.


Период форумов

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

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

В общем я подготовил ГДД (как смог), оформил посты, свои мысли и эскизы, опубликовал и стал ждать. И дождался.

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

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

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


Период раннего прототипа

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

Основа игры - одновременные ходы и предугадывание действий соперника. Игрок выбирает одно из 5 действий, противник делает тоже самое. Результат и вот уже базовый геймплей готов.

Первый прототип игры.

Первый прототип игры.

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


Период браузерной игры

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

Чем примечателен этот период?

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

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

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

Конечно, я немного расстроился, что обменял время на опыт, но решив не затягивать этот процесс я снова вернулся в Unity.


Период Unity (клиент-сервер)

Проанализировав предыдущие ошибки я понял, что варианты с клиент-клиентом мне не подходят (уж не помню хронологию, но где-то между PUN и браузером я потрогал и Unity FGO и Mirror и еще что-то полуживое).

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

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

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

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

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

Дальше улучшения были буквально "по капельке". Где-то дорисовать форму, где-то переместить панель. Все варианты я уж не буду прикреплять, а то получится слайдшоу на несколько часов. Вот такая была самая долгая по продолжительности версия:


Небольшое лирическое отступление

Период всего

Я довольно много рассказал об интерфейсе, но что же еще есть в моей игре? Вот что я хотел видеть из ключевых моментов:
1. Увлекательный геймплей, где простота базовых механик умножается на глубину взаимодействия способностей персонажей
2. Сюжет каждого персонажа и мира в целом. Каждый персонаж - не просто болванчик, а личность, имеющая свою мотивацию и историю (хотя, фактически, для игры в этом не было необходимости, все-таки сессионка)
3. Голоса персонажей, сделанные живыми людьми. Я напомню, что нейросети - всего лишь средство для достижения цели, и хотя бы такие мелочи мне хотелось сделать более душевными.
4. Соревнование в чистом виде, где только от твоих действий зависит твоя победа
5. Работающий матчмейкинг, чтобы люди могли сразиться из любого места.

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

Вот например небольшие тизеры персонажей, которые я сделал вместе с друзьями, которые решили поучаствовать:

Перейти к видео
Перейти к видео
Перейти к видео
Перейти к видео

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


Период мобильной игры.

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

Еще больше механик, больше хорошего визуала, больше работы с обратной связью комьюнити.

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

Актуальное состояние геймплея примерно такое:

Перейти к видео

Суть поста

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

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

Я продолжу делать игру, постараюсь сделать её настолько хорошей, чтобы в нее интересно было играть.


Ответы на часто задаваемые вопросы

Какая цель разработки? Что будет, если игра не станет популярной?

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

Как давно ты делаешь игру?

Первая строчка кода появилась в январе 2025 года. До этого все было в блокнотике.

Игра бесплатная?

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

Как называется игра? Твоя игра уже доступна? В нее можно поиграть?

Игра называется Synthetic Eclipse. Сервер всегда онлайн. Скачать можно с RuStore и ItchIO и играть на PC или мобильном телефоне Android.

Какие нейросети используешь?

Использую более 50 нейронок. Ключевой момент - все бесплатные. Возможно когда-нибудь сделаю пост по оптимизации работы с ними.

Какой игровой цикл? В чем заключается геймплей?

Игровой цикл примерно следующий:
1. Игрок выбирает персонажа и находит себе соперника (подбором занимается матчмейкинг)
2. Игрок выбирает таланты, усиливая свои основные способности
3. Игроки одновременно выбирают основные способности

Вот небольшое видео геймплея:

Твоя игра похожа на "Бойцовский клуб" или что-то еще из браузеров 2000х

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

Где можно узнать подробнее о тебе или об игре?

Всю актуальную информацию я публикую в своем телеграмм канале. Там же делаю анонсы стримов и каких-то важных новостей.

Ты продолжаешь работать над игрой?

Да, каждый день стараюсь сделать её хоть немного лучше.

У меня остались вопросы!

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

На этом, пожалуй, у меня все. Спасибо большое за прочтение и хорошего дня!

Показать полностью 3 6
[моё] Инди игра Инди Gamedev Unity Арты нейросетей Онлайн-игры Разработка Нейронные сети Программирование Видео Короткие видео YouTube Длиннопост
12
2
KafeKrematory
KafeKrematory

Наработки для инди хоррора на Unity⁠⁠

15 дней назад

видео 2023 года, тут я закладывал основные стилистические фишки и какую то атмосферку, (но на очень долго потом застрял в на всем остальном) именно к такому визуалу я думаю подтягивать текущую версию проекта, в которую можно будет поиграть, но об этом чуть пожже) #unity #gamedev #horror #liminal #wierdcore

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