Living Layers
4 поста
4 поста
Оптимизация, доработка CI и покрытие тестами
Реализация функционала, запланированного для версии Alpha 2, формально завершена.
Прогресс задач Alpha 2: 79/79 (100%).
Общий статус: Проект переведён в фазу стабилизации и рефакторинга перед началом работы над механиками Alpha 2.1 (God Mode & Possession).
Доработаны механики взаимодействия динамических объектов с воксельным миром.
Impact Fracture & Dust VFX: Реализована система визуальных эффектов при разрушении.
При сильном ударе FallingVoxelChunk теперь может раскалываться на части.
Добавлен спавн осколков.
Сейчас система однопоточная. При последующих оптимизациях надеюсь на стабилизацию FPS.
Static Colliders Merge: Добавлен бенчмарк для замера эффективности стратегий объединения коллайдеров.
Pawn Orbit Shoot: Реализован сценарный бенчмарк, симулирующий обстрел башни, для замера просадок FPS при динамическом обновлении геометрии.
Идёт масштабная доработка сборочных скриптов и окружения тестирования.
Статистика кодовой базы:
Общий объем: ~37k строк кода.
Тестовый код: ~12.5k строк (33.3% от общего объема).
E2E Testing: Расширен набор сквозных тестов - сценарии загрузки и сохранения мира.
Для оптимизации процесса тестирования и устранения технического долга внедрена система Coverage Ranking. Вместо слепого покрытия тестами всего кода подряд, разработан эвристический алгоритм, определяющий приоритетность модулей для написания тестов.
Алгоритм ранжирования: Реализована утилита в составе локальной CI, которая анализирует исходный код и ранжирует дыры в покрытии.
Формула приоритета: Оценка базируется на метриках сложности и маркерах риска, распределяя заявки на покрытие по S-корзинам и ранжируя по ROI.
Также можно оценивать частоту изменений через git историю (W_churn) и сделать это модификатором ранжирования, но я решил не включать это в текущую реализацию.
CI теперь выводит список "what to test next" — список участков кода которые дадут наибольшую эффективность покрытия тестами.
Разово поддержать проект можно лайкнув девблог и оставив комментарий.
Альфа 2: январь 2026
Альфа 2.1: январь 2026,
открытие странички на Sponsr — доступ к закрытой альфе
Страницы в магазинах: февраль-март 2026
Демо: весна-лето 2026
Ранний доступ: 2026-2027
Наиболее сложные инженерные решения заложены в Альфу 3 (навигация), Альфу 4.1 (визуал) и Альфу 6 (слои).
Успешное прохождение этих этапов — гарантия технической возможности проекта.
Поехали 🫠
Неделя была насыщенной. Создаётся фундамент проекта и были крупные правки краткосрочных планов и дополнения долгосрочных.
Под конец недели Альфа 2 разрослась на 8 задач, и это при том, что часть задач были вынесены в последующие версии.
Большая часть второстепенных задач была выделена из планов на Альфу 3 в новую Альфа 3.1; запланированы дополнительные R&D в Альфа 6.
Произведён рефакторинг кодовой базы с выделением ядра симуляции.
Изоляция логики: Системы управления воксельным миром, физикой и игровой логикой отделены от систем рендеринга, ввода и UI.
Local Server: Реализована модель «клиент-сервер» внутри одного процесса. Симуляция мира отвязана от частоты кадров рендеринга, что обеспечивает детерминированность физики независимо от производительности графической подсистемы.
Command Queue: Взаимодействие клиента с миром переведено на очередь команд.
значения нагрузки CPU в профайлере ниже реального
Завершена реализация базовой воксельной песочницы с размером чанка 32×32×32 и размером вокселя 0.1м.
Terrain Pages: Внедрена система объединения мешей и коллайдеров чанков в более крупные структуры. Это позволило существенно сократить количество вызовов отрисовки и физических тел в сцене.
Greedy Meshing: Реализован алгоритм жадной генерации сетки для оптимизации геометрии.
Time-Sliced Remeshing: Обновление геометрии чанков переведено в режим с распределением нагрузки по кадрам. Это частично устраняет фризы основного потока при массовых изменениях ландшафта.
Прозрачность: Добавлена поддержка прозрачных материалов с корректным отсечением невидимых граней на стыке с непрозрачными блоками.
Интегрирован физический движок первого уровня для обработки твёрдых тел и персонажей.
Гибридная архитектура: Реализовано взаимодействие статической воксельной сетки с динамическими объектами. При разрушении вокселей генерируются физические обломки, наследующие форму и материал.
Character Controller: Реализован кинематический контроллер пешки с базовыми механиками передвижения и прыжков.
Collision Optimization: Для статической геометрии мира используются оптимизированные compound-коллайдеры, генерируемые на основе воксельных данных, вместо используемых ранее тяжелых trimesh-коллайдеров.
значения нагрузки CPU в профайлере ниже реального
Реализован минимальный вертикальный срез геймплея Alpha 2.
Режимы управления: Внедрена машина состояний для переключения между режимом бога и режимом вселения.
Взаимодействие: Реализована механика рэйкастов для редактирования мира. В режиме персонажа взаимодействие ограничено дистанцией.
Разрушаемость: Удаление блоков корректно обновляет граф сцены, перестраивает коллайдеры и спавнит обломки.
Benchmark Module: загрузка мира, стресс-тесты, A/B.
Profiling Overlay: Добавлен второй уровень внутриигрового оверлея. Метрики CPU/GPU, количество активных чанков и физических тел, время кадра симуляции.
E2E Testing: Развёрнут фреймворк headless-тестирования.
Dev Screenshots: Настроена система автоматического создания скриншотов ручного тестирования.
Разово поддержать проект можно плюснув девблог и оставив комментарий.
Альфа 2: конец 2025
Альфа 2.1: январь 2026,
открытие странички на Sponsr — доступ к закрытой альфе
Страницы в магазинах: февраль-март 2026
Демо: весна-лето 2026
Ранний доступ: 2026-2027
Сайт проекта: livinglayers.ru
Наиболее сложные инженерные решения заложены в Альфу 3 (навигация), Альфу 4.1 (визуал) и Альфу 6 (слои).
Успешное прохождение этих этапов — гарантия технической возможности проекта.
Правило одного процента гласит: начни с чего-то очень малого, но каждый день повышай план работ на 1%.
Невозможно опубликовать пост с картинками в архиве по ссылке.
https://yadi.sk/d/1BWj0LkTbp3yGQ
Либо бесконечный поиск дубликатов, либо при отправке "Ошибка. Картинка не найдена".
Проблема в картинках или вам нужна дополнительная информация?
Александр Литреев пишет в ответ на уведомление РКН:
IPv6 - более новая версия протокола для связи через IP-адресацию.
В настоящее время в основном используется IPv4, а IPv6 пока ещё мало распространён.