Полезное

Мы Вконтакте

Discord канал

#
Аватара пользователя
Пользователь
Сообщения: 3
Хочу впихнуть свой фреймворк в Unreal Engine. Только у меня необычная механика.
Я вам расскажу как игровой цикл происходит у меня, а вы может быть подскажете как гармонично вписать его в Unreal Engine.
Да и оговорюсь сразу - конечная цель не игра а плагин к Unreal Engine.

В общем мой фреймворк должен предоставлять разработчику возможность строить игры на просторах вселенной с реальными расстояниями и процедурной генерацией. Вселенная представляет из себя иерархическую структуру миров.

Для того чтобы все завертелось нужно создать мир -
AstroWorld *world = new AstroPlanetoid();

и контроллер физики юнитов -
AstroUnitController *controller = new AstroUnitController();

Далее создаем юнита и даем указатель контроллеру -
AstroUnit* MyUnit = new AstroUnit(world);
controller->AddUnit(MyUnit);


Если коротко то все, далее на каждом тике обновляем мир и контроллер -
world->Update();
controller->Update();

В старой версии моего собственного движка отрисовка происходила следующим образом:
Сцена привязывалась к конкретному юниту и через него на каждом кадре получала указатель на юнитов находящихся в зоне видимости. Юнит-носитель сцены помещался в центр кадра и относительно него все остальные. Сцена как бы вместе с юнитом путешествует по вселенной .

Смотрите в чем тут тонкость -
кто-то должен руководить тем что может видеть игрок, создавать и перемещать на уровне PawnAstroUnit-ов .

Как это реализовать на Unreal Engine?
Можно ли перегружать ULevel или UWorld? Будет ли толк от перегрузки AGameMode?

Прошу вашей помощи.
Аватара пользователя
Тех. администратор
Сообщения: 367
Похоже терминология, принятая для вашего движка сильно отличается от принятой в UE4. Предагаю вам просто опубликовать код - из него будет понятно как именно у вас отобраны абстракции, и как их удобнее переложить на UE4.
Пока мне кажется что вы могли бы обойтись AActor с кастомным компонентом рендера и Pawn/PlayerController. Нужно ли вам действительно в каком-либо виде наследоваться от UWorld - непонятно.
Аватара пользователя
Тех. администратор
Сообщения: 367
AGameMode, думаю, не лучший выбор для перегрузки.

Насчёт рендеринга - в ue4 он выполняется в отдельном треде, который остаёт от геймфрейма на пару кадров. Обращение из рендертреда в геймтред напрямую не производится, данные передвются между тредами специализированным потокобезопасным способом.
Аватара пользователя
Тех. администратор
Сообщения: 367
А в принципе наследоваться от UWorld можно. Но не для плагина.
Аватара пользователя
Пользователь
Сообщения: 3
На данный момент я использую ProceduralMeshComponent для отображение на сцене процедурно сгенерированного планетойда.

Какой класс может руководить сценой программно (в UE Level-ом), переставлять пешек, добавлять и исключать их по собственному усмотрению в процесе игры?
Мой фреимворк должен иметь контроль над сценой. Он (мой фреймворк) видит "космос" и размещает объекты на сцене как их должен видеть игрок.
Такие сложности из-за космических просторов.
Аватара пользователя
Тех. администратор
Сообщения: 367
Можно использовать просто управляющий AActor. Всё сильно зависит от того, как корректно вписать вашу логику в клиент-серверную модель анриала.


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница