Дневники разработчика
1.96K subscribers
187 photos
28 videos
13 files
136 links
Мы THS - молодая команда разработчиков из Краснодара. Мечтаем сделать свою идеальную игру. Об успехах делимся на канале.
Я @colapsefed работаю геймдизайнером. Люблю игры, жену и Иисуса Христа.
Download Telegram
Сегодня мне всё меньше и меньше можно рассказывать об Tuning club, но одна интересная новость всё таки есть. Сегодня продумывал какие метрики собирать и на какой платформе.
Мне очень понравилась Яндексовская AppMetrica и Game analytics. Обе они бесплатные и удобные, судя по демо. Яндекс мне всё таки ближе. Может потому что я патриот, а может потому что он и правда удобнее.

Мы раньше использовали Google analytics, но я её ненавижу из-за неудобного UI. Ещё смотрел распиаренную DevToDev, но там бесплатных функции кот наплакал😿
Анюта (моя жена) супер много и полезно помогает мне в работе над игрой. Это только Хидео Кодзима у нас всё сам делает 😂
Придумали суперский лор для Tuning club. Он понравился всем у нас в команде!
Вообщем всем советую жениться, но не на Ане, она уже 10 лет занята 😜
Читаю журналы "Если". У меня их штук 10 наверное. По сути это сборник фантастических рассказов и статей. Сделал 2 наблюдения:

1. Иногда просто офигеть как интересно, а иногда хочется узнать у автора зачем он написал эту хрень. Ему самому казалось, что с первой страницы непонятно "кто убийца"?? Налил букв в сухую идею...😫
2. Рассказ нынче тяжело читать. Кто-нибудь кроме меня это ещё замечал? Мозги уже привыкли потреблять посты по 500 символов и концентрацию вообще не держат.
This media is not supported in your browser
VIEW IN TELEGRAM
https://www.thegrove3d.com/releases/the-grove-release-8/

Программа для выращивания деревьев. Никогда не видел такого уровня реализма!
Мы сейчас всей командой оптимизируем игру. Цель: выяснить что именно, как и какие ресурсы жрёт, чтобы потом заставить Unity этого не делать.

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

Условия: пустая сцена с небольшим количеством UI (счётчики FPS и Set pass call). По клику спавнятся сферы с отдельным материалом, чтобы батчинг не срабатывал. Тестили на Standard и Diffuse шейдерах. Тесты проводились при полном разрешении и полном заряде батареи. Тени и рефлекшн-пробы отключены. На сцене один направленный источник света.
Сколько таких сфер (Set pass call) выдержит телефон при 60 FPS и сколько при 30 FPS?
Оказывается больше всего CPU жрёт физика Realistic car controller! Напоминаю, что мы разрабатываем мультиплеерные онлайн гонки на Unity.
Заходят +5 игроков и у нашего tech artist игра выдает 5 fps на телефоне Highscreen power five max 2. CPU и RAM перегружены, а вот графон не так и много занимает.
Не претендую на истину🤓. Копаем дальше...
Пока парни воюют с оптимизацией, я читаю "Проектирование виртуальных миров" Михаила Кадикова. Отличная книга! Вот под этой цитатой я готов подписаться 100 000 раз.

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

Из-за такой невнимательности у нас до сих пор в первой игре масштаб ВСЕХ ассетов 1.23, потому что это проще чем всё переделать заново. Но физическому движку, не пофиг на это 😰
Наш tech artist Сергей нашёл статью о том, что Physics update каждый раз обновляет все дочерние transform-ы.
Например у нас есть машина с Rigid body и внутри неё есть куча game object с тюнингом, гейм объектами, колесами и т.д.
Поэтому когда надо обновить физику машины, одновременно обновляются данные из каждого дочернего объекта и получается не 2ms, а 20ms

http://www.strichnet.com/why-is-physics-updatebodies-using-up-so-much-time-20ms-to-2ms/
В целях оптимизации парни пишут систему отключения collider, rigid body, определенных скриптов на дистанции 50-100-150-200 метров чтобы тачки соперников упрощались графически, физически, программно и духовно
Я устал каждый раз в чате писать такое длинное объяснение, когда спрашиваю про нее, и придумал кодовое название К.О.Б.Р.А😎 -контекстуальное отключение блоков рабочих активов.
This media is not supported in your browser
VIEW IN TELEGRAM
Мало постов ибо мы с Анютой в Индонезии. Мало кто знает, но именно здесь будет проходить следующая часть Wolfenstein.😜
This media is not supported in your browser
VIEW IN TELEGRAM
Археологические находки нацистов!😆
Оптимизация мне казалась какой-то хитростью. Бах и в дамки! А фиг там! На деле чтобы игра стала легче, надо сделать каждый её болтик легче на 10 грамм.

- Отключение физики у соперников помогло, но багов был просто вагон. Отключим и перепишем.
- Сделаем отключение у соперников фар, тормозных дисков и двигателя.
- Заменяем наш шейдер кузова, на mobile diffuse на дистанции более 100 метров у соперников
- Отключили Hint join для кузова, в нашей физике Realistic car controller. Потому что на корневом объекте машины есть Rigid body, а потом ещё и внутри неё есть объект с Rigid body. Из-за такого было много глюков - машина прыгала и дергалась.
- Делаем mesh combine для всех элементов внешнего тюнинга, чтобы не тратить лишние draw call на то что имеет один материал. В гараже тачка состоит из кусков, чтобы тюнинг работал, а в игре все спаивается.
- На низкой детализации графики мы будем использовать low poly модели машин для соперников. Около 5000 вершин на машину
- Делаем GPU instancing для дисков и шин, чтобы оставить возможность сделать LOD для них, но при этом чтобы они рисовались в 1 draw call
Докапываюсь до нового левел дизайнера, за то что он любит работать "в тёмную". Делает что-то молча целую неделю, а потом выяснится что это надо выбросить.
Заставляю его присылать результат по 2 раза в день, а он не присылает😡
Не хочу штрафовать, но иногда приходится. Ничего личного, но мне нужен интерактивный процесс работы, а друзей мне хватает.

Ну а в целом он молодец! Предлагает разные штуки. Люблю когда геймплейные идеи исходят не только от меня. Получается как в рок группе - ты играешь ритм, а другой наваливает туда бас.
Поставлю на картинку канала наш логотип. Если увидите людей в таких футболках, то узнаете нас.👍
This media is not supported in your browser
VIEW IN TELEGRAM
Неудачные дубли Cinemachine, как в фильмах с Джеки Чаном. Сейчас всё хорошо
Вы знали про импостеры?! Я нет. Оказывается это нечто вроде всестороннего billboard. Это позволяет на переднем плане рендерить супер детализарованный меш, а на дальнем плане импостер. Я пока толком не разобрался, но вроде перспективная штука.

https://assetstore.unity.com/packages/tools/utilities/amplify-impostors-beta-119877
Мы шли к этому 2 долгих года! Наконец-то выложим игру в сторы. Собрали беседку в ВК на 490 человек и сказали там что игра будет доступна 27 декабря. Народ начал рвать на себе одежду от радости 😂
И тут... мы не можем выложить игру потому что гуглу, то разрядность билда не нравится, то ещё что-то. А ещё коллега сказал нам, что модерация, при первом заливе в Google play, занимает 4-5 дней. Надо было говорить дату с запасом😰. Учитесь на наших ошибках.
https://play.google.com/store/apps/details?id=com.twoheadedshark.tco

Совершилось!!! Игра уже в Google play в раннем доступе. Тревоги были напрасны и всё хорошо. Одному Богу спасибо, что получилось выполнить обещанное.

Качайте!