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

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

Вернуться   forum.boolean.name > Общие темы > Игры / Games

Игры / Games Общий игровой форум

Ответ
 
Опции темы
Старый 27.06.2010, 04:00   #46
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Infinity Pre-Alpha

Thank you, Mister Genious, you've just saved our Universe!
[sarcasm]
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 27.06.2010, 10:09   #47
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Infinity Pre-Alpha

Сообщение от Nex Посмотреть сообщение
По поводу очень больших пространств(?)
А что если разработчики делают не реальные размеры, а "наугад" допустим дистанция между планетами 2-4,000 единиц, а размер игрока 0,001 единиц и получаются не очень большие цифры.
Да нет, на таких маленьких размерах с камерами будет тяжело работать, тут решение другое. Надо смотреть в сторону реализации GPS приемников, которые визуализируют в 3D свои карты.

Хотя я не изучал это направление, но погу предположить что пространство разбито на определенные отрезки по всем осям и координаты каждого куба (пускай это будет куб) определяются целыми числами, а внутри каждого куба берутся свои локальные координаты в определенных масштабах, например для float a бы взял -100 000... +100 000, теперь умножим на максимальное значение int (точне диапазон от - до +) для определения квадранта = 200 000 * 4 294 967 295 = 858 993 459 000 000 мтров по каждой из осей. Внушительные размеры получаются... а если взять тип Long...

Правда придется писать свою математику которая пересчитыват такие координаты для всех объектов. Но так как у них есть математическая модель, то скорее всего это у них уже реализовано, ну возможно другим способом, т.к. я просто предположил как это может быть...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.06.2010, 10:13   #48
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Infinity Pre-Alpha

Сообщение от Nex Посмотреть сообщение
По поводу очень больших пространств(?)
А что если разработчики делают не реальные размеры, а "наугад" допустим дистанция между планетами 2-4,000 единиц, а размер игрока 0,001 единиц и получаются не очень большие цифры.
Если там будет 200 миллиардов звезд, даже с размером игрока в 0.001 единиц, делая статичный центр координат в условном центре галактики, на окраинах у тебя начнутся глюки с полигонами, бо видюха такие огромные числа, да еще и с большой частью после запятой не переварит нормально. Кстати, идея привязать центр координат к кораблю игрока для нормального отображения моделей в любой точке галактики родилась из наблюдения за EVE. Если в игре указать камере следить за чьим-то кораблем, который собирается совершить прыжок к другой станции этой же системы, то во время прыжка за несколько секунд, пока камера еще следит за кораблем, можно заметит как его на удалении начинает страшно колбасить по части геометрии (и это не LOD, так как он вычисляется относительно камеры, а камера рядом с кораблем до последнего), явно видно как скачут полигоны из-за больших значений координат. Поэтому я решил, что в ивке либо центр координат привызан к кораблю игрока, либо он свой для каждой "локации" (например рядом со станцией или воротами) и перемещается к следующей локации при варпе.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (08.04.2012)
Старый 27.06.2010, 10:22   #49
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Infinity Pre-Alpha

А центр координат как подмечено будет находится в цента того куба, в котором сейчас находится игрок.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.06.2010, 10:25   #50
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Infinity Pre-Alpha

Сообщение от pax Посмотреть сообщение
А центр координат как подмечено будет находится в цента того куба, в котором сейчас находится игрок.
Ну да, как-то так.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (08.04.2012)
Старый 27.06.2010, 10:41   #51
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: 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 метров по каждой из осей.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.06.2010, 13:21   #52
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Infinity Pre-Alpha

У меня смутное подозрение, что billion можно ещё перевести как миллион
P.S. где-то слышал, что тут какая-то фигня с переводом.
P.P.S. Гугл переводчик говорит что это миллиард

Нашел!
Английский перевод - миллиард
Американский- в 10 в 12 степени

Если предположить, что на планету нужно выделить 4 числа по 8 байт (координаты и тип), то на описание 1 миллиарда планет требуется 32 гигабайта памяти. Умножим на 200 : 6.4 терабайт памяти. Вполне реальная для сервера цифра.
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Taugeshtu (27.06.2010)
Старый 27.06.2010, 16:16   #53
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Infinity Pre-Alpha

И как уже было сказано мной, наверняка информация о планетах вокруг звезды создается в момент, когда в неё кто-нибудь прилетает. Возможно, что и звёзды не сразу все записаны, а только те, к которым можно прилететь из тех систем, где сейчас есть игроки. Таким образом получается совсем крошечный массив данных, в который новые звезды записываются по мере открытия возможности к ним прилететь.
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 27.06.2010, 18:19   #54
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Infinity Pre-Alpha

На таких то технологиях, да Parkan Online... Случайная генерация планет уже есть, генерацию баз сделали еще в первом паркане, все это довести до ума и разнообразить... эх... ляпота бы была.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Amatsu за это полезное сообщение:
Arton (27.06.2010), Wegox (08.04.2012)
Старый 27.06.2010, 19:05   #55
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Infinity Pre-Alpha

На таких то технологиях, да Parkan Online...
Даааа... Крутая игра была. Все части прошел по нескольку раз.
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 27.06.2010, 23:41   #56
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Infinity Pre-Alpha

Сообщение от Igor Посмотреть сообщение
Если предположить, что на планету нужно выделить 4 числа по 8 байт (координаты и тип), то на описание 1 миллиарда планет требуется 32 гигабайта памяти. Умножим на 200 : 6.4 терабайт памяти. Вполне реальная для сервера цифра.
Вам не приходило в голову, что для получения координат любой из планет и ее типа так же может быть применен генератор "не случайных чисел". И хранить информации о каждой планете нафиг не нужно, а достаточно одного целого числа для генерации целого сектора какой-либо галактики (а то и целой галактики), содержащей в себе сотни тысяч звездных систем.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 28.06.2010, 00:00   #57
jimon
 
Сообщений: n/a
Ответ: Infinity Pre-Alpha

чего объяснять человеку если он не понимает что источник энтропии для генератора случайных чисел можно задавать принудительно, получая при этом всегда одинаковые последовательности ?

при этом хранить чего либо о мире вообще не надо, нужно хранить информацию о игроках и том как они взаимодействуют с игровой вселенной
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо за это полезное сообщение:
pax (28.06.2010), Reks888 (28.06.2010), Romanzes (28.06.2010), Taugeshtu (28.06.2010), tormoz (28.06.2010)
Старый 28.06.2010, 10:15   #58
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Infinity Pre-Alpha

Сообщение от pax Посмотреть сообщение
Еще я посчитал какие расстояния можно получить при использовании типа long - приблизительно 3 689 348 814 741 910 322 000 000 метров по каждой из осей.
С учетом того, что диаметр нашей галактики примерно 950 000 000 000 000 000 000 метров, то нам вполне хватит такого подхода для симуляции галактики Млечный путь. В нем как раз примерно 200 миллиардов звездных систем.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 30.06.2010, 11:18   #59
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Infinity Pre-Alpha

В тему разговора и процедурном создании городов http://www.3dnews.ru/software-news/C...ie-3D-gorodov/
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (08.04.2012)
Ответ


Опции темы

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

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


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


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