Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 19.03.2015, 00:32   #1
Izunad
ПроЭктировщик
 
Аватар для Izunad
 
Регистрация: 02.06.2011
Адрес: Набережные Челны
Сообщений: 103
Написано 27 полезных сообщений
(для 91 пользователей)
Восклицание GeoData

Пока писал редактор карт, наткнулся на такую проблему:
Создал массив Maps(512,512)- игровое поле, в массив можно было внести значения, которые определяли какой объект располагается в координате, закрыто либо открыто для перемещения и прочее.
Но как быть если я хочу создать мосты, этажи и прочие архитектурные причуды. Как мне это выразить в программе? Трехмерным массивом Maps(512,512,512)? Мне кажется это слишком дорого =\ Тут еще надо учесть что будет сервер, где нужно держать в памяти весь игровой ландшафт, все объекты(в цыфрах)
__________________
Хочешь изменить мир-начни с шейдера.
(Offline)
 
Ответить с цитированием
Старый 19.03.2015, 01:03   #2
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: GeoData

Ну например в воксельной графике для решения подобных задач используют разреженное октодерево (Sparse Voxel Octree).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Izunad (19.03.2015)
Старый 20.03.2015, 00:18   #3
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: GeoData

В майнкрафте максимальная высота значительно меньше. 128 или 256.
Если на одну ячейку тратить по байту, то 512*512*128 байт = 32 мегабайта, вполне нормальная цифра.
Опять же, в майнкрафте карта разбивается на кусочки, которые хранятся на диске в сжатом виде - если в углу карты бегает игрок, другой угол в памяти держать не обязательно.

P.S. даже если на ячейку тратить 2 байта (а это 65536 значений - просто дофига, имхо), а ячеек 512*512*512, то это 256 мегабайт - вполне реальная цифра.
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Izunad (20.03.2015)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 14:53.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com