Доканали меня блюпринты и решил что пора поставит пару крестов на проекте:)
Собственно проблема вот в чем
1) менять основной проект с блюпринтов на с++ не выход
2) плагины выход, но они не умеют в хот релоад
3) модули умеют в хот релоад, но см пункт 1
Чтобы было "удобно" разрабатывать и тестить сделал еще два проекта(с основным три)
1: с++ проект для разработки модуля
2: с++ проект для сборки из модуля плагина
В одном проекте нельзя сделать и плагин и модуль с общим кодом, по этому два.
Ну и это напрягает для билда плагина перекидывать код из проекта(1) с модулем(симлинк не сработал) в проект(2).
Есть ли готовые(инетегрированные) решения этой проблемы или я что то не так делаю?
В идеале 1 кнопка build+deploy без запуска второго проекта.
Пункт 1 откуда взялся? Есть какие-то ограничения?
Mephistopheles
> Есть ли готовые(инетегрированные) решения этой проблемы или я что то не так
> делаю?
Да. Писать код в модуле. Это ничем не отличается от написания кода в плагине, кроме того что он не в плагине. Код ровно такой же. При желании потом в плагин переносится одним движением.
@!!ex
> Пункт 1 откуда взялся? Есть какие-то ограничения?
Да, студия нужна будет всей команде, художнику, звуковику...
@!!ex
> При желании потом в плагин переносится одним движением.
Вот это и хочу автоматизировать. Хочу из проекта с модулем код одной кнопкой собрался в плагин и задеплоился в основной проект.
Mephistopheles
> Да, студия нужна будет всей команде, художнику, звуковику...
Вот это, кстати, интересный вопрос, нужна ли полноценная студия? Или же будет достаточно тулчейна?
martiandweller
> Вот это, кстати, интересный вопрос, нужна ли полноценная студия? Или же будет
> достаточно тулчейна?
А хз, в любом случае не хочу разбираться почему у них там что то не компилится\не запускается\крашится и тд. Сбилженный плагин наше все:)
Ну походу придется билд скрипт писать.
Mephistopheles
> Да, студия нужна будет всей команде, художнику, звуковику...
Нет не нужна. Звуковикам и прочим контентщикам передаётся DLL.
Который находится в таком формате: Project/Binaries/Win64/UE4Editor-Project-XXXX.dll
Редактор автоматически делает HotReload для DLL в таком формате, если он появляется в папке.
Например эту DLL можно передавать через контроль версий проекта.
А контроль версий для кода делается отдельно, он не нужен контентщикам.
PS: Я как раз сейчас занимаюсь пилением собственного контроля версий и тулзов для командной разработки проектов на UE4.
gamedeveloper01
> Нет не нужна. Звуковикам и прочим контентщикам передаётся DLL.
> Который находится в таком формате:
> Project/Binaries/Win64/UE4Editor-Project-XXXX.dll
Я пробовал этот вариант, оно не адекватно себя ведет - время от времени просит пересобрать, в причины не вникал, сразу отбросил этот вариант. Считаю что если что то не работает out of box и требует особой погоды на марсе применять это не стоит, себе дороже выйдет.
А не, я либу модуля подсунуть пытался, а не проекта. Попробую спс
Хотя идея с плагином мне все же болше нравится, за счет полного отделения кода от контента.
Mephistopheles
> Хотя идея с плагином мне все же болше нравится, за счет полного отделения кода
> от контента
Меня как то плагины никогда не интересовали (они нужны если ты делаешь стороннюю библиотеку для третьих лиц, а не для своей команды), но подозреваю что для них может сработать тоже самое, если DLL будет в следующем формате:
Project/Plugins/PluginCategory/PluginName/Binaries/Win64/UE4Editor-PluginNameEditor-XXXX.dll
Ну или что то подобное.
Mephistopheles
> Хотя идея с плагином мне все же болше нравится, за счет полного отделения кода
> от контента.
Да нет никакиой разницы плагин или модуль.
Они работают практически идеентично, только код в разных местах лежит и всё.
Также передаются dll, также модуль от модуля можно делать независимыми.
@!!ex
> Да нет никакиой разницы плагин или модуль.
Модули работают не стабильно, просят пересобирать время от времени.
Mephistopheles
> Модули работают не стабильно
Нет такого. Если никто не трогает исходники и не меняется версия движка - пересборка не инициируется.
С плагинами тоже самое.
@!!ex
> Нет такого. Если никто не трогает исходники и не меняется версия движка -
> пересборка не инициируется.
у меня не вышло сделать так чтобы контенщикам не нужно было пересобирать модуль