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

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

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

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

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

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

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

Как-то так.

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

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

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

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

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

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

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

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

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

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

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

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

понедельник, 10 июля 2023 г.

UTextureRenderTarget2D и UTexture2D

 Сегодня узнал что UTextureRenderTarget2D::ConstructTexture2D и UTextureRenderTarget2D::UpdateTexture2D  работают только из редактора. Естественно в документации про это ни слова.

... Потихоньку пора брать свои слова о Bitrix обратно. Тут уж явно не они такие - лучшие практики в области составлении документации в действии.

среда, 28 июня 2023 г.

Если появляется странная лишняя сфера в Unreal

 Вот тут пишут что это может быть из-за некорректных настроек и отсутствия Player Start в сцене. Увы, стоит учесть.