Z
> Не ну, а в коде то как ето въглядит? Могучий switch по состоянию?
В коде это выглядит как отправка сообщений по табличкам объектов с заданной частотой.
Есть описание логики программы в виде таблицы с параметрами, по нему при загрузке создаются объекты. Для каждого объекта известно когда его звать (и в какой последовательности для всех объектов) и какие сообщения отправлять.
Свитчи на более чем 8 вариантов кодстандартом запрещены.
Z
> Т.е. bla-bla, FindPath(), bla-bla, trace rays, bla-bla
Идеологически так:
// logic
if (VisComp.GetVisEnemy() > 0)
{
NavComp.StartMoveTo(TargetPos); // просто ставит запрос в компоненте
}
else
{
NavComp.Stop();
}
// other update
// вся синхронизация здесь
Navigation.Tick();
Visibility.Tick();> И как AI тикает - все сделано автоматом с тучей стейтами?
Был HFSM подобный высокоуровневый скрипт. Но накладные расходы на его суппорт были достаточно высоки, так как новые фичи как правило требовали новый биндинг к нему делать. В результате не понятно, было бы выгодней делать через поведенческую модель на основном языке или нет.
Тема в архиве.
| Winrating.ru/stats/team/8846 winrating.ru |