1NTERRUPTOR

1NTERRUPTOR 

Разработчик модификации The Third Prophecy

3subscribers

15posts

Showcase

1
goals2
0 of 150 paid subscribers
Поддержка основного развития проекта - ваша подписка позволяет мне посвятить проекту максимум времени и реализовать весь задуманный контент.
$0 of $886 raised
Благодаря вашим донатам я могу активно работать над проектом, ускоряя выпуск рабочей демо.

Внутренняя консоль логирования - шаг к стабильному технодемо

Помимо обычных методов отладки, такие как отладка в Visual Studio и вывод текста на экран, в какой-то момент стало ясно, что их недостаточно.
По мере усложнения систем стало труднее быстро находить конкретные объекты в памяти, отслеживать состояние внедрённых функций и разбирать причины сбоев. Обычный стек вызовов не всегда даёт полную картину того, что происходило внутри игрового цикла непосредственно перед крашем.
Первым шагом стало создание вспомогательных окон с отладочной информацией через API ReShade:
Теперь я могу привязать вывод к выделенному юниту и одним нажатием скопировать адрес соответствующей структуры в памяти процесса. Это позволяет сразу продолжить анализ в Cheat Engine. Это значительно ускоряет процесс отладки, когда нужно найти конкретный объект среди сотен остальных.
Однако этого оказалось недостаточно. Разбор crash dump'ов вручную - медленный и неудобный процесс. Поэтому была реализована отладочная консоль.
Консоль отслеживает поток выполнения именно моего кода внутри кода игры: фиксирует вызовы внедрённых функций, их результаты и ключевые события.
Module показывает источник записи - поток игры или подключенная DLL. Это помогает выявлять ошибки многопоточности.
По Timestamp можно отслеживать проблемы производительности
Dump сохраняет содержимое каналов в текстовый файл.
А кнопка Freeze/Continue позволяет приостановить обновление консоли, чтобы "заморозить" вывод в конкретный момент времени - бывает полезно получить "срез" событий в произвольный момент.
А теперь самое интересное - три канала логирования: Current, Released и Accumulated.
Current содержит записи текущей итерации игрового цикла. В реальном времени этот канал совершенно бесполезен - он постоянно "мелькает" от быстрых обновлений. Но при краше именно здесь находится последняя запись перед сбоем.
Released хранит записи предыдущей итерации цикла. Это особенно полезно в переходных состояниях. Например, при смене меню:
Current показывает события уже нового кадра, а Released - состояние системы непосредственно до перехода. В итоге получается картина “до/после”.
Accumulated используется для редких событий - инициализация, загрузка уровня и т.д. По этому каналу можно быстро определить, на каком этапе произошёл сбой.
При вылетах игры дампы всех трёх каналов будут сохраняться автоматически. Это позволит точнее воспроизводить ошибки и ускорит их исправление - в том числе после выхода технодемо.
Вы сможете создавать багрепорты и прикладывать к ним логи в специальном канале дискорд-сервера проекта.
Эта система - не просто удобство разработки. Это инфраструктура, которая позволяет двигаться к стабильной технодемо без накопления скрытых критических ошибок и снижает риск неожиданных критических сбоев на этапе публичного тестирования.
Subscription levels3

Хронист

$4.5 per month
Для тех, кто хочет следить за разработкой и поддерживать проект.
Вы получаете доступ к регулярным отчётам о ходе разработки, эксклюзивным материалам (концепты, наработки, идеи) и участию в голосованиях. Также вы получаете роль Boosty supporter на Discord-сервере проекта.
+ chat

Испытатель Круга

$10.4 per month
Вы получаете:
- Все из уровня Хронист
- Доступ к тестированию незавершённых билдов (новые фичи и изменения) через закрытый Discord-канал
- Доступ к подробному журналу изменений
- Роль Circle Trialist на Discord-сервере
- Упоминание в титрах YouTube-видео проекта
Внимание: тестирование не равно раннему доступу. Незавершённые билды могут содержать ошибки и баги и не предназначены для комфортного игрового опыта.
+ chat

Пророк

$22.2 per month
Вы получаете:
- Все из уровней Хронист и Испытатель Круга
- Ранний доступ к стабильным обновлениям и релизам
- Приоритетное общение с разработчиком в закрытом Discord-канале
- Доступ к todo-листу текущей стадии разработки
- Возможность предлагать и обсуждать идеи для внедрения в закрытом Discord-канале.Внимание: если вы не принимаете, что финальное решение при обсуждении фичи всегда остаётся за автором проекта - этот уровень не для вас
- Роль The Prophet на Discord-сервере
- Упоминание в титрах релизов
+ chat
Go up