46

Костыли и пиксели #14

Серия Костыли и пиксели

Всем привет! В 14-м выпуске предлагаю вылезти из тесных коридоров и посмотреть, как разработчики справляются с по-настоящему гигантскими пространствами.

Главная боль любой игры про космос — это ошибка округления координат (Floating-point precision loss). Память не резиновая. Пока вы топчетесь в центре карты, движок знает позицию объектов вплоть до миллиметра. Но стоит улететь на пару миллионов километров, и цифры становятся слишком большими. На точные дроби памяти уже не хватает, и движок начинает грубо округлять значения. Из-за этого 3D-модели прямо на ходу начинает трясти, физика ломается, а персонаж может просто выпасть сквозь пол.

Переписывать фундамент движка ради этого слишком долго и дорого, поэтому программисты используют изящный костыль — "плавающую точку начала координат" (Floating Origin). Суть обмана проста: в дальних путешествиях ваш герой на самом деле никуда не летит.

Очень наглядно это работает в Outer Wilds. Игра симулирует целую солнечную систему с честной физикой орбит. Если бы корабль просто летел от центра карты к краю, погрешность в вычислениях быстро разорвала бы его на куски. Поэтому игра делает финт ушами: как только вы отлетаете от центра на опасное расстояние, движок незаметно сбрасывает ваши координаты обратно в абсолютный ноль (0,0,0), где математика снова работает безупречно. И в ту же миллисекунду берет вообще всё — планеты, кометы, солнце — и сдвигает к вам на это же расстояние.

А главное, игрок этих скачков вообще не замечает. Получается, что при долгих перелетах корабль просто висит на месте, а игра тащит всю остальную вселенную ему навстречу.

А вот если на эту проблему забить, получатся знаменитые "Далекие земли" (Far Lands) из старых версий Minecraft. Если игрок уходил слишком далеко от точки старта, математике просто срывало крышу от гигантских чисел. Генерация ландшафта превращалась в сюрреалистическое месиво, сквозь которое герой проваливался в пустоту.

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

Лига Геймеров

57.2K постов92K подписчиков

Правила сообщества

Ничто не истинно, все дозволено, кроме политоты, за нее пермач, идите на ютуб
Помни!
- Новостные/информационные публикации постим в pikabu GAMES
- Развлекательный контент в
Лигу Геймеров



Нельзя:

Попрошайничать;

Рекламировать;

Оскорблять участников сообщества;

Нельзя оценивать Toki Tori ниже чем на 10 баллов из 10;

Выкладывать ваши кулвидосы с только что зареганных акков - пермач

За неэтичное использование сообщества - тоже бан. Если ты выкладываешь пост в наше сообщество и получаешь стартовые плюсы от наших подписчиков, не думай, что вытаскивать потом пост в своё личное сообщество будет умным поступком.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества