Геодата

Теги:
 
1 2 3 4 5
+
-
edit
 

Balancer

администратор
★★★★☆
Короче, достало. На расшифровку клиентских данных забиваю.

В голове возврат к старой идее с записью карты по данным клиента. Правда, не в таком ужасном виде, как сейчас сделано в SF. Будет поддержка реальной многоэтажности. Будет быстрая маршрутизация путей мобов и игроков с учётом препятствий.

Что нужно:

1. Перепись или модернизация текущего AI-движка. Наверное, идеальным будет введение нового слоя, который сейчас будет базироваться на имеющемся AI, а потом станет автономным.

2. Каким объёмом памяти мы можем пожервовать на карту. 256Мб? 512Мб? Можно сделать, наверное, параметр и настраиваемым (больше память - выше точность), но тогда будут проблемы синхронизации данных разных серверов.
 

ivse

втянувшийся
да хоть пару гиг :)
идеальный вариант - что-б снимать не с игроков а с ботов.
вариант когда фортовый скрипт телепортит чара высоко, чар
падает, потом снимаются координаты на которую он упал.

под это дело можно и отдельную сборку сделать - без мобов.
загонять несколько чаров в квадрат и сканить его так там.

ТОИ так не сделать конечно, но там еще что-нибудь придумается.
 

rinf

новичок
Сейчас буду ругаться.
Велосипед зачем изобретать? Или типа настоящие герои не ищут легких путей?
Вот в этой теме Unknown topic 4575 человек предложил реальную конструкцию.
Координаты вершин всех объектов собираются "на ура". А фирма эпик придумала на мой взгляд оптимальную
серверную геодату: (я уже говорил, но повторюсь) каждый квадрат имеет высоту, последние 3 бита имеют стоимость прохождения (вперед, направо, налево). ВСЕ. Куда уж лучше-то? Да, памяти будет кушать, но останавливает нас это?

Расстраиваете вы меня господа разработчики ....
 
+
-
edit
 

Balancer

администратор
★★★★☆
Ну и где автор идеи? Или ты за него сделаешь прокси? Кроме того, его данные тяжело обрабатывать. Придумая эффективный алгоритм проверки.
 
+
-
edit
 

AlleyCat

втянувшийся
Память не проблема. Я так понимаю, чем больше мы ее выделим, тем точнее будет гео.
 
+
-
edit
 

Balancer

администратор
★★★★☆
Да, именно так. Собираюсь делать именно разбиение по квадратам с отдельными метками для многоэтажных блоков. Соответственно, больше квадратов, меньше их размер, больше затраты памяти, но выше точность.

...

Пока вижу одну явно возникающую проблему: как отрабатывать движения тех NPC, которые стоят на ещё нехоженных территориях. При перемещении фиг с ними - пусть пока ходят как сейчас, если стоят в нехоженном блоке. Но что делать при их дистанционной атаке?

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

Вариант 2: игнорировать их атаку и даже не учитывать их повреждений. Т.е. игроку придётся в такой ситуации подойти и долбануть NPC посохом или мечом - тем самым моб окажется уже на вскрытой территории и до игрока ему путь будет гарантированно проложен :) Минус - на первых порах будет достаточно массовым явлением :)
 
+
-
edit
 
Лучше вариант 1 - к этому уже привыкли.
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
+
-
edit
 

AlleyCat

втянувшийся
Balancer> Да, именно так. Собираюсь делать именно разбиение по квадратам с отдельными метками для многоэтажных блоков. Соответственно, больше квадратов, меньше их размер, больше затраты памяти, но выше точность.
Balancer> ...
Balancer> Пока вижу одну явно возникающую проблему: как отрабатывать движения тех NPC, которые стоят на ещё нехоженных территориях. При перемещении фиг с ними - пусть пока ходят как сейчас, если стоят в нехоженном блоке. Но что делать при их дистанционной атаке?
Balancer> Вариант 1: в таких случаях игнорировать отсутствие геодаты и напасть на атакующего - минус: проблемы с атакой замков. Стражники попрежнему будут выскакивать из стен, если там, где они стоят ещё никто не ходил.
Balancer> Вариант 2: игнорировать их атаку и даже не учитывать их повреждений. Т.е. игроку придётся в такой ситуации подойти и долбануть NPC посохом или мечом - тем самым моб окажется уже на вскрытой территории и до игрока ему путь будет гарантированно проложен :) Минус - на первых порах будет достаточно массовым явлением :)


Бал, я не совсем уловил о чем идет речь.
Я так понимаю что проходимость будет сниматься с игрока, который бегает на клиенте. Так при чем тут нпс?
 
+
-
edit
 

Balancer

администратор
★★★★☆
>Лучше вариант 1 - к этому уже привыкли.

А перед атакой замка сделать так, чтобы в местах скопления стражников побегал админ? :D Дабы переключать их на новый маршрутизатор? :) Можно, в принципе...
 
+
-
edit
 

Balancer

администратор
★★★★☆
AlleyCat> Я так понимаю что проходимость будет сниматься с игрока, который бегает на клиенте. Так при чем тут нпс?

Проходимость нам важна в первую очередь для маршрутизации NPC. Чтобы сквозь стены не бегали :)

Но при этом у нас возникает особая ситуация, когда NPC стоит в точке, где ещё ни один игрок не пробегал. Маршрутизатор, соответственно, ещё не работает.
 
+
-
edit
 

AlleyCat

втянувшийся
AlleyCat>> Я так понимаю что проходимость будет сниматься с игрока, который бегает на клиенте. Так при чем тут нпс?
Balancer> Проходимость нам важна в первую очередь для маршрутизации NPC. Чтобы сквозь стены не бегали :)
Balancer> Но при этом у нас возникает особая ситуация, когда NPC стоит в точке, где ещё ни один игрок не пробегал. Маршрутизатор, соответственно, ещё не работает.

Гуд. Он не работает. То как будет вести себя моб в этой точке? Он не будет бежать к игроку или будет бежать сквозь стену?
Можешь подробнее описать по чем будет происходить съем точек проходиости.

То есть я стою в точке x,y,z. Клацнул бежать в точку с координатами x+x1, y+y1, z+z1.
Какие точки пропишутся проходимымы? Что будет если на пути будет стена или заборчик?

И как будут отрабатываться двери и ворота?
 
+
-
edit
 

AlleyCat

втянувшийся
Также гео нужно чтоб дроп правильно падал, а не на потолок улетал. :-)
 
+
-
edit
 

Balancer

администратор
★★★★☆
AlleyCat> Гуд. Он не работает. То как будет вести себя моб в этой точке? Он не будет бежать к игроку или будет бежать сквозь стену?

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

По второму - стоит на месте, но и неуязвим для игрока. Пока тот не подбежит к NPC :)

AlleyCat> То есть я стою в точке x,y,z. Клацнул бежать в точку с координатами x+x1, y+y1, z+z1.
AlleyCat> Какие точки пропишутся проходимымы?

Все, которые сообщит клиент серверу в клиентском пакете ValidatePosition (или как он там).

>Что будет если на пути будет стена или заборчик?

Тогда с этих координат никогда игроку не придёт пакет :) Т.е., если образно, то изначально весь мир "непроходим", но игроки будут "выгрызать в нём дыры" :)

AlleyCat> И как будут отрабатываться двери и ворота?

Гм... Да, для NPC это проблема. Т.е. понятно, что они будут, в общем случае, проходимыми. Но придётся, значит, делать механизм переключения их проходимости...
 
+
-
edit
 
Тогда с этих координат никогда игроку не придёт пакет :) Т.е., если образно, то изначально весь мир "непроходим", но игроки будут "выгрызать в нём дыры" :)
 

А валкер? Он же игнорирует стены... Хотя я так и не смог его запустить, не факт что это невозможно.
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
+
-
edit
 

AlleyCat

втянувшийся
Abaddon>
Тогда с этих координат никогда игроку не придёт пакет :) Т.е., если образно, то изначально весь мир "непроходим", но игроки будут "выгрызать в нём дыры" :)
 

Abaddon> А валкер? Он же игнорирует стены... Хотя я так и не смог его запустить, не факт что это невозможно.

Толку с волкера? У него нет геодаты.
 
+
-
edit
 
Так если игрок будет с волкера сидеть, то он будет где попало ходить и проходимость писать невзирая на стены.
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
+
-
edit
 

AlleyCat

втянувшийся
AlleyCat>> Гуд. Он не работает. То как будет вести себя моб в этой точке? Он не будет бежать к игроку или будет бежать сквозь стену?
Balancer> Вот о том и был вопрос :) По первому варианту бежит к игроку как сейчас (пока не выбежит на точку, где уже хоть раз кто-то пробегал - дальше - по оптимальному маршруту).
Balancer> По второму - стоит на месте, но и неуязвим для игрока. Пока тот не подбежит к NPC :)

Я так понял из вышеописанного, что принципиальной разницы для постоения карты у этих двух вариантов нет. Тогда за первый вариант.
Или я чего-то не учел?

AlleyCat>> То есть я стою в точке x,y,z. Клацнул бежать в точку с координатами x+x1, y+y1, z+z1.
AlleyCat>> Какие точки пропишутся проходимымы?
Balancer> Все, которые сообщит клиент серверу в клиентском пакете ValidatePosition (или как он там).
>>Что будет если на пути будет стена или заборчик?
Balancer> Тогда с этих координат никогда игроку не придёт пакет :) Т.е., если образно, то изначально весь мир "непроходим", но игроки будут "выгрызать в нём дыры" :)

Угу. Только надо отсечь все случаи чита. Как то - виверны, телепорты, чит когда игрок кликает за стенку и дисконнектится.

AlleyCat>> И как будут отрабатываться двери и ворота?
Balancer> Гм... Да, для NPC это проблема. Т.е. понятно, что они будут, в общем случае, проходимыми. Но придётся, значит, делать механизм переключения их проходимости...

А многоэтажность ты сразу будешь выставлять для районов? Или в процессе наработки оно само будет строиться?
 
+
-
edit
 

AlleyCat

втянувшийся
Abaddon> Так если игрок будет с волкера сидеть, то он будет где попало ходить и проходимость писать невзирая на стены.

Да.
 
+
-
edit
 

Balancer

администратор
★★★★☆
Abaddon> Так если игрок будет с волкера сидеть, то он будет где попало ходить и проходимость писать невзирая на стены.

Отлавливать и банить, чтобы данные не портил :D

А если без записи данных - так пускай. Проходимость будет сервером проверяться :)
 
+
-
edit
 
Что да я сам знаю, а вот как это фильтровать?
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  
+
-
edit
 

Balancer

администратор
★★★★☆
AlleyCat> Я так понял из вышеописанного, что принципиальной разницы для постоения карты у этих двух вариантов нет. Тогда за первый вариант.

К построению данных это вообще не относится. Это к использованию уже имеющихся данных :)

AlleyCat> Угу. Только надо отсечь все случаи чита. Как то - виверны, телепорты, чит когда игрок кликает за стенку и дисконнектится.

Вайверны отсекаются по isRiding, isFlying. Телепорты не страшны, т.к. даже если в воздух телепортируешься, пакет, по идее, придёт уже с земли. Но это смотреть надо.

AlleyCat> А многоэтажность ты сразу будешь выставлять для районов? Или в процессе наработки оно само будет строиться?

Многоэтажность сама будет строиться. Если Z-координата точки будет сильно отличаться от прописанной, но при этом будет адекватной (не "на полу мира", не сильно отличается от предыдущей точки и т.п.), то автоматом делаются два "слоя" и в данную точку ставится эдакий идентификатор слоя.
 
+
-
edit
 

Balancer

администратор
★★★★☆
Abaddon> Что да я сам знаю, а вот как это фильтровать?

Что фильтровать?
 
+
-
edit
 

AlleyCat

втянувшийся
Abaddon>> Так если игрок будет с волкера сидеть, то он будет где попало ходить и проходимость писать невзирая на стены.
Balancer> Отлавливать и банить, чтобы данные не портил :D
Balancer> А если без записи данных - так пускай. Проходимость будет сервером проверяться :)

Кстати, запрет в конфиге на волкера работает?
Тогда еще предложение. Брать только проверенніх админов, чтоб могли волкера нормально отключить. А то фигня війдет с картой.
 
+
-
edit
 

AlleyCat

втянувшийся
AlleyCat>> Угу. Только надо отсечь все случаи чита. Как то - виверны, телепорты, чит когда игрок кликает за стенку и дисконнектится.
Balancer> Вайверны отсекаются по isRiding, isFlying. Телепорты не страшны, т.к. даже если в воздух телепортируешься, пакет, по идее, придёт уже с земли. Но это смотреть надо.

Тогда еще надо посмотреть как отрабатывается вода.
А то там такая многоэтажность будет. :-)

AlleyCat>> А многоэтажность ты сразу будешь выставлять для районов? Или в процессе наработки оно само будет строиться?
Balancer> Многоэтажность сама будет строиться. Если Z-координата точки будет сильно отличаться от прописанной, но при этом будет адекватной (не "на полу мира", не сильно отличается от предыдущей точки и т.п.), то автоматом делаются два "слоя" и в данную точку ставится эдакий идентификатор слоя.

А как с ТОИ, Крумой, Гиантс Кейв, некрополисами?
 

ivse

втянувшийся
кстати, глупый вопрос - а карты на клиента не в формате unreal tourn хранятся?
а то может достаточно расшифровать и в редактор UT загнать?
 
1 2 3 4 5

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru