TerraPath #17
Кратко о содержании сегодняшнего поста:
Объекты больше одного тайла.
Глина и её генерация.
Анимация костра и kiln'а.
Улучшение описание предметов.
В игру были добавлены объекты которые могут занимать больше одной клетки.
Для этого потребовалось серьезно улучшить код самих объектов, а также код чанка.
Первым таким объектом стал Kiln - глиняная печь.
Основная сложность в том что объект можно выступать за пределы чанка и занимать клетки еще не загруженных чанков.
Данную проблему решил я очень просто, когда объект устанавливается идет проверка вышел ли объект за пределы чанка, если да, то мы записываем его в специальный массив.
И когда соседний чанк будет добавлен, он обновит всех своих соседей на выступающие объекты.
Изначально может показаться что нужно будет обновлять 8 соседей при каждом добавлении нового чанка, но их можно сократить до 4, т.к объкты начинаются с нижнего левого угла и тем самым никогда не могут выйти за левую, нижнею и лево-нижнею границу чанка:
Красный это печи, синий это точки привязки объектов.
Зелёный это текущий чанк.
Серый это другие чанки, которые могут занимать объекты из этого чанка, если они больше одной клетки.
Как можно догадаться в такой концепции есть ограничение, объект максимум может быть 16 клеток, но у меня такие не планируются, так что всё нормально.
Глина
В игру была добавлена глина, а также первый контент связанный с ней.
Её генерация происходит так:
Берем наши любимые горы:
Добавляем новый шум с значениями:
octaves = 4;
persistence = 0.95;
И если результат шума ниже < 0.45f и тайл был горой, то тайл становится глиной.
Применяем это к основной карте:
Как по мне получилось очень классно :з
Анимация костра и kiln'а:
В планах есть добавить чтобы огонь плавно менял свое состояние.
Кстати изначально костры и Kiln не горят, их нужно разжечь с помощью разжигателя.
Улучшение описание предметов
1) Вывод статов у инструментов и описание к кирке как ломать пол:
2) Вывод шанса поджога у поджигателя:
3) Является ли данный предмет материалом:
А на этом всё, спасибо, что дочитали.
Также не пропустите прошлые посты:
https://pikabu.ru/profile/GooDCrafter
Ссылка на группу в вк(есть играбельная демка):
А также:
1) Исправил баг с мерцанием глобального освещения, когда весь мир становился на секунду фиолетовым, ошибка была в погрешностях float'а в расчётах времени.
2) Комнады в чате.
Пока в виде возможности менять время в игре.
3) Исправил баг с крашем из-за получения здоровья у несуществующего блока при отрисовке повреждения.
4) Статистика уничтоженных блоков.
5) Инвентарь у объектов (ящики, сундуки и тд).
6) Передача инвентаря объектов по сети.
и многое других мелких исправлений и фиксов.
Я вот думаю стоит ли публиковать какой контент я добавил?
Или же лучше оставить его на исследование вам?
А писать только больше про технические стороны?
PS: Простой домик из первых строительных блоков (ветки + палочки) :з










Лига Разработчиков Видеоигр
9.9K постов23.4K подписчика
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"