Кодерские работы
👾 Optimization. 🇬🇧 Perfect English 🔥 Ставьте много (10) реакций расскажу что тут происходит и как я этого добился.
🔥 Подогрею ваш интерес, чтобы ставили реакции)
P.s. Молодцы, что набрали, я щас немного на учебе, как освобожусь дам вам инфу)
P.s. Молодцы, что набрали, я щас немного на учебе, как освобожусь дам вам инфу)
👾7 2
1️⃣ Полная отрисовка
В режиме полной отрисовки весь тайлмап всегда активен и постоянно отрисовывается, вне зависимости от того, находится ли игрок рядом или нет.
📊 Результат: FPS — 17.9, CPU загрузка — 56.0ms.
🏁 Итог: Способ не подходит, т.к. даже при пустой карте ФПС низкий
2️⃣ Частичный рендер — оптимизация первого уровня
Здесь карта остается активной, но рендерятся только те объекты, которые находятся рядом с игроком. Это снижает нагрузку за счет отключения рендеринга дальних объектов, которые игрок не видит.
🔹 Принцип работы: При удалении объектов от игрока (например, за пределами видимости) их рендеринг отключается, хотя сами объекты остаются активными. Такой подход уменьшает количество треугольников и вершин в кадре.
🔹 Недостатки: Хотя это снижает нагрузку на графический процессор, активные объекты по-прежнему используют память и CPU ресурсы, даже если они не рендерятся.
📊 Результат: FPS — 34.2, CPU загрузка — 29.2ms.
🏁 Итог: Уже получше, но можно еще добавить отимизации)
В режиме полной отрисовки весь тайлмап всегда активен и постоянно отрисовывается, вне зависимости от того, находится ли игрок рядом или нет.
📊 Результат: FPS — 17.9, CPU загрузка — 56.0ms.
🏁 Итог: Способ не подходит, т.к. даже при пустой карте ФПС низкий
2️⃣ Частичный рендер — оптимизация первого уровня
Здесь карта остается активной, но рендерятся только те объекты, которые находятся рядом с игроком. Это снижает нагрузку за счет отключения рендеринга дальних объектов, которые игрок не видит.
🔹 Принцип работы: При удалении объектов от игрока (например, за пределами видимости) их рендеринг отключается, хотя сами объекты остаются активными. Такой подход уменьшает количество треугольников и вершин в кадре.
🔹 Недостатки: Хотя это снижает нагрузку на графический процессор, активные объекты по-прежнему используют память и CPU ресурсы, даже если они не рендерятся.
📊 Результат: FPS — 34.2, CPU загрузка — 29.2ms.
🏁 Итог: Уже получше, но можно еще добавить отимизации)
❤4 1
3️⃣ Выборочная загрузка и рендеринг — максимальная оптимизация, до которой я додумался
В этом режиме активны и отрисовываются только чанки рядом с игроком, а остальные полностью отключены. Это решение дает лучший баланс производительности и использования ресурсов.
🔹 Принцип работы: Объекты вокруг игрока активируются и рендерятся, а когда игрок отдаляется, они деактивируются. При этом неактивные объекты не потребляют ресурсы, поскольку они полностью отключены.
🔹 Преимущества: Этот способ обеспечивает большую оптимизацию за счет меньшей нагрузки на CPU и GPU. Это отличный вариант для меня, лучше пока не придумал.
📊 Результат: FPS — 44.4, CPU загрузка — 22.5ms.
🛠 Оптимизация чанков: изнутри 🛠
Когда игрок приближается к тригеру чанка, мы активируем его рендеринг и включаем соседние чанки:
Когда игрок уходит, мы отключаем чанк и его ненужных соседей через отложенную деактивацию, чтобы избежать резких переходов:
⚙️ Как-то так и работает)
В этом режиме активны и отрисовываются только чанки рядом с игроком, а остальные полностью отключены. Это решение дает лучший баланс производительности и использования ресурсов.
🔹 Принцип работы: Объекты вокруг игрока активируются и рендерятся, а когда игрок отдаляется, они деактивируются. При этом неактивные объекты не потребляют ресурсы, поскольку они полностью отключены.
🔹 Преимущества: Этот способ обеспечивает большую оптимизацию за счет меньшей нагрузки на CPU и GPU. Это отличный вариант для меня, лучше пока не придумал.
📊 Результат: FPS — 44.4, CPU загрузка — 22.5ms.
🛠 Оптимизация чанков: изнутри 🛠
Когда игрок приближается к тригеру чанка, мы активируем его рендеринг и включаем соседние чанки:
tilemapRenderer.enabled = true;
public void ActivateNeighbour()
{
foreach (Chunk chunk in neighborChunks)
{
chunk.gameObject.SetActive(true);
}
}
Когда игрок уходит, мы отключаем чанк и его ненужных соседей через отложенную деактивацию, чтобы избежать резких переходов:
private IEnumerator DeactivateTime(float time)
{
yield return new WaitForSeconds(time);
tilemapRenderer.enabled = false;
DeactivateNeighbour();
}
⚙️ Как-то так и работает)
🔥4 1
Кодерские работы
3️⃣ Выборочная загрузка и рендеринг — максимальная оптимизация, до которой я додумался В этом режиме активны и отрисовываются только чанки рядом с игроком, а остальные полностью отключены. Это решение дает лучший баланс производительности и использования…
Вот здесь как раз видно, что активных чанков куда меньше.
LWT.apk
36.1 MB
⚙️ Ребят, вот вам пре пре пре альфа.
🎮 Скажите, у кого запускается игра, т.е. видно меню.
🐞 А то я протестировал на двух телефонах и на одном просто черный экран.
P.s. Если игра при нажатии на "Play" зависает, это не баг)
🎮 Скажите, у кого запускается игра, т.е. видно меню.
🐞 А то я протестировал на двух телефонах и на одном просто черный экран.
P.s. Если игра при нажатии на "Play" зависает, это не баг)
❤4
Pixel Dystopia
<unknown>
🎸 Прочувствуйте вайб битвы с боссом первого уровня.
👾 Босса ещё нет, а музыкальная атмосфера уже есть!
👾 Босса ещё нет, а музыкальная атмосфера уже есть!
🔥8
❗Завтра стрим в 18:00 по МСК❗
👋 Всем добрейший вечерок.
👨💻 Сегодня у меня прям нагруженный день, утром экзамен, а сейчас активная подготовка к стриму.
🎮 Уже выбрал игру для стрима, картинка это пасхалка)
☺️ Так что буду рад всех видеть и пообщаться с вами.
⚙️ Пойду дальше настраивать нужные программы.
🌐 Все ссылочки будут завтра.
👋 Всем добрейший вечерок.
👨💻 Сегодня у меня прям нагруженный день, утром экзамен, а сейчас активная подготовка к стриму.
🎮 Уже выбрал игру для стрима, картинка это пасхалка)
☺️ Так что буду рад всех видеть и пообщаться с вами.
⚙️ Пойду дальше настраивать нужные программы.
🌐 Все ссылочки будут завтра.
❤4 1 1
👋 Всех приветствую, это скоро произойдет, есть конечно некоторое волнение, не каждый день все же стримлю.
👌 Но надеюсь, что все будет без технических траблов, а если будут, то буду их решать как можно быстрее)
🔥 Буду рад видеть каждого, кто будет присутствовать.
🎮 А вот и долгожданная ссылочка.
https://www.youtube.com/live/wElAZ_kgU4c?si=jURIKrt_plHZubAT
👌 Но надеюсь, что все будет без технических траблов, а если будут, то буду их решать как можно быстрее)
🔥 Буду рад видеть каждого, кто будет присутствовать.
🎮 А вот и долгожданная ссылочка.
https://www.youtube.com/live/wElAZ_kgU4c?si=jURIKrt_plHZubAT
YouTube
Стрим на 100. Девелопер играет в Katana Zero.
Привет, подписчик или случайный зритель! Я — немного программирую, именно сейчас гейм девелопер, создаю свои игры и решил провести этот стрим в честь 100 подписчиков в Telegram. Сегодня я играю в Katana Zero и болтаю с вами — задавайте вопросы о разработке…
Кодерские работы pinned «👋 Всех приветствую, это скоро произойдет, есть конечно некоторое волнение, не каждый день все же стримлю. 👌 Но надеюсь, что все будет без технических траблов, а если будут, то буду их решать как можно быстрее) 🔥 Буду рад видеть каждого, кто будет присутствовать.…»
Кодерские работы
👋 Всех приветствую, это скоро произойдет, есть конечно некоторое волнение, не каждый день все же стримлю. 👌 Но надеюсь, что все будет без технических траблов, а если будут, то буду их решать как можно быстрее) 🔥 Буду рад видеть каждого, кто будет присутствовать.…
👾 Я решил пройти Katana Zero за стрим, пока перерыв, но ровно в 20:00 продолжу, так что заходите и смотрите на резню)
P.s. Не получилось дойти до конца, чёртов вертолёт.
P.s. Не получилось дойти до конца, чёртов вертолёт.
❤1
🎮 А ещё пока играл, вдохновился диалоговой системой, а точнее ее визуальным оформлением.
💬 И хочу сделать в своей игре что-то подобное.
🎨 Для тех кто не знает, прикрепил скриншоты.
👾 Ещё в этих диалогах есть крутые анимации и так скажем крутое обратное взаимодействие, т.е. ты "чувствуешь" диалог.
💬 И хочу сделать в своей игре что-то подобное.
🎨 Для тех кто не знает, прикрепил скриншоты.
👾 Ещё в этих диалогах есть крутые анимации и так скажем крутое обратное взаимодействие, т.е. ты "чувствуешь" диалог.