Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Сетевая RTS на truesync

Сетевая RTS на truesync

Поделиться
qGrinПостоялецwww11 апр. 201717:58#0
Поскольку стандартный nav mesh agent для такой цели не подходит. То мне надо написать свой поиск пути, но float`ы заменить на fixed point.
Я так понимаю, что нужен алгоритм Дейкстры? Посоветуйте простую реализацию на C# желательно без наворотов, мне пока только для прототипа потестить.
Кто не в курсе что такое truesync.

Правка: 11 апр. 2017 18:00

fornetjobПостоялецwww11 апр. 201721:22#1
Может а-звезду? Там вообще нет проблем с алгоритмом.
qGrinПостоялецwww12 апр. 201720:12#2
fornetjob
> Может а-звезду? Там вообще нет проблем с алгоритмом.
Да это то, что нужно.
greencrazycatПостоялецwww12 апр. 201722:37#3
qGrin
> Поскольку стандартный nav mesh agent для такой цели не подходит.
разве photon true sync не "All features from PUN are included." ?
а если так то что мешает передавать тем же rpc точки для расчета стандартному nav mesh agent ?
и трафик копеечный при этом должен быть вроде :)
qGrinПостоялецwww13 апр. 20175:33#4
greencrazycat
> разве photon true sync не "All features from PUN are included." ?
Вроде да.

greencrazycat
> а если так то что мешает передавать тем же rpc точки для расчета стандартному
> nav mesh agent ?
Мне кажеться будет рассинхрон, для таких данных надо юзать OnInputUpdate и т.д. А стандартный nav mesh agent на float и в итоге движение будет выполняться по разному.

Но в принципе так можно сделать на обычном PUN вопрос в том, а будет ли нормально работать RTS?

greencrazycatПостоялецwww13 апр. 201711:19#5
qGrin
> а будет ли нормально работать RTS?
а что значит RTS ? (чета подумал что это тип игры - real time strategy :)
qGrinПостоялецwww13 апр. 201714:32#6
greencrazycat
> а что значит RTS ? (чета подумал что это тип игры - real time strategy :)
Да, тип игры
greencrazycatПостоялецwww13 апр. 201716:50#7
а почему rts не может нормально работать на обычных rpc ? - по сути надо синхронизировать только точки куда двигаться при помощи rpc , остальное каждый клиент может сам рассчитать через навмешагент
qGrinПостоялецwww13 апр. 201718:14#8
greencrazycat
> а почему rts не может нормально работать на обычных rpc ? - по сути надо
> синхронизировать только точки куда двигаться при помощи rpc , остальное каждый
> клиент может сам рассчитать через навмешагент
Возможно и будет, но:
1. Разное время доставки данных.
2. Представь толпу близко стоящих 50 юнитов, на каждом компе вся эта орава будет двигаться по-разному вплооь до того, что даже конечные положения будут разные.
greencrazycatПостоялецwww13 апр. 201719:23#9
qGrin
> 1. Разное время доставки данных.
> 2. Представь толпу близко стоящих 50 юнитов, на каждом компе вся эта орава
> будет двигаться по-разному вплооь до того, что даже конечные положения будут
> разные.
почему они должны двигаться по разному ? если изначально одинаковая картина мира у всех клиентов ... приходит сетевой пакет о новой точке для юнита всем клиентам (время доставки в среднем 80мс) - все просчитывают путь и расчет будет у всех одинаковый
разве нет ?
aruzПостоялецwww13 апр. 201719:38#10
qGrin

Поддержу greencrazycat, часто синхронизировать координаты юнитов в RTS слишком затратно. Для поиска пути (перемещения) посоветую смотреть в сторону Potencial field и Steering Behaviors.

qGrinПостоялецwww15 апр. 20178:46#11
greencrazycat
aruz
Т.е.  вы предлагаете вообще без Truesync делать?

Не могу решить задачу:
Есть 2 Vector3 A(x1, y1, 0) и B(x2, y2, 0), полученные через transform.position. Нужно повернуть GameObject находящийся в В, так чтобы он "смотрел" на А, единственным вызовом метода.

Усложним: GameObject - это Plane, который в начальном состоянии перпендикулярен Оху, но был повернут на 180 по Оу и на 90 по Ох и теперь параллелен Оху, теперь нужно повернуть его так, чтобы его Ось z "смотрела" на А, но он оставался параллелен Оху.

PS: GameОbject это Plane к которому применен материал с нарисованной стрелкой.

Правка: 15 апр. 2017 8:48

greencrazycatПостоялецwww15 апр. 201712:59#12
qGrin
> Нужно повернуть GameObject находящийся в В, так чтобы он "смотрел" на А,
> единственным вызовом метода.
Transform.LookAt
qGrin
> вы предлагаете вообще без Truesync делать?
зачем тебе Truesync для RTS ?

/ Форум / Программирование игр / Сеть

2001—2017 © GameDev.ru — Разработка игр