GeoData
Пока писал редактор карт, наткнулся на такую проблему:
Создал массив Maps(512,512)- игровое поле, в массив можно было внести значения, которые определяли какой объект располагается в координате, закрыто либо открыто для перемещения и прочее. Но как быть если я хочу создать мосты, этажи и прочие архитектурные причуды. Как мне это выразить в программе? Трехмерным массивом Maps(512,512,512)? Мне кажется это слишком дорого =\ Тут еще надо учесть что будет сервер, где нужно держать в памяти весь игровой ландшафт, все объекты(в цыфрах) |
Ответ: GeoData
Ну например в воксельной графике для решения подобных задач используют разреженное октодерево (Sparse Voxel Octree).
|
Ответ: GeoData
В майнкрафте максимальная высота значительно меньше. 128 или 256.
Если на одну ячейку тратить по байту, то 512*512*128 байт = 32 мегабайта, вполне нормальная цифра. Опять же, в майнкрафте карта разбивается на кусочки, которые хранятся на диске в сжатом виде - если в углу карты бегает игрок, другой угол в памяти держать не обязательно. P.S. даже если на ячейку тратить 2 байта (а это 65536 значений - просто дофига, имхо), а ячеек 512*512*512, то это 256 мегабайт - вполне реальная цифра. |
Часовой пояс GMT +4, время: 18:01. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot