Кажется, я опять немного сорвался со своего режима. Все дело в подлом
программировании, которое иногда способно вызвать желание играть в игру
"еще одна идея относительно этого и все". Мне все-таки захотелось
проверить, можно ли в кубическом мире достаточно быстро обрабатывать
глобальные процессы, не загружая весь мир поблочно в память. Почему
нельзя загрузить? Ну, возьмем, например, такую планету, как Земля. Она
имеет радиус около 6 тысяч километров. Это значит, что если мы хотим ее
превратить в кубики, получится порядка 40*20*6 миллионов кубиков, без
учета атмосферы. То есть, очень большое число, порядка триллионов. Если
даже хранить блок как один байт, требуется терабайт с копейками, без
учета всяких там структур данных. Сгенерировать его - я, полагаю, в
зависимости от алгоритма, дело многих часов, может даже дней.
Просчитывать его изменения с точностью до одного блока - невозможно в
реальном времени. Идея была в том, чтобы проверить, насколько
правдоподобную картину можно получить, если, скажем, генерировать и
считать все большие и большие блоки по мере удаления от наблюдаемой
игроком точки. Начал, конечно, с двухмерного мира, который имеет просто
блоки километр*километр, то есть, в тысячу раз уменьшил Землю. Просто
для удобства. И тут началось. Вроде бы все было идеально продумано, но
где-то влезли какие-то, видимо, недостаточно хорошо обдуманные баги и
пока что не получилось ни шиша. То есть, вроде-бы все работает на этапе
рассчетов и весь мир успевает "тикнуть", без рассчетов и прочих
операций, за десятки миллисекунд, на жаве, но отобразить его кусочек
пока не получается. Где-то косяк с "взять вон тот блок с этими вот
координатами". Хотя, конечно, и десятки миллисекунд это много. Еще и в
двухмерном варианте. В общем, пока разочаровываюсь в идее, поэтому,
видимо, так сильно залип в проблеме. Даже вот сюда ничего не писал. Хотя
подход сначала казался очень правильным и даже казалось, что он
офигенно должен масштабироваться, как на отдельные потоки, так и на
разные процессы и даже физические машины. То есть, такой мир можно было
бы размазать на целый кластер серверов и пускать игроков толпами. Но
что-то, похоже, будь все так просто, это давно уже сделали бы.
На
самом деле это важно, вовремя останавливаться и переключаться на другую
деятельность, чтобы она не страдала. Работа та же. Летсплей. Обучение. И
еще одна проблема - я эту задачу никак не разбил на части, она никак не
спланирована и даже каких-то идей, которые возникли по мере попыток ее
реализовать, я не записал. То есть, все потеряно. Хотя идей было много, и
часть из них может быть полезна даже для других каких-то проектов.
Вообще привычка это все записывать и обрабатывать у меня, похоже,
развита не очень хорошо, потому что такое бывает часто. И не знаю, что с
этим поделать, потому что это скорее касается самоконтроля и привычек.
Менять и прививать новые привычки у меня пока получается плохо. А может
просто очень неудачно реализован функционал добавления новых задач в
текущем софте, ведь MLO написан под винду и что-то не спешит ловить
нажатия хоткея, когда не активен. И иконку в трее не всегда делает. В
общем, дело дрянь. Надо привыкать натыкивать новые задачи в андроиде,
что не всегда удобно.
пятница, 24 июля 2015 г.
Подписаться на:
Комментарии к сообщению (Atom)
Casino No Deposit Bonus Codes 2021 | Play Online Free
ОтветитьУдалитьNo deposit casino 양산 출장마사지 offers you all 전주 출장마사지 the rewards and promotions you would expect from a traditional 부산광역 출장안마 casino, plus more. The best 울산광역 출장마사지 part is, they offer you 경상북도 출장마사지 one of