5

RelictEngine: DevLog 20250323

Посты пока все-еще короткими логами

Важное: Отпуск закончился, теперь времени будет меньше. Думаю вернусь к графику один пост в неделю/две

Короткий список изменений:

  • Окончательно приведен в порядок метод Demangle для формирования имен классов с учетом кроссплатформенности

    Вернулся в итоге к вызовам abi::__cxa_demangle в linux, который, увы, невозможно использовать на этапе компиляции, но с другой стороны он нам там теперь особо и не нужен. Для windows (msvc) проблем изначально не было, т.к. typeid возвращает сразу нормальное название (нужно лишь отбросить первые 6 символов)

  • Частично добавлена возможность передавать объект, связанный с объектом C++ из Lua в основную программу

    Пока что на вход можно подать только указатель на базовый Object (т.е. надо использовать dynamic_cast/reinterpret_cast в теле C++ функции, чтобы получить нужный нам объект). Думаю, как реализовать нормальное приведение к нужному типу.

  • Частично добавлена возможность передавать объекты из C++ в Lua в качестве возвращаемого значения вызванной функции

    Объект передается (вылетает по assert, если класс возвращаемого объекта не был зарегистрирован), но нужно придумать, как проверить, есть ли экземпляр этого объекта уже в стеке Lua, чтобы не плодить сущности.

  • Исправлен недочет имплементации ScriptClass<ObjectBasedClass>, при которой класс объекта не регистрировался в Lua, в случае, если у него нет ни одного функционального поля

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"