nezzard я вам выдал общую концепцию. Чтобы было понятно что все считает сервер. Всякие оптимизации вида "не каждый фрейм" и прочее - это очень глубокие детали, которые зависят в т.ч. и от самого геймплея.
nezzard примерно - так. Но вы уж либо глобальные вещи спрашивайте - о том где работает нпц, либо о конкретике - как сделать радиус обзора. В целом и нпц, и клиенты - все живут на сервере. Клиент - тупая вьюха - все процессы - только на сервере. Т.е. даже когда вы на клиенте нажимаете кнопку "идти" - клиент не идет (экстраполяцию опустим), он говорит серверу - хочу идти. На сервере сущность клиента идет, пересекается там с чем нужно, а на клиент уходят координаты. Это ОЧЕНЬ вкратце.
nezzard на сервере существует ВЕСЬ мир. В том числе точка а, точка б и т.д. Просто без всякой визуализации. И да, программно расчитывать исходя из скорости бла бла бла. Так же как и в случае с клиентами, собственно. Погугллите книги по многопользовательским играм - пригодится.
nezzard У вас вопрос начинается с того, что есть клиент и есть сервер. Вот на этом сервере и живут аи-шки. Что такое мастер-сервер применительно к данной беседе - непонятно. Есть конечно вариант делать аишек как отдельные клиенты, которые так же коннектятся к серверам, но это очень зависит от специфики игры и чаще всего не нужно.
Andrey Stark Воу, вот озвучка тексты и другое не имеет отношения к программированию ) Так еще можно овердофига чего добавить - художников разных мастей, геймдизов, ПМ-ов и прочих продюссеров.
@OccamaRazo Конечно не любой! Тот с которого должно начинаться выполнение вашей программы. Ошибка с тестами (точно ошибка? На варнинг похоже) - отдельно.
BadCats И причем тут CollisionFlags и его приведение к вектору? Смотреть код честно не буду - это сродни написания его заново. Вообще примеров именно с движением объекта и упиранием в препятствие на юнити в интерентах вагон и еще вагон - гугл в помощь.
BadCats Ну два варианта - либо PosZ заменить на просто Pos (соответственно Vector3) и считать сразу всю позицию, а не по координатам. Либо брать не весь transform.forward, а transform.forward.z, и считать только для z всю формулу.
nepster09 Вы технически понимаете что такое рекурсия? Это просто вызов методов. Больше всего скорость зависит от того, что вы делаете в каждой итерации. В какой то степени это может зависеть от работы коллстека интерпретатора/языка, но я сомневаюсь что есть какие то проблемы с этим в современных языках.