Войти
ПрограммированиеФорумИгровая логика и ИИ

Движение второстепенных персонажей

#0
(Правка: 21:29) 21:10, 24 июля 2023

Приветствую

В данный момент я работаю над 2D проектом игры сверху. Игра похожа на SimCity но с игровым персонажем и заданиями. Если быть точнее то это человек или машина которая передвигается по городу, и мой вопрос касается следующего — как правильно организовать передвижение второстепенных персонажей? ... таких как другие прохожие и машины на дороге, ведь без этого игра будет не естественной.
Единственная мысль что у меня на данный момент, это создать множество путей по которым пешеходы и машины будут передвигаться, но, тут тоже проблема так как все всё время не находятся в движении и кто то заходит в здание, кто то стоит и курит на улице а машины останавливаются на красный свет светофора.

Прошу подсказать идеи, и в каком направлении думать для решения этой задачи в Unity.

Заранее благодарю :)

#1
23:39, 24 июля 2023

Бугога человек. Вы тут второй на моей памяти с подобными идеями, первый это местный помидор.
Такого не было ни в симсити, ни даже в киберпанке. Ну что ж дерзайте.
А куда двигаться? Поиграйте в игры где есть хотя бы подобие того что вы написали.

#2
23:51, 24 июля 2023

RikiTikiTak
> Поиграйте в игры где есть хотя бы подобие того что вы написали.
Это есть во всех варгеймах. Юнитам, возможно, но не обязательно, отдается общий приказ - куда-то добраться (соблюдая строй). Затем, каждый ход юнит оценивает клетки вокруг своей, выбирая самую выгодную (т.е. складывая плюсы и минусы), с точки зрения приказа, возможности нанести врагу ущерб, избежать оного, и т.п. В нее и перемещается. На моем форуме рассмотрена два простеньких варианта - OGRE и TANKTICS (скоро зафигачу третий - по Амосову, с честным ИИ).

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

#3
9:19, 25 июля 2023

Narius
> это создать множество путей по которым пешеходы и машины будут передвигаться
всё так

RikiTikiTak
> Поиграйте в игры где есть хотя бы подобие того что вы написали.
Narius
GTA London близко к Вам, да и вся GTA в принципе пойдет.
Также Morrowind и Elder Scroll выше этой версии (Oblivion, Skyrim).
Сталкер
Очень много игр которые реализовали это, но все они из прошлого) Когда деньги не стояли на первом месте)
Ну и конечно, можно легко оценить и потери от этого подхода. В плане времени реализации. Это дольше чем если бы какие то мобы были только появлялись и исчезали в пределах видимости как в GTA 3 или в Готика.

#4
12:41, 25 июля 2023

gudleifr
Salamandr
Варгеймы и фентези игры это разве похоже на симуляцию жизни в большом современном городе, да так что бы это выходило естественно.
Не помню как это было в Гта которую я видел, но в симсити это выглядило убого, в киберпанке получше но я не помню что бы там останавливались покурить и ходили по магазинам, но зато там были появляющиеся полицейские за спиной.
Прописать поведение нескольким персонажам в фентези мире это несложно, такое даже есть в "храме элементального зла", но это другое.

#5
12:44, 25 июля 2023

RikiTikiTak
> Варгеймы и фентези игры это разве похоже на симуляцию жизни в большом
> современном городе
Принцип один. Работает, да, немного иначе. Я, впрочем, так сразу и написал.

#6
13:01, 25 июля 2023

gudleifr
> Принцип один.
Нет принципы совсем иной. А-Life в городе это совсем не варгейм и не фэнтази. И не Сталкер. Лучшая реализация в старых играх, гангстеры, синдикат. Из современных можно отметить ассасина. Изучай, думай.

#7
13:07, 25 июля 2023

Ren
> Нет принципы совсем иной.
Вы путаете форму и содержание.

#8
13:32, 25 июля 2023

gudleifr
> Принцип один. Работает, да, немного иначе.
Ну да нолики и единички, всё зависит от объема. Только вот где то нужно уже автоматизировать, а где то и ручным режимом можно обойтись.

#9
14:23, 25 июля 2023

RikiTikiTak
> Ну да нолики и единички, всё зависит от объема. Только вот где то нужно уже
> автоматизировать, а где то и ручным режимом можно обойтись.
Можно сформулировать проще.
1) расчет идеальной траектории (который можно провести еще на этапе создания игры)
супротив
2) реакции на текущую ситуацию (возможно, случайной).
Речь просто о балансе.

#10
15:07, 25 июля 2023

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

#11
15:11, 25 июля 2023

Есть вариант фейк трафик делать или как в Cities Skylines. В SimCity 4/GTA - фейк. В SimCity 2013 и Cities Skylines - реальный трафик.

#12
19:38, 26 июля 2023

Благодарю за ответы :)

ПрограммированиеФорумИгровая логика и ИИ