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

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

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

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

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

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

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

Как-то так.

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

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

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

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

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

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