RelictEngine: DevLog 20250324
пост все еще короткими логами (но уже скоро)
Короткий список изменений:
Исправлено формирование ObjectName в случае, если Класс находится в Namespace.
В этом случае у Объекта появляется префикс из первых букв всех неймспейсов в которые он входит. Наример: Если мы создали класс Game::Characters::Humanoid, то имена экземпляров этого класса будет выглядеть как GCHumanod_#, где # порядковый номер объекта (или S, в случае, если класс имеет флаг NoInstantiate, или D для DefaultClassObject). Имя класса ClassName сохранит полное квалифицированное имя, т.е. Game::Characters::Humanoid
Добавлены Namespace в Lua
Lua теперь формирует свою связанную с классом таблицу с оглядкой на C++ namespace этого класса. Все namespace формируются таблицами (в прочим как и почти все в Lua). Например, если мы регистрируем класс Game::Characters::Humanoid, то в Lua он создаcт таблицы Game, Game.Characters и Game.Characters.Humanoid, где последняя и будет нашим классом.
Устранены утечки памяти стека Lua
Пока делал namespace обнаружил, что не все поля удаляются из стека после их использования. исправил.
По сути осталось сделать только создание объекта из Lua, их удаление, и поиск по созданным объектам в C++ (не думаю, что стоит морочится и сразу прокидывать их в скрипт при создании на стороне C++). И на этом основная работа в общем-то закончена. Конечно, нужно будет еще посмотреть, что из luaL библиотек выбросить (скорее всего все). Потихоничку делать Lua обертку для glm математики, ну и прочее (тики, евенты, итд). Но это уже можно будет все сделать по ходу дела по необходимости. Отдельно еще стоит задача реализации Lua RAT ассетов, но это будет сильно позже, когда RAT формат в принципе будет введен в движок.
Лига Разработчиков Видеоигр
8.9K постов23.1K подписчиков
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"