![]() |
Ответ: Infinity Pre-Alpha
Thank you, Mister Genious, you've just saved our Universe!
[sarcasm] |
Ответ: Infinity Pre-Alpha
Цитата:
Хотя я не изучал это направление, но погу предположить что пространство разбито на определенные отрезки по всем осям и координаты каждого куба (пускай это будет куб) определяются целыми числами, а внутри каждого куба берутся свои локальные координаты в определенных масштабах, например для float a бы взял -100 000... +100 000, теперь умножим на максимальное значение int (точне диапазон от - до +) для определения квадранта = 200 000 * 4 294 967 295 = 858 993 459 000 000 мтров по каждой из осей. Внушительные размеры получаются... а если взять тип Long... Правда придется писать свою математику которая пересчитыват такие координаты для всех объектов. Но так как у них есть математическая модель, то скорее всего это у них уже реализовано, ну возможно другим способом, т.к. я просто предположил как это может быть... |
Ответ: Infinity Pre-Alpha
Цитата:
|
Ответ: Infinity Pre-Alpha
А центр координат как подмечено будет находится в цента того куба, в котором сейчас находится игрок.
|
Ответ: Infinity Pre-Alpha
Цитата:
|
Ответ: Infinity Pre-Alpha
Хотя я даже зря взял отрицательный диапазон float, т.к. координаты квадрантов и так будут иметь свой знак. Пусть будет 0...200000
Допустим необходимо отрисовать квадрант игрока и все квадранты вокруг него, т.е. например игрок находится в квадранте Q1(10,12,-10) и имеет координаты P1(59000, 30200, 4000) а например база находится в координате Q2(11,11,-9) и имеет координаты P2(9000, 200, 40000), то вычисляем локальную позицию базы так PL2 = (Q1-Q2)* 200000 + P2 = (-1, -1, -1) * 200000 + (9000, 200, 40000) = (-191000, 199800, -160000) А координаты игрока не изменятся, т.к. это будет текущий квадрант. UPD: Посмотрел на расчеты и понял, что предложенный в начале диапазон лучше подходит, т.к. координаты внутри текущего квадранта будут "лучше" т.к. будут иметь меньший порядок. В итоге получается, что для 27 квадрантов (куб 3х3х3) максимальная координата будет ±300000 что вполне устраивает. Еще я посчитал какие расстояния можно получить при использовании типа long - приблизительно 3 689 348 814 741 910 322 000 000 метров по каждой из осей. |
Ответ: Infinity Pre-Alpha
У меня смутное подозрение, что billion можно ещё перевести как миллион
P.S. где-то слышал, что тут какая-то фигня с переводом. P.P.S. Гугл переводчик говорит что это миллиард Нашел! Английский перевод - миллиард Американский- в 10 в 12 степени Если предположить, что на планету нужно выделить 4 числа по 8 байт (координаты и тип), то на описание 1 миллиарда планет требуется 32 гигабайта памяти. Умножим на 200 : 6.4 терабайт памяти. Вполне реальная для сервера цифра. |
Ответ: Infinity Pre-Alpha
И как уже было сказано мной, наверняка информация о планетах вокруг звезды создается в момент, когда в неё кто-нибудь прилетает. Возможно, что и звёзды не сразу все записаны, а только те, к которым можно прилететь из тех систем, где сейчас есть игроки. Таким образом получается совсем крошечный массив данных, в который новые звезды записываются по мере открытия возможности к ним прилететь.
|
Ответ: Infinity Pre-Alpha
На таких то технологиях, да Parkan Online... Случайная генерация планет уже есть, генерацию баз сделали еще в первом паркане, все это довести до ума и разнообразить... эх... ляпота бы была.
|
Ответ: Infinity Pre-Alpha
Цитата:
|
Ответ: Infinity Pre-Alpha
Цитата:
|
Ответ: Infinity Pre-Alpha
чего объяснять человеку если он не понимает что источник энтропии для генератора случайных чисел можно задавать принудительно, получая при этом всегда одинаковые последовательности ?
при этом хранить чего либо о мире вообще не надо, нужно хранить информацию о игроках и том как они взаимодействуют с игровой вселенной |
Ответ: Infinity Pre-Alpha
Цитата:
|
Ответ: Infinity Pre-Alpha
В тему разговора и процедурном создании городов http://www.3dnews.ru/software-news/C...ie-3D-gorodov/
|
Часовой пояс GMT +4, время: 19:28. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot