Массивы VS Списки для массивных данных с множественной структурой

Для проекта я переделываю воксельный блочный терран Minecraft.

В настоящее время я использую массив из трех ключей (new Block[,,]), а затем я могу ссылаться на блок, используя его шнуры, такие как BlockList[x,y,z].BlockID, и тому подобное.

Но мне нужен бесконечный ландшафт, что невозможно с array. Так что, List было бы лучше для этого?

Имейте в виду, что в любой момент времени загружается ~ 200k блоков - я боюсь перебирать каждый блок в списке, чтобы обнаружить, что запрошенный блок будет загружать ЦП.


person michael becker    schedule 12.08.2016    source источник
comment
Это слишком широко, чтобы объяснить в одном ответе, и в любом случае его можно найти на сайте Game Dev. Вы не можете удерживать бесконечную местность ни в списке, ни в массиве. Вам необходимо реализовать какой-то алгоритм потоковой передачи, при котором края вашего ландшафта транслируются, как только они становятся (почти) видимыми. Как это сделать, обсуждалось в разных местах сети, так что поделитесь, пожалуйста, своим исследованием.   -  person CodeCaster    schedule 12.08.2016
comment
@EhsanAkbar правда? Прочтите вопрос.   -  person EvilTak    schedule 12.08.2016
comment
@EvilTak может быть, да   -  person Ehsan Akbar    schedule 12.08.2016
comment
Нет ничего бесконечного. Ваш компьютер не сможет с этим справиться   -  person monstertjie_za    schedule 12.08.2016
comment
@CodeCaster Даже не думал об этом. Если вы опубликуете как ответ, я его не приму.   -  person michael becker    schedule 12.08.2016
comment
Дело в том, чтобы добавить что-то новое, когда вы приблизитесь к концу, чтобы пользователь испытал бесконечный ландшафт.   -  person jegtugado    schedule 12.08.2016
comment
@ Шерлок, это может быть лучший ответ. Данные о производительности показывают, что он превосходит по скорости как List, так и Array, когда задействованы тысячи элементов. По-прежнему существует серьезная проблема, когда мне пришлось бы перебирать каждый элемент в Hashset, чтобы найти тот, который я ищу. Я не могу представить, что это когда-нибудь будет легко на CPU   -  person michael becker    schedule 12.08.2016