24

TerraPath #18

Кратко о содержании сегодняшнего поста:

Батчинг.
Отсечение по области видимости.
Улучшения с прошлого поста.
Текстура разрушения растягивается на весь объект.

TerraPath #18 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Гифка, Длиннопост

Ошибка расчёта матрицы при инстасинге стала давать вот такой результат.
Кто сказал что кодить под видеокарту это скучно? x)

Добавил батчинг в игру.
Батчинг это такой способ оптимизации. Смысл его заключается в том что мы рисуем однотипные объекты(шейдер + модель) за один вызов отрисовки (DrawCall).
То есть не важно будут это 100 объектов или десять, все они отрисуются за один DrawCall.
Тем самым я скинул кол-во дравколлов с 6183 до 73.
В некоторых частях сцены он даже доходил и до 10.000, так как я рисовал все объекты отдельными дравколлами.

Следующим шагом стало добавление Отсечение по области видимости:
Принцип его работы следующей: Каждрый раз когда мы добавляем объект на отрисовку, мы сперва проверяем, а видно ли его в камере. Тем самым мы не рисуем объекты которые не видно и экономим ресурсы видеокарты.

После всех оптимизации фпс на моей машине в собранном билде вырос с 152 до 528.

Улучшения с прошлого поста:
Товарищь @Distinguishable, и @Ashvar, предложили немного улучшить двери:

Ashvar:
Я бы ещё посоветовал сделать немного другую границу у стен для ситуаций, когда стена переходит в другой вид стен или переходит в дверь.
Distinguishable:
Боковые двери выглядят отвратительно, надо их повернуть на 90
вот что из этого получилось:
было:

TerraPath #18 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Гифка, Длиннопост

стало:

TerraPath #18 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Гифка, Длиннопост

Мелочь конечно, но уже выглядит намного лучше.

Текстура разрушения растягивается на весь объект.
Было:

TerraPath #18 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Гифка, Длиннопост

стало:

TerraPath #18 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Гифка, Длиннопост

А на этом всё, спасибо, что дочитали.

Также не пропустите прошлые посты:

https://pikabu.ru/profile/GooDCrafter


Ссылка на группу в вк(есть играбельная демка):

https://vk.com/terrapath

Найдены возможные дубликаты

Лига Разработчиков Видеоигр

3.9K поста18.3K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

-Уважайте чужой труд и используйте конструктивную критику

-Не употребляйте мат без необходимости

-Не занимайтесь саморекламой, пишите качественные и интересные посты


СТОИТ ПУБЛИКОВАТЬ:

-Пост о Вашей игре, желательно - с историей разработки и описанием полученного опыта

-Обучающие посты, туториалы

-Интервью с именитыми разработчиками

-Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
-Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ НУЖНО ПУБЛИКОВАТЬ:

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

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

-Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

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

-Выдавать чужой труд за свой

Подобные посты будут удалены, а авторы таких постов будут внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

-Пост должен быть содержательным и интересным для пользователей

-Ссылка должна размещаться непосредственно в начале или конце поста и только один раз.

-Cсылка размещается в формате: "Страница игры в Steam: URL"

Подробнее
+3

переходы бы сгладить между типами земли

раскрыть ветку 1
0

Уже стоит в планах.

+2

Нельзя растягивать текстуру разрушения!

У тебя пиксельная графика без сглаживания, ну какое растягивание в самом деле?

Я бы сделал спрайты трещин для разрушения стен (для каждой из 16 вариантов поворота), но для объектов нужны какие-то индивидуальные варианты отображения поломок.

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

Двери стали лучше, хотя кончено у них всё же другая проекция, не такая как у стен. Но смотрится хорошо. Лучшее решение для минимальных трудозатрат.

раскрыть ветку 1
+1

Это временное решение.
В планах переписать разрушение на шейдеры.

+1

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

раскрыть ветку 6
0

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

Иллюстрация к комментарию
раскрыть ветку 5
+1

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


Весь мир представлен как двумерный массив. Суть в том, что проверялось положение игрока 10 раз в секунду например, можно к скорости игрока привязать частоту проверки. Если int от положения изменялся по сравнению с предыдущим значениям, то перестраивались границы прорисовки массива на экран. Массив размером с экран + пол экрана в каждую сторону или около того (для корректного просчета света за экраном). ну и внутри "экранного" массива уже просчитывалась видимость. Правильнее может конечно было использовать какую-нибудь хэш-таблицу, но производительность просто зашкаливала. Само собой батчинг и т.д. В итоге отрисованный без оптимизации мир, даже размером с экран, выдавал меньше фпс, чем сделанный вышеописанным способом

раскрыть ветку 3
0

Всё просто если опустить структуру и некоторые архитектурные решения, то отрисовка идет так:
1) Получаем чанк в котором игрок.
chunkX = player.x / tileSize / chunkSize;

chunkY = player.y / tileSize / chunkSize;

2) Устанавливаем камеру на игрока.
camera.x = player.x;

camera.y = player.y;


3) Рисуем 3*3 чанка, игрок всегда в центральном.

4) При отрисовке чанка мы проверяем каждый тайл на видимость камеры.
Если тайл видно заносим его в батч.

5) Тоже самое делаем с объектами.

6) Рендерим батчи.

раскрыть ветку 2
+1

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

раскрыть ветку 3
0

Не совсем понял. Всмысле крутить спрайт?
Можно пример?

раскрыть ветку 2
0
Судя по скрину, теперь текстура разрушения вылезает за границу объекта справа.
раскрыть ветку 1
0

Она и раньше вылазила.

0

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

раскрыть ветку 3
0

Ну, например, в Legend of Zelda - A Link to the Past сделано именно так, как у автора.

Иллюстрация к комментарию
раскрыть ветку 2
0

Опять самописный движок?

раскрыть ветку 1
0

Вроде.

-2
По-моему игра выглядит блёкло. Погляди основы цветовой теории.
раскрыть ветку 2
+4

Думаю, что до графики еще далеко.

раскрыть ветку 1
Похожие посты
67

Игра на коленке за год. Неделя 11

Игра на коленке за год. Неделя 11 Инди игра, Gamedev, Разработка, Игры, Unity
Игра на коленке за год. Неделя 11 Инди игра, Gamedev, Разработка, Игры, Unity
Игра на коленке за год. Неделя 11 Инди игра, Gamedev, Разработка, Игры, Unity
Показать полностью 2
45

Will&Reason. Разработка - Март

Will&Reason. Разработка - Март Разработка, Gamedev, Игры, Концепт, Стратегия, Фэнтези, Цивилизация, Длиннопост
Will&Reason. Разработка - Март Разработка, Gamedev, Игры, Концепт, Стратегия, Фэнтези, Цивилизация, Длиннопост
Will&Reason. Разработка - Март Разработка, Gamedev, Игры, Концепт, Стратегия, Фэнтези, Цивилизация, Длиннопост
Will&Reason. Разработка - Март Разработка, Gamedev, Игры, Концепт, Стратегия, Фэнтези, Цивилизация, Длиннопост
Показать полностью 3
68

ANEID | RPG #2 — Новые механики и улучшение старых

ANEID | RPG #1 — делюсь первыми геймплейными наработками проекта
36

Игра на коленке за год. Неделя 10

Игра на коленке за год. Неделя 10 Инди игра, Gamedev, Разработка, Игры, Unity
132

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

Не взяли архитектором - делаю игру про архитектуру, чтобы строить из цифрового бетона Компьютерные игры, Инди игра, Инди, Архитектура, История, Строительство, Разработка, Gamedev, Unity, Unity3d, Гифка, Длиннопост
Не взяли архитектором - делаю игру про архитектуру, чтобы строить из цифрового бетона Компьютерные игры, Инди игра, Инди, Архитектура, История, Строительство, Разработка, Gamedev, Unity, Unity3d, Гифка, Длиннопост
Не взяли архитектором - делаю игру про архитектуру, чтобы строить из цифрового бетона Компьютерные игры, Инди игра, Инди, Архитектура, История, Строительство, Разработка, Gamedev, Unity, Unity3d, Гифка, Длиннопост
Не взяли архитектором - делаю игру про архитектуру, чтобы строить из цифрового бетона Компьютерные игры, Инди игра, Инди, Архитектура, История, Строительство, Разработка, Gamedev, Unity, Unity3d, Гифка, Длиннопост
Не взяли архитектором - делаю игру про архитектуру, чтобы строить из цифрового бетона Компьютерные игры, Инди игра, Инди, Архитектура, История, Строительство, Разработка, Gamedev, Unity, Unity3d, Гифка, Длиннопост
Не взяли архитектором - делаю игру про архитектуру, чтобы строить из цифрового бетона Компьютерные игры, Инди игра, Инди, Архитектура, История, Строительство, Разработка, Gamedev, Unity, Unity3d, Гифка, Длиннопост
Не взяли архитектором - делаю игру про архитектуру, чтобы строить из цифрового бетона Компьютерные игры, Инди игра, Инди, Архитектура, История, Строительство, Разработка, Gamedev, Unity, Unity3d, Гифка, Длиннопост
Показать полностью 6
30

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

Нюансы в разработке игры понятным для каждого языком Gamedev, Разработка, Google Play, Оптимизация, Инди игра, Гифка, Длиннопост

Ну для начала я просто взял и посчитал примерное количество объектов которые помещаются на экран с небольшим запасом. Создал пулы обетов и поместил их в массивы.
Нюансы в разработке игры понятным для каждого языком Gamedev, Разработка, Google Play, Оптимизация, Инди игра, Гифка, Длиннопост
Нюансы в разработке игры понятным для каждого языком Gamedev, Разработка, Google Play, Оптимизация, Инди игра, Гифка, Длиннопост
Показать полностью 2
49

Quiet Farm - Я сделал своего собственного мимика

Quiet Farm - довольно трэшнячковый, но в то же время серьезный симулятор коровы с элементами РПГ. Тут даже есть небольшой, но неоднозначный сюжет, который подарит игроку уникальный игровой опыт. Тебе предстоит гонять за корову в открытом мире в поисках редких растений, решать разные абсурдные головоломки и задачи, бороться с хищниками и монстрами, крафтить молоко и фекалии внутри проработанного организма коровы. Всего и не перечислишь:)
Quiet Farm - Я сделал своего собственного мимика Игры, Gamedev, Симулятор, Корова, Видеоигра, Видео, Трэш, Ферма, Unreal Engine 4, Инди игра, Юмор, Разработка, Животные, Домашние животные, Растения, Монстр, Внезапно, Длиннопост, Инди, Steam, Гифка
Quiet Farm - Я сделал своего собственного мимика Игры, Gamedev, Симулятор, Корова, Видеоигра, Видео, Трэш, Ферма, Unreal Engine 4, Инди игра, Юмор, Разработка, Животные, Домашние животные, Растения, Монстр, Внезапно, Длиннопост, Инди, Steam, Гифка
Quiet Farm - Я сделал своего собственного мимика Игры, Gamedev, Симулятор, Корова, Видеоигра, Видео, Трэш, Ферма, Unreal Engine 4, Инди игра, Юмор, Разработка, Животные, Домашние животные, Растения, Монстр, Внезапно, Длиннопост, Инди, Steam, Гифка
Quiet Farm - Я сделал своего собственного мимика Игры, Gamedev, Симулятор, Корова, Видеоигра, Видео, Трэш, Ферма, Unreal Engine 4, Инди игра, Юмор, Разработка, Животные, Домашние животные, Растения, Монстр, Внезапно, Длиннопост, Инди, Steam, Гифка
Quiet Farm - Я сделал своего собственного мимика Игры, Gamedev, Симулятор, Корова, Видеоигра, Видео, Трэш, Ферма, Unreal Engine 4, Инди игра, Юмор, Разработка, Животные, Домашние животные, Растения, Монстр, Внезапно, Длиннопост, Инди, Steam, Гифка
Quiet Farm - Я сделал своего собственного мимика Игры, Gamedev, Симулятор, Корова, Видеоигра, Видео, Трэш, Ферма, Unreal Engine 4, Инди игра, Юмор, Разработка, Животные, Домашние животные, Растения, Монстр, Внезапно, Длиннопост, Инди, Steam, Гифка
Quiet Farm - Я сделал своего собственного мимика Игры, Gamedev, Симулятор, Корова, Видеоигра, Видео, Трэш, Ферма, Unreal Engine 4, Инди игра, Юмор, Разработка, Животные, Домашние животные, Растения, Монстр, Внезапно, Длиннопост, Инди, Steam, Гифка
Показать полностью 6 2
51

Хочу подарить две книги

Хочу подарить две книги Книги, Разработка, Игры, Дизайн, Gamedev, Отдам
print("Общий салам криэйторам игр!")
Хочу подарить две книги, которые посвящены разработке игр:

35

Rabbit Hole - последние новости разработки

36

Древнее божество 3

Древнее божество 3 Арт, Разработка, Gamedev, Игры, Концепт, Стратегия, Монстр
54

TerraPath #20

TerraPath #20 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Длиннопост
TerraPath #20 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Длиннопост
TerraPath #20 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Длиннопост
TerraPath #20 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Длиннопост
TerraPath #20 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Длиннопост
TerraPath #20 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Длиннопост
TerraPath #20 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Длиннопост
TerraPath #20 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Длиннопост
TerraPath #20 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Длиннопост
Показать полностью 8
38

TerraPath #11

TerraPath #11 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Гифка, Длиннопост
TerraPath #11 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Гифка, Длиннопост
TerraPath #11 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Гифка, Длиннопост
TerraPath #11 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Гифка, Длиннопост
TerraPath #11 Gamedev, Разработка игр, Инди-Разработка, Terrapath, Indigamedev, Разработка, Гифка, Длиннопост
Показать полностью 4
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: