пятница, 17 ноября 2023 г.

Unreal Font Cache Flush

 Чтобы кэш шрифтов при оффлайновом построении не сбрасывался из-за большого числа надписей с разными шрифтами, лучше поднимать количество возможных атласов через Slate.MaxFontAtlasPagesBeforeFlush и Slate.MaxFontNonAtlasTexturesBeforeFlush . Их нет в официальной доке, но как минимум в 5.2+ они есть.

суббота, 28 октября 2023 г.

Апдейт по разработке hrtp-demake

Маленький технический апдейт.

Второй босс-файт готов, остались исключительно технические вещи:

  • Сделать адекватный экран загрузки, чтобы загрузка не выглядела стрёмно
  • Оптимизация загрузки/выгрузки ресурсов (сейчас всё жирно грузится при старте, реально это 13 с, но память жрёт будь здоров, олдовые машины будут не рады).
  • Отдельно подтюнить загрузку экрана победы
Есть ещё мелкие задачи (подготовка следующего акта, утащить такие девлоги на отдельный хостинг), но они некритичны.

Пока займусь первым.

вторник, 26 сентября 2023 г.

Мелкие заметки по архитектуре для 2D-игр

Поймал себя на мыслях о нескольких вещах. Это чисто техническая заметка.

Как-то надо у себя упрощать добавление/создание спрайтов на сцене. Сейчас часто это скриптами делается и поля приходится создавать вручную. Так-то норм, но... медленно что-то.  И много писанины в итоге. Хочется упрощать, но возни всё равно пока много. Возможно нужны дополнительные конечные автоматы для переключения анимаций.

Ещё смущает, что анимации всяких сложных действий внутри игры превращаются в набор сложных if'ов, и есть ощущение, что стоит подумать о всяких composability для корректности.

Кроме того, для всяких шмапов имеет смысл задавать не параметры полёта пуль, а состояние условного поля в момент времени t, исходя из систем пуль, храня что-то вроде набора состояний жив/мёртв. Это позволяет решить ситуации когда FPS просаживается или подскакивает и, в целом, получше решить проблему. Т.е. хранить не функции зависимости скорости, ускорения от момента времени, а строго позиции от времени и по ней пересчитывать, включая всякие появляющиеся пули. Но, сейчас это делать не хочется, ибо много переписывать, хотя кое-где уже такое по сути есть.

Ещё бы сделать какой-нибудь батчинг для анимированных по текстурным координатам спрайтов, к примеру, пихнуть в UBO условный индекс в текстуре, а потом анимировать его. Ну и может быть для задержек/опережений иметь дополнительный буфер смещений. В теории должно дать ускорение, но увы, это надо править в самом saddy. 

Как-то так.

среда, 6 сентября 2023 г.

FProperty::HasMetaData в Unreal тоже выпиливается в финальной сборке

И вот это совсем какое-то говно. У меня только один вопрос: зачем говорить, что у вас есть рефлексия, если вы просто выпиливаете часть аннотаций при сборке. 

вторник, 5 сентября 2023 г.

Постоянный попаданец

В отпуске после прочтения хайнлайновского "Иова или осмеяние справедливости" пришла нехитрая и довольно странная мысль. Сейчас довольно популярен жанр исекая или попросту "попаданчества" с несложной фабулой вида "попал в другой мир и дальше пошёл гриндить и идти к успеху". Понятное дело, что это эскапизм, но пост не про это.

понедельник, 28 августа 2023 г.

Затруднения и hrtp-demake

Я уже давно ничего не писал про игру, и это связано со множеством разнообразных изменений, которые сильно замедлили темп разработки. Это и занятия спортом (стало необходимо), и смена работы, и, к сожалению, неприятные личные события.

четверг, 17 августа 2023 г.

Небольшая заметка про cppfront

 Недавно набрёл на доклад Герба Саттера на тему cppfront