@historydev
Редактирую файлы с непонятными расширениями

Почему в играх двигают мир вокруг игрока, а не наоборот и где можно почитать про то самое наоборот?

Я хочу двигать игрока по миру, а не мир под игроком, но никак не могу найти никакой толковой информации на этот счёт.
Так вообще можно сделать?
Возьмём в пример agar.io, игрок всегда в центре камеры, я попытался реализовать это, но не получилось, я так и не смог наблюдать за игроком, он всегда выходил за видимую область.
  • Вопрос задан
  • 335 просмотров
Пригласить эксперта
Ответы на вопрос 3
freeExec
@freeExec
Участник OpenStreetMap
Никто в здравом уме мир не двигает. Разве что у тебя бесконечный ранер, да и там, просто при достижении определённого порога начинают строить заново от центра.
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Мне вспоминается мультсериал Футурама. Там профессор построил космо-корабль. И когда его спросили как он работает - профессор ответил что не помнит. Но потом как-то вспомнил. Оказывается корабль вообще не летает. Он стоит на месте и двигает всю вселенную вокруг себя.

Пл поводу графики в играх. Я кажется знаю откуда ты эту фразу слышал. Это проеобразование world координат во view. Это идет от точки зрения алгебры матриц которые используются в 3Д графике. Чтоб показать на экране какую-то объект (куб, тор или пирамиду) надо все его координаты сначала умножить на матрицу его базовых преобразований (повроты сдвиги и масштаб) и потом еще это умножить на матрицу камеры. Здесь кстати на уровне камеры и делают всякие искажения перспективы и изометрию. И мы получаем фактические координаты экрана. Там еще идет хитрая оптимизация что две матрицы -константы и их можно взаимно перемножить и тд.

Это в теории. Как реализовано в OpenGL/Vulkano - я щас не знаю. Но думаю что основа - таже.

Вот. Поэтому да. С точки зрения камеры - она стоит неподвижно. И вся вселенная точек, полигонов и спецэффектов крутится бешено вокруг камеры чтоб занять именно то положение которое должен видеть игрок когда играет например в 3Д шутер.
Ответ написан
@MasterGod
В играх можно встретить, когда используется техника "слежения за игроком", где мир движется вокруг игрока, чтобы создать эффект, будто камера следит за ним. Это делается для удобства игрока и для создания более динамичного и интересного геймплея.

Однако, я чаще встречал эффект движение игрока по миру, а не мира вокруг игрока, это также возможно. В этом случае нужно перемещать игрока вместе с камерой, чтобы он всегда оставался в видимой области.

Вот как это можно сделать:

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

2. Используй масштабирование камеры:
Изменяйте масштаб камеры, чтобы игрок всегда оставался в видимой области. Например, при удалении от центра камеры, увеличивайте масштаб, чтобы игрок всегда был виден.

3. Используй смещение камеры:
Перемещайте камеру вместе с игроком, чтобы он всегда оставался в центре видимой области.

4. Используй плавное следование:
Добавьте эффект плавного следования за игроком, чтобы камера плавно перемещалась и следовала за ним.

Попробуй игровой движок анрил он идиелен для шутеров, хотя есть те кто делает хорошие шутеры, я видел и играл долго на Unity в контракт варз вроде, контра сити была, батла. Что то ещё, так не вспомню. Кто то любит cry engine . Тоже делают из него шутеры. Знакомый делал шутер на coppercub . При чем 6 бесплатен для определённого числа сцен. Unity можно бесплатно использовать, даже продавая игры, ечли доход в год меньше 100 тыс баксов.
С unreal ом другая ситуация нужно отваливать процент с каждой продажи. Но в unreal engine крутая вещь для новичков блю принт это визуальное программирование без написания кода, с помощью блоков. Но ограничена по возможностям. Game guru можно быстро склепать шутер и FPS Creator но там проблемы с оптимизацией, но дешовые модели за 100 баксов возьмёшь 10к моделей на любой цвет и вкус
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы