Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


[Ответить в тред] Ответить в тред

Check this out!


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 99 | 17 | 29
Назад Вниз Каталог Обновить

Мирогенерации тред Аноним 28/01/17 Суб 14:30:10  403166  
Шум.png (86Кб, 1024x512)
Сап ноны.
В тред приглашаются математики, программисты и философы. Общаться будем за генерацию виртуальных миров.
В общем меня давно посетила мысль, что можно запилить великое множество виртуальных вселенных практически неограниченного размера.

Начальная вселенная из 2-х уровней - земная поверхность и атмосфера. Пока не нужно трогать космос и недра, для простоты восприятия.

По сути земная поверхность это 2-х мерное пространство из координат XY.

Теперь описание того о чём именно я толкую. Представим что в пустом 3-х мерном пространстве у нас стоит юзер, имеющий некоторое поле обзора. Он видит пустую землю и атмосферные эффекты вроде неба.
Используя особый псевдослучайный алгоритм (мирогенератор) мы разместим на карте сгенерированные объекты разной формы и размеров, взяв координаты за основу. Тоесть алгоритм пробежавшись по зоне видимости юзера генерирует объекты допустим горы, траву, ямы, скалы, камни, одиночные постройки и даже целые города. Самая мякотка псевдослучайности - это равномерное распределение и то, что объект генерируемый по координатам для каждого пользователя будет выглядеть одинаково в одном и том же месте.

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

Что это даёт - полное отсутствие необходимости хранения или передачи информации о объектах на карте или самой карты.
Что в свою очередь даёт практически неограниченное пространство. Каждому юзеру достаточно иметь на компьютере модели и алгоритмы генерации объектов и по желанию координаты отдельных массивов вроде городов, лесов, особых моделей и событий и т.д., чтобы получить неограниченную вселенную, правила генерации которой регулировались бы некоей константой. Единственный возможный ресурс этой вселенной - память - дисковое пространство сервера, хранящего пользовательские объекты и модели, только его можно было бы и продавать, что было бы "канонично".

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

Есть генератор пикрл результат, ему нехватает скоплений объектов с повышенной концентрацией объектов определённого типа и разреженных областей.

Что думаете? Как пофиксить?

Код генератора:
http://pastebin.com/pY27v1LF
Аноним 28/01/17 Суб 14:58:07  403168
>>403166 (OP)
Ну изобрёл ты peer-to-peer мирогенерацию, ок. Игру так не сделаешь - читы для такого ММО будут просто охуенными.
Аноним 28/01/17 Суб 15:03:48  403169
>>403168
Читы? Например?
Аноним 28/01/17 Суб 15:14:51  403170
>>403169
Например, другой сид.
Единственная игра без читов сейчас - это WOT, в которой всё на сервере, даже небо, даже Аллах, игроки просто команды WASD по сети посылают и смотрят, что выходит.

Можно пойти по дорожке криптовалют, но тогда ты получишь очень большую избыточность и вся мякотка твоего птп теряется. Если каждый клиент будет сервером, почему бы не обойтись одним сервером по старинке?
Аноним 28/01/17 Суб 15:26:20  403172
>>403170
Кому ты пиздишь? Одни только моды автонаводки в вотах чего стоят. Там читы просто яебу, та же хуйня что и читы в первом думе по сути. Твои воты могли бы жить без читов будь у них облачные вычисление, но это же донатные игрушки для нищенок, как у мейлру.
Аноним 28/01/17 Суб 15:35:47  403173
>>403172
>Одни только моды автонаводки в вотах чего стоят.
Нихуя они не стоят, потому что их нельзя отличить от скилла.
А вот воллхаки и спидхаки принципиально нереализуемы. Сервер знает, что за кустом тебе нихуя не видно - сколько ни убирай куст в клиенте, нихуя не увидишь. Авторитаризм, православие и прогресс.
Аноним 28/01/17 Суб 15:46:41  403175
>>403173
Нет смысла клиенту быть сервером, кроме как чтобы раздать координаты и модели которых нет у остальных. Это легко контролируется, клиент просто станет репозиторием с файлами. Жёсткая логика не даст обойти математические законы незаметно. Всё что сможет читер это отправить клиенту хитровыебанную трёхмерную модель или натыкать себе\убрать объекты через изменение исполняемого кода, по сути вообще лишив карту смысла и читерство корректнее будет называть атакой, ибо это уже пиздец.
Аноним 28/01/17 Суб 19:04:37  403180
>>403173
Спидхак сам по себе безобиден.
Аноним 29/01/17 Вск 10:58:16  403250
Теперь вернёмся к теме - как создать скопления объектов и разреженные области?
Аноним 29/01/17 Вск 11:00:43  403251
>>403166 (OP)
Охуеть интересно - полностью статичный мир. А вот захочу я убрать нафиг эту гору в 100:100, что мне делать? Ну конечно же бросить твой мир и поставить православный майнкрафт.
Аноним 29/01/17 Вск 11:02:15  403252
>>403166 (OP)
А, ну и ещё дkя развития твой депрессии, рекомендую глянуть Space Engine
Аноним 29/01/17 Вск 11:02:38  403253
>>403251
Купи пару байт на сервере и делай с горой что хочешь. Для остального тебе хватит майнкрафта, мальчик.
Аноним 29/01/17 Вск 11:11:29  403254
>>403252
Ну не того масштаба задумка. Спейсенжин оперирует уже известными данными, а значит они на жестаке хранятся, я же предлагаю генератор, который в теории сможет создавать не только плоскую поверхность, но и поверхность планеты вплоть до мельчайших деталей не зависимо от её размера, используя долготу/широту как координаты XY.
Суть в том, что размер жестака ограничен, а сам жестак довольно дорог если нужно юзать гигантские данные, в отличие от того же посредственного ЦПУ которого хватит на область обзора. Принцип как в ГТА - чем дальше видишь тем выше нагрузка на проц. Есть некоторая приемлемая дальность обзора, общая для всех людей, в которой для генерации объектов хватит даже калькулятора.
Аноним 30/01/17 Пнд 22:35:13  403478
бамп
Аноним 30/01/17 Пнд 23:26:59  403483
>>403254
В двух словах это называется unlimited detail, гугли подходы. Вполне себе научная проблема (если считать CS наукой)
Аноним 31/01/17 Втр 02:31:53  403488
1m2di8mp.JPG (454Кб, 2560x1600)
>>403166 (OP)
Все, что ты тут напридумывал, давно уже реализовано.
Аноним 31/01/17 Втр 08:10:45  403499
>>403488
в неимоверно примитивной графике для экономии памяти, вместо нормальных моделей
Аноним 31/01/17 Втр 08:31:47  403504
>>403499
Тут веге протекло или что? Иди ведьмака перепройди, ты не перепроходил сегодня.
Аноним 31/01/17 Втр 08:57:16  403506
220px-GoSeigen-[...].png (64Кб, 220x220)
>>403499
>пок-пок игра говно - графика примитивная
Аноним 31/01/17 Втр 08:58:39  403507
ChessImager.php.png (43Кб, 536x536)
>>403506
Аноним 31/01/17 Втр 18:42:30  403544
>>403254
>Спейсенжин оперирует уже известными данными, а значит они на жестаке хранятся, я же предлагаю генератор, который в теории сможет создавать не только плоскую поверхность, но и поверхность планеты вплоть до мельчайших деталей не зависимо от её размера, используя долготу/широту как координаты XY
Целая вселенная на жестаке хранится, да? Ты все же посмотри, это как раз, то что ты предлагаешь.
Аноним 31/01/17 Втр 18:46:07  403545
>>403544
Я предлагаю то же самое но с возможностью высадки на любую планету без загрузок и швов, о чём писалось выше.
>>403506
>>403507
Чому тогда в майнкрафт играют школьники а не гроссммейстеры?
Аноним 31/01/17 Втр 18:49:01  403548
>>403545
>Я предлагаю то же самое но с возможностью высадки на любую планету без загрузок и швов, о чём писалось выше.
Ты все таки посмотри Space Engine
Аноним 31/01/17 Втр 18:50:11  403549
>>403548
Но там же из описания и так всё ясно, или я не прав?
Аноним 31/01/17 Втр 18:56:50  403551
>>403504
Я не пойму чего вам так печот то? Майнкрафт говно - это неоспоримый факт, можно даже на скриншоты не смотреть. Я же ратую за техническое исполнение. Воксели это хорошо, но что, если бы память расходовалась только на изменения в неограниченном сгенерированном мире, а не на весь этот мир. Тогда можно было бы даже в такое говно графон завезти без потери производительности.
Аноним 31/01/17 Втр 18:59:58  403552
>>403549
не прав. Там все процедурно генерируется, кроме солнечной системы. Швы есть, но их всего два - между системой звезды и галактикой, и между галактикой и скоплениями галактик. И подгружаются они настолько быстро, что заметишь ты их только играя на калькуляторе
Аноним 31/01/17 Втр 19:02:22  403553
>>403551
Епта, ну ты подсчитай конкретно, сколько тебе этой самой памяти понадобится. Заодно подкачаешь скилл в комбинаторике (и поймешь разницу между идеей и реализацией)
Аноним 31/01/17 Втр 19:03:36  403554
>>403552
В принципе я так и думал, что известные звёзды заведены в базу, солнечная система даже с правильными скинами, а далёкие галактики генерируются, но повторюсь, можно генерировать вообще всё это пространство и ещё миллион раз столько же, без швов, вместе с поверхностью планет, вместе с рельефом и формами жизни на этих планетах, достаточно лишь генератора равномерно распределяющего псевдослучайные числа..
Аноним 31/01/17 Втр 19:05:38  403556
>>403554
Братишка, я тебя умоляю, скачай пейсэнжн и поиграйся там с колесиком мышки. Если после этого вопросы ещё останутся, тогда задавай.
Аноним 31/01/17 Втр 19:12:37  403557
>>403553
Допустим поле зрения одного юзера 1ГБ, на каждый объект понадобится 8 Байт координат, сгенерировано может быть 1ГБ/8Б = 125000 объектов из которых 99% будут неактивными, вроде камушков или травы выской полигональности. Тоесть если растянуть всю эту хуйню на масштаб метр-точка, то оперативной памяти в 1ГБ хватит для обсчёта обзора дальностью ~ 62км 500м.
Аноним 31/01/17 Втр 19:14:08  403558
>>403556
Принеси мне покушать видео с ютуба.
Аноним 31/01/17 Втр 19:16:29  403559
>>403557
Это ограничение только дальности обзора, при этом дальность передвижения по генерируемому миру не ограничена, нужно лишь будет хранить от n байт памяти под координаты юзера.
Аноним 31/01/17 Втр 19:18:11  403560
Как блядь генерировать разреженные области и скопления объектов?
Аноним 31/01/17 Втр 19:19:58  403561
>>403560
Единственная нормальная мысль пока это разделить скопления с разреженностями на классы и генерировать их чередуя, в них самих генерировать направления генерации и по направлениям генерировать объекты.
Аноним 31/01/17 Втр 19:22:37  403562
>>403560
Perlin noise тебе в помощь.
Этот вопрос говорит, о том, что ты хуй, и понятия не имеешь как на практике подступиться к твоей охуительной идее
Аноним 31/01/17 Втр 19:25:04  403563
>>403562
Вообщет имею >>403561, но я всёравно хуй, не так ли.
Аноним 31/01/17 Втр 19:29:25  403564
>>403560
О сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг
Аноним 01/02/17 Срд 18:39:52  403636
Ну молодец, мальчик, придумал процедурную генерацию. В самой первой элите это еще было. В миникруфте это есть. Даже в дварффортресс. Каждый генерит у себя - это уже годная идея. Вот только ответь, что ты будешь делать с читаками и как, блять, сделать этот мир изменяемым. Если же там даже цветок нельзя посадить так, чтобы сразу же у всех остальных это изменение было - игра говно и скучная.
Аноним 01/02/17 Срд 20:45:09  403645
>>403636
Читы преувеличены. Изменения нужно хранить. Есть 2 пути - хранить на сервере и платить за дисковое пространство или хранить у себя выступая сервером и терять изменения при отключении.
Аноним 01/02/17 Срд 22:09:02  403649
>>403645
>и терять изменения при отключении.
Что это значит?
Если несколько игроков в одном и том же месте по очереди построятся, что делать будешь?
>Читы преувеличены.
Анус твой преувеличен, точнее прерастянут, умник хуев.
Аноним 01/02/17 Срд 22:12:21  403650
>>403649
1 всем раздам изменения ибо нехуй
2 папке своему это скажи.
Аноним 02/02/17 Чтв 14:38:03  403697
Привет, опик, я так понял, реализовывать все это ты собираешься на сихе?
Почитай о генерации обьектов в вове, там очень интересная реализация. а еще хранение данных в .MPQ
Там такая система, что весь вов лежит, по сути, в одной библиотеке(составленной из кучи других) , а загрузочные экраны выполняют там не совсем функцию "швов". Короче, ты поймешь, если почитаещь.
Аноним 02/02/17 Чтв 19:08:46  403739
>>403697
сиха или ява, как бы похуй, моих мозгов всёравно не хватит GL прикрутить, просто тема интересна. Опять же реализация судя по наличии подгрузок это не канон. Шум перлина подходит хорошо, но я пока его не осилил чтоб на практике применять.
Аноним 02/02/17 Чтв 19:40:20  403740
>>403739
Я тебе и говорю, что подгрузки там нет. Экраны там в целях экономии ресурсов, и присутствуют там по еще куче самых разных аспектов.

Генерации там нет, но это просто прекрасный пример работы сервер-юзер в прогрессии
Аноним 02/02/17 Чтв 19:45:48  403741
>>403740
Без генерации есть существенные ограничения.
Аноним 03/02/17 Птн 08:24:19  403757
Шум.png (47Кб, 1024x512)
Продолжаем мирогенерацию. Сейчас экспериментирую с интерполяцией. Пока результат не сильно похож на перлина. Вместо цветов используется размер объектов.
Аноним 03/02/17 Птн 09:40:15  403760
>>403545
>чому тогда в майнкрафт играют школьники...
Школьники и в шахматы играют. Вот я, например в сци же можно до 18 лет А в майнкрафт игают и люди, которые могут в ней построить очень красивое произведние. А школьникам нельзя чтоли играть в него?
Аноним 03/02/17 Птн 19:33:59  403792
>>403760
Школьники это школьники, они мало знают, мало умеют, много шумят, даже просто играя в игру против школьника или в переписке, по его поведению сразу видно что он школьник, вот как ты.
Аноним 03/02/17 Птн 19:54:34  403793
>>403792
>в переписке, по
Запятая не нужна.
>видно что
Запятая нужна.

Как ты ЕГЭ сдавать будешь, ума не приложу.
Аноним 03/02/17 Птн 19:57:28  403794
Шум.png (57Кб, 1024x512)
Тема с генерацией мира продолжается. Спустя пару дней изысканий спасибо анону и товарищу Перлину, результат на пике, код богомерского жс на пастабине.

http://pastebin.com/w1tn4HV8
Аноним 03/02/17 Птн 19:58:37  403795
>>403793
Я русский язык в школе не учил. Есть предметы куда интереснее.
Аноним 03/02/17 Птн 20:03:56  403796
>>403795
В школе кроме языков, физры, геометрии и химии буквально одна хуета.
Аноним 03/02/17 Птн 20:05:37  403797
>>403796
Ты не поверишь, но большей хуиты чем твои предпочтения просто не существует.
Аноним 03/02/17 Птн 20:07:06  403799
Шум.png (280Кб, 1024x512)
Тот же шум промасштабированный в 8 раз и разреженный в 1,5 раза.
Аноним 03/02/17 Птн 20:12:10  403800
>>403797
Щас бы быть неграмотным сколиозником без пространственного мышления и без знания как выбрать безопасный для здоровья стекломой.
Аноним 03/02/17 Птн 20:15:10  403801
>>403800
Начни с определения пространственного мышления.
Аноним 03/02/17 Птн 20:22:22  403802
>>403801
А закончим чем, определением сознания? Иди сразу нахуй.
Аноним 03/02/17 Птн 20:22:53  403803
>>403802
чтд
Аноним 03/02/17 Птн 22:45:43  403813
>>403792
Ты меня расстроил. Я чувствую небольшой гнев.
Аноним 04/02/17 Суб 17:49:28  403853
Ну что анончики, вот и долгожданный результат. С момента старта треда шумогенератор был дополнен интерполяцией, сейчас ещё и вероятностями. Псевдослучайный генератор имеет почти ненавязчивую паттернизацию и может использоваться для генерации карты высот или ландшафтов. В общем код на гитхабе, можно баловаться реалтайм https://anonymoves.github.io/WorldGen/.
Теперь следующий шаг - как прикрутить движок к 3D? Реквестирую простейший способ или помощь могущего анона.По опыту знаю, среди вас есть те кто делает 3D движки за 15 минут, я же его смогу создать лишь за год.
Аноним 04/02/17 Суб 17:59:32  403854
Шум.png (58Кб, 500x500)
Шум1.png (22Кб, 500x500)
Аноним 05/02/17 Вск 04:13:53  403878
>>403796
А история, биология, etc*?
Аноним 05/02/17 Вск 07:55:02  403883
>>403878
Есть ряд предметов, в которых преподаётся заведомая хуета для якобы развития мышления и тренировки. Физика, история, биология.
Отличная идея, пидоры - тратить 10 лет жизни на тренировку абстрактной непроверяемой хуйни. Не иначе жиды придумали.
Аноним 05/02/17 Вск 10:43:07  403889
>>403883
физика и биология это не абстрактная, непроверяемая хуйня.
Аноним 05/02/17 Вск 17:59:51  403917
>>403889
Лбом-то стучишь об пол, когда повторяешь мантры?
Аноним 05/02/17 Вск 18:39:33  403921
>>403883
>заведомая хуета для якобы развития мышления >Физика, история, биология
Историк, ето ти? Если по тебе резко уебать 30 мегаджоулями - твоя личная биология станет историей.
Аноним 06/02/17 Пнд 10:59:07  403964
>>403889
>физика
>непроверяемая хуйня
Толсто.
Аноним 07/02/17 Втр 00:12:43  404051
>>403166 (OP)
Слишком затратная/запутанная/непотянетуменя идея.
Аноним 07/02/17 Втр 08:11:29  404066
>>404051
Почему?
Аноним 07/02/17 Втр 09:32:23  404071
>>403166 (OP)
>Общаться будем за
Шлюхин сын, ты русишу прогуливал ит теперь на саентач припёрся, селюк ебаный.
Аноним 07/02/17 Втр 19:29:50  404158
hqdefault.jpg (28Кб, 480x360)
>>404071
Дурашка
Аноним 07/02/17 Втр 20:28:35  404168
>>403166 (OP)
по сути земная поверхность это х,у и зед для высоты. скрыл тред.
Аноним 07/02/17 Втр 20:48:41  404169
>>403166 (OP)
ладно. снизойду даже зная что анон туп злобен и будет кидаться дерьмом ведь он ебаная обезьяна.

чтобы гора у всех генерировалась в одном и том же месте нужен одинаковый алгоритм и одинаковое зерно.

традиционно все обьекты на картах жранятся как координата в мире где будет ноль у обьекта. и сами обьекты которые вставляются в мир с нолем указанным ранее. и рисуются от этого ноля.

карта координат может быть зашитой в тридемодель на этапе моделирования. так делают йобу - расставляют хуйню запекают и радуются.

генерация же точно так же расставляет хуйню какую ты укажешь но никакого левелдизайна не будет. будет рандомная хуйня с рандомным шансом вырвиглазная. как 90% планет из 2^64 возможных в нмс.

далее. про каких юзеров речь не понятно. если это ммо тогда качать дополнительные данные верх тупости. ммо нужно проектировать так что бы все твои данные умноженные на количество игроков или даже на их факториал влезали в самый днищеканал из возможных. если это сингл тогда тем более забивать проц лишними вычислениями неоправданно тупо.

короче память ограничена. количество операций за 15 милисекунд ограничено. как минимум это нужно держать в голове прежде чем начинать проектирование чего либо.
Аноним 07/02/17 Втр 21:02:56  404170
>>403166 (OP)
Идея стара как мир, ты изобретаешь провалившийся No man's sky.
Аноним 07/02/17 Втр 21:06:55  404171
>>404169
Если генерировать всё последовательно, с одного сида - то чтобы получить информацию о 100001-м объекте, тебе придётся сгенерить все предыдущие.
Лучше сделать псевдослучайную фукцнию кординаты -> содержимое.

Например, если адаптировать твою идею - рахбить пространство на блоки, и содержимое каждого блока генерить независимо с его собственного сида. А сам сид вычислять как какой-нибудь md5(x,y,z).
Тогда чтобы увидеть объект в далёкой жопе - не придятся строить все предыдущие.
Аноним 07/02/17 Втр 21:22:07  404172
По порядку:
>>404169
Про объекты ты непонятно задвинул.
Левелдизайн это фича, а не баг. Храни на жестаке любой левелдизайн, основная масса же объектов может быть сгенерирована, вплоть до городов с подземкой.

Юзер это юзер. Мне кажется нелепо называть его просто камерой в пространстве.

Из данных нужны только координаты активных объектов и статусы\смещения пассивных активными. Само собой уложиться можно и в 128 байт на каждый активный объект. А при желании даже в 32 и меньше, используя битовые поля(си) или просто битоёблю.

Памяти использовать можно от 100 байт, игнорируя часть не генерируемых данных. Поле генерации можно сузить до поля обзора. Тоесть генерировать объекты только по повпавшим в поле обзора координатам. Воображаемые вычислительные затраты уменьшатся примерно в 3 раза.
>>404170
Хуже, я нихуя почти не сделал.
>>404171
Чтобы получить информауию о 100001-м объекте нужны лишь его координаты. В этом суть и смысл задумки. Координаты это его всё.
>Лучше сделать псевдослучайную фукцнию кординаты -> содержимое.
Тред не читай. Пол треда это твержу.

Строить все предыдущие не нужно. Завязка жёсткая на координаты. Только координаты и решают что генерировать и где. Короче см. поле обзора.
Аноним 07/02/17 Втр 21:22:59  404173
>>404171
Специально для тебя продублирую ссылку https://anonymoves.github.io/WorldGen/
Генерация завязана на координаты.
Аноним 07/02/17 Втр 21:34:15  404175
>>404173
ну нмс же. впрочем занятно.
Аноним 08/02/17 Срд 07:56:48  404192
И все равно виднеется характерная периодичность узора - т.е. мир не такой уж и бесконечно рандомный.

Думаю, здесь поможет улиточка фрактальная функция.
Аноним 08/02/17 Срд 09:09:36  404194
Безымянный.png (176Кб, 1205x613)
Или даже смесь из фрактала и шума перлина.

А вообще..
Для абсолютной рандомной бесконечности генерируемого мира можно отталкиваться от расширяющейся Вселенной.
Координата [0,0] это центр виртуальной вселенной.
В зависимости от удаленности от центра берем получившийся радиус и ставим его как переменную шума генерируемой местности.

Вся вселенная разбита на кольца. Можно также разделить на 4 зоны.

[-1:+1],[+0:+1],[+1:+1]
[-1:+0],[+0:+0],[+1:+0]
[-1:-1],[+0:-1],[-1:+1]


Если игрок находится на расстоянии 100 условных единиц от центра, при этом он находится ниже центра, при этом он находится правее центра, то его позицию можно описать так:
R = 100;
xOffset = 1;
yOffset = -1;

Эти три переменные и будут задавать шум для текущего окружения (в определенной площади).

З.Ы: Надеюсь, анон, ты поймешь, какую идею я пытаюсь донести.
Аноним 08/02/17 Срд 09:11:16  404195
>>404194
>[-1:+1],[+0:+1],[+1:+1]
>[-1:+0],[+0:+0],[+1:+0]
>[-1:-1],[+0:-1],[+1:-1]
Аноним 08/02/17 Срд 09:25:21  404197
giphy[1].gif (1100Кб, 385x480)
Привет
Аноним 08/02/17 Срд 09:26:50  404199
giphy[1].gif (994Кб, 600x600)
Аноним 08/02/17 Срд 19:04:14  404241
>>404192
Он не бесконечно рандомный, он просто бесконечный. Узорчатость легко нивелируется счётчиком в формуле, тогда будет вообще каша.
Аноним 08/02/17 Срд 19:06:55  404242
>>404194
Всё понятно, но что мешает использовать стрые добрые XY начиная от нуля? Грубо говоря 1 бит может решать за отрицательность координат и генерацию объектов и мы без изъёбств приходим в бесконечный квадратный мир.
Аноним 09/02/17 Чтв 02:14:39  404288
14720560026770.gif (516Кб, 650x650)
14850433429010.gif (2074Кб, 500x500)
14850433429441.gif (1888Кб, 500x500)
14850433430183.gif (2115Кб, 516x700)
>>404197
>>404199
Аноним 09/02/17 Чтв 10:52:26  404310
я все понять не могу. это прогрессивное решение или шизофрения какая то.
Аноним 09/02/17 Чтв 15:10:21  404320
>>404310
Это процедурная генерация которой уже сто лет в обед, право на жизнь имеет, используется, но это не серебряная пуля и не золотой Грааль.
Аноним 09/02/17 Чтв 16:43:20  404326
>>404320
нет. это понятно. но вот детали. города например процедурные. не слишком ли? или например пространные рассуждения о двухмерной карте которые выглядят так будто именно тут то самая изюминка. но я сколько не медитирую не нахожу изюминки. я не говорю что в этом нет смысла. просто совершенно не врубаюсь этот смысл. вот и спрашиваю.
Аноним 09/02/17 Чтв 17:20:04  404329
>>404326
>города например процедурные. не слишком ли?
Качни Houdini, студия тридэ для VFX, он буквально про это всё. Там туторы про создание процедурных зданий, процедурных улиц, неба, Аллаха. Выглядит ровно настолько не уёбищно, насколько талантлив кодер-автор процедуры.
Аноним 09/02/17 Чтв 22:04:19  404344
>>404329
BUENO
Аноним 13/02/17 Пнд 19:23:05  404620
Добавил анимацию передвижения по генерируемой карте. Бугага.

https://anonymoves.github.io/WorldGen/
Аноним 13/02/17 Пнд 19:25:16  404621
Шум.png (10Кб, 300x300)
Аноним 14/02/17 Втр 06:20:26  404646
VbG6PSJ[1].png (136Кб, 1089x581)
220px-MobiusStr[...].png (38Кб, 220x174)
>>403166 (OP)
Пытаюсь вникнуть в суть...
>можно запилить великое множество виртуальных вселенных практически неограниченного размера.
Да, если отображать только ограниченное пространство в поле зрения игрока, в зависимости от его координат.
Пик1 - размер мира в игре Майнкрафт.

>По сути земная поверхность это 2-х мерное пространство из координат XY.
Да.

>Используя особый псевдослучайный алгоритм
>(мирогенератор) мы разместим на карте
>сгенерированные объекты разной формы и размеров,
>взяв координаты за основу.
Т. е. ты хочешь развернуть детерминированную псевдослучайную генерацию объектов исходя из координат игрока?
Каким образом ты планируешь завязать получение координат объектов из координат положения игрока?
>Тоесть алгоритм пробежавшись по зоне видимости юзера
>генерирует объекты допустим горы, траву, ямы, скалы, камни, одиночные постройки и даже целые города.
Такая динамическая генерация объекта зависит не только от координат места положения игрока,
но и от направления взгляда, угла обзора, так сказать, который может меняться вне зависимости от координат игрока...
Т. е. тебе придётся завязать эту твою мирогенерацию на координаты точки фокусировки внимания под определённым углом.
>Самая мякотка псевдослучайности - это равномерное распределение
>и то, что объект генерируемый по координатам для каждого пользователя будет выглядеть одинаково в одном и том же месте.
Глянь обзоры Battlefield 4.
>Допустим если алгоритм сгенерирует гору с координатами 100;100, то каждый юзер,
>в поле зрения которого попали эти координаты увидит в этих координатах один
>и тот же объект, при том что генерироваться он будет у каждого юзера независимо.
Предлагаешь вгрузить, собрать и воспроизвести эту гору из текстур?
>Что это даёт -
>полное отсутствие необходимости хранения или передачи информации о объектах на карте
А если эти объекты движутся?
>или самой карты.
Если объекты одинаковы и неподвижны, можно вгрузить их текстуры,
и координаты их местоположений, связав их в одну систему.
Это и есть тот самый псевдослучайный алгоритм генерации, твой, который картой и является, походу.
>Что в свою очередь даёт практически неограниченное пространство.
Ничто не мешает зациклить это твоё 2D в бесконечность, так сказать замкнуть плоскость в ленту Мёбиуса. Пик2.
>Каждому юзеру достаточно иметь на компьютере модели и алгоритмы генерации объектов
>и по желанию координаты отдельных массивов вроде городов, лесов, особых моделей и событий и т.д.
>чтобы получить неограниченную вселенную,
>правила генерации которой регулировались бы некоей константой.
Какой такой константой, если именно алгоритм предопределяет генерацию псевдослучайных значений (объектов)?
Ты имеешь в виду seed?
>Единственный возможный ресурс этой вселенной - память - дисковое пространство сервера,
>хранящего пользовательские объекты и модели,
>только его можно было бы и продавать, что было бы "канонично".
Помимо памяти, есть ещё и вычислительные ресурсы, которые позволяют всё это воспроизводить (генерировать).
(Смотри Принципы фон Неймана).
>Для самой карты требовалось бы несколько десятков байт под координаты огромных значений,
Каких таких байт? В которых содержится адрес доступа к ещё большему числу байт?
>что позволило бы в виртуальном мире уебать в закат в вечном движении и никогда не достичь
>края плоского виртуального мира.
Тогда, этот виртуальный мир - будет повторяться же, не?
Пусть и с большими периодами, но всё-же.
Даже здесь, повторы есть (период 2^55-1 значений):
https://connect.microsoft.com/VisualStudio/feedback/details/634761/system-random-serious-bug

Алсо, есть разделы: /s, /vg, /bg, /brg, /td и /pr
Аноним 14/02/17 Втр 08:15:53  404657
Координаты есть координаты. Результат можно глянуть на гитхабе(ссылку давал пару постов назад), считай как модель передвигающегося персонажа с генерацией мира. Координаты постепенно увеличиваются, видны все повторения генерируемых куч и мерцание от интерполяции. Процессорное время на каждый кадр тратится одинаковое, область видимости может быть хоть треугольной и вращаться, координаты от того не изменятся.
Аноним 14/02/17 Втр 08:36:05  404659
4[1].jpg (20Кб, 393x389)
slide14[1].jpg (43Кб, 960x720)
>>404657
>Координаты постепенно увеличиваются
Они увеличиваются на гипотетической плоскости.
Но вижу повторы и цикличность.
>координаты от того не изменятся.
Если рассматривать это как движение по окружности или эллипсу внутри цилиндра, то координаты при движении изменяются лишь относительно наблюдаемых объектов.
Аноним 14/02/17 Втр 19:46:35  404694
Шум.png (76Кб, 1000x500)
>>404659
Движение по карте не ограничено, это не движение по окружности, а смещение координат. Фактически координаты рассчитываются как x0 = x1 + x2, где x1 координаты объекта на отображаемом поле, x2 это увеличивающийся счётчик, то есть что то вроде пройденного расстояния по оси x. Таким образом несмотря на цикличность, размер карты ограничен лишь количеством байт отводимых под координаты. Видимая цикличность это фича псевдослучайного алгоритма, конкретно вычисляется по формуле "(x ^ y) % max", я могу его разбавить энтропией в виде счётчика чисто для наглядности, поскольку просто счётчик делает генерацию неповторимой на каждый кадр, его нужно уменьшать перед отрисовкой очередного кадра, тогда цикличность узора будет исключена в принципе (пик).
Аноним 14/02/17 Втр 19:58:15  404695
>>404659
Корректнее будет сказать, что координаты изменяются у объектов. Я согласен с тем, что карта похожа на поверхность циллиндра сферы, но размер этой сферы может быть колоссальным. В миллиард раз больше чем майнкрафтова карта показанная здесь >>404646, поскольку сама карта в памяти не хранится, а под координаты размер карты, расстояние которое можно пройти, можно отвести хоть пару гигабайт.

Грубо говоря, всех людей планеты не хватит для создания ситуации на карте когда двое смогут встретиться.
Аноним 15/02/17 Срд 05:45:41  404716
>>404694
>(x ^ y) % max
Чтоб получить равномерное распределение выходных значений генератора
- можешь взять число max - простым,
вместо X - первообразный корень от этого простого числа,
а на Y подавать какую-нибудь функцию от двух переменных f(x, y),
которая не коммутативна.
Т. е. если взять в качестве функции сумму (x+y),
то при x = 5; y = 2 - результат будет 7,
но при x = 2; y = 5 - результат тоже будет 7,
потому что операция сложения - коммутативна.
Короче, можешь взять минус.
http://kaf401.rloc.ru/Criptfiles/primroots.htm

Аноним 15/02/17 Срд 08:09:34  404721
>>404716
max менять нельзя, это количество видов объектов, остаток от деления на это число является одним из max объектов.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 99 | 17 | 29
Назад Вверх Каталог Обновить

Топ тредов
Избранное