Вы видите копию треда, сохраненную 30 июля 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
В тред приглашаются математики, программисты и философы. Общаться будем за генерацию виртуальных миров.
В общем меня давно посетила мысль, что можно запилить великое множество виртуальных вселенных практически неограниченного размера.
Начальная вселенная из 2-х уровней - земная поверхность и атмосфера. Пока не нужно трогать космос и недра, для простоты восприятия.
По сути земная поверхность это 2-х мерное пространство из координат XY.
Теперь описание того о чём именно я толкую. Представим что в пустом 3-х мерном пространстве у нас стоит юзер, имеющий некоторое поле обзора. Он видит пустую землю и атмосферные эффекты вроде неба.
Используя особый псевдослучайный алгоритм (мирогенератор) мы разместим на карте сгенерированные объекты разной формы и размеров, взяв координаты за основу. Тоесть алгоритм пробежавшись по зоне видимости юзера генерирует объекты допустим горы, траву, ямы, скалы, камни, одиночные постройки и даже целые города. Самая мякотка псевдослучайности - это равномерное распределение и то, что объект генерируемый по координатам для каждого пользователя будет выглядеть одинаково в одном и том же месте.
Допустим если алгоритм сгенерирует гору с координатами 100;100, то каждый юзер, в поле зрения которого попали эти координаты увидит в этих координатах один и тот же объект, при том что генерироваться он будет у каждого юзера независимо.
Что это даёт - полное отсутствие необходимости хранения или передачи информации о объектах на карте или самой карты.
Что в свою очередь даёт практически неограниченное пространство. Каждому юзеру достаточно иметь на компьютере модели и алгоритмы генерации объектов и по желанию координаты отдельных массивов вроде городов, лесов, особых моделей и событий и т.д., чтобы получить неограниченную вселенную, правила генерации которой регулировались бы некоей константой. Единственный возможный ресурс этой вселенной - память - дисковое пространство сервера, хранящего пользовательские объекты и модели, только его можно было бы и продавать, что было бы "канонично".
Для самой карты требовалось бы несколько десятков байт под координаты огромных значений, что позволило бы в виртуальном мире уебать в закат в вечном движении и никогда не достичь края плоского виртуального мира.
Есть генератор пикрл результат, ему нехватает скоплений объектов с повышенной концентрацией объектов определённого типа и разреженных областей.
Что думаете? Как пофиксить?
Код генератора:
http://pastebin.com/pY27v1LF
Ну изобрёл ты peer-to-peer мирогенерацию, ок. Игру так не сделаешь - читы для такого ММО будут просто охуенными.
Например, другой сид.
Единственная игра без читов сейчас - это WOT, в которой всё на сервере, даже небо, даже Аллах, игроки просто команды WASD по сети посылают и смотрят, что выходит.
Можно пойти по дорожке криптовалют, но тогда ты получишь очень большую избыточность и вся мякотка твоего птп теряется. Если каждый клиент будет сервером, почему бы не обойтись одним сервером по старинке?
Кому ты пиздишь? Одни только моды автонаводки в вотах чего стоят. Там читы просто яебу, та же хуйня что и читы в первом думе по сути. Твои воты могли бы жить без читов будь у них облачные вычисление, но это же донатные игрушки для нищенок, как у мейлру.
>Одни только моды автонаводки в вотах чего стоят.
Нихуя они не стоят, потому что их нельзя отличить от скилла.
А вот воллхаки и спидхаки принципиально нереализуемы. Сервер знает, что за кустом тебе нихуя не видно - сколько ни убирай куст в клиенте, нихуя не увидишь. Авторитаризм, православие и прогресс.
Нет смысла клиенту быть сервером, кроме как чтобы раздать координаты и модели которых нет у остальных. Это легко контролируется, клиент просто станет репозиторием с файлами. Жёсткая логика не даст обойти математические законы незаметно. Всё что сможет читер это отправить клиенту хитровыебанную трёхмерную модель или натыкать себе\убрать объекты через изменение исполняемого кода, по сути вообще лишив карту смысла и читерство корректнее будет называть атакой, ибо это уже пиздец.
Спидхак сам по себе безобиден.
Охуеть интересно - полностью статичный мир. А вот захочу я убрать нафиг эту гору в 100:100, что мне делать? Ну конечно же бросить твой мир и поставить православный майнкрафт.
А, ну и ещё дkя развития твой депрессии, рекомендую глянуть Space Engine
Купи пару байт на сервере и делай с горой что хочешь. Для остального тебе хватит майнкрафта, мальчик.
Ну не того масштаба задумка. Спейсенжин оперирует уже известными данными, а значит они на жестаке хранятся, я же предлагаю генератор, который в теории сможет создавать не только плоскую поверхность, но и поверхность планеты вплоть до мельчайших деталей не зависимо от её размера, используя долготу/широту как координаты XY.
Суть в том, что размер жестака ограничен, а сам жестак довольно дорог если нужно юзать гигантские данные, в отличие от того же посредственного ЦПУ которого хватит на область обзора. Принцип как в ГТА - чем дальше видишь тем выше нагрузка на проц. Есть некоторая приемлемая дальность обзора, общая для всех людей, в которой для генерации объектов хватит даже калькулятора.
В двух словах это называется unlimited detail, гугли подходы. Вполне себе научная проблема (если считать CS наукой)
в неимоверно примитивной графике для экономии памяти, вместо нормальных моделей
>Спейсенжин оперирует уже известными данными, а значит они на жестаке хранятся, я же предлагаю генератор, который в теории сможет создавать не только плоскую поверхность, но и поверхность планеты вплоть до мельчайших деталей не зависимо от её размера, используя долготу/широту как координаты XY
Целая вселенная на жестаке хранится, да? Ты все же посмотри, это как раз, то что ты предлагаешь.
>Я предлагаю то же самое но с возможностью высадки на любую планету без загрузок и швов, о чём писалось выше.
Ты все таки посмотри Space Engine
Я не пойму чего вам так печот то? Майнкрафт говно - это неоспоримый факт, можно даже на скриншоты не смотреть. Я же ратую за техническое исполнение. Воксели это хорошо, но что, если бы память расходовалась только на изменения в неограниченном сгенерированном мире, а не на весь этот мир. Тогда можно было бы даже в такое говно графон завезти без потери производительности.
не прав. Там все процедурно генерируется, кроме солнечной системы. Швы есть, но их всего два - между системой звезды и галактикой, и между галактикой и скоплениями галактик. И подгружаются они настолько быстро, что заметишь ты их только играя на калькуляторе
Епта, ну ты подсчитай конкретно, сколько тебе этой самой памяти понадобится. Заодно подкачаешь скилл в комбинаторике (и поймешь разницу между идеей и реализацией)
В принципе я так и думал, что известные звёзды заведены в базу, солнечная система даже с правильными скинами, а далёкие галактики генерируются, но повторюсь, можно генерировать вообще всё это пространство и ещё миллион раз столько же, без швов, вместе с поверхностью планет, вместе с рельефом и формами жизни на этих планетах, достаточно лишь генератора равномерно распределяющего псевдослучайные числа..
Братишка, я тебя умоляю, скачай пейсэнжн и поиграйся там с колесиком мышки. Если после этого вопросы ещё останутся, тогда задавай.
Допустим поле зрения одного юзера 1ГБ, на каждый объект понадобится 8 Байт координат, сгенерировано может быть 1ГБ/8Б = 125000 объектов из которых 99% будут неактивными, вроде камушков или травы выской полигональности. Тоесть если растянуть всю эту хуйню на масштаб метр-точка, то оперативной памяти в 1ГБ хватит для обсчёта обзора дальностью ~ 62км 500м.
Принеси мне покушать видео с ютуба.
Это ограничение только дальности обзора, при этом дальность передвижения по генерируемому миру не ограничена, нужно лишь будет хранить от n байт памяти под координаты юзера.
Единственная нормальная мысль пока это разделить скопления с разреженностями на классы и генерировать их чередуя, в них самих генерировать направления генерации и по направлениям генерировать объекты.
Perlin noise тебе в помощь.
Этот вопрос говорит, о том, что ты хуй, и понятия не имеешь как на практике подступиться к твоей охуительной идее
О сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг
Читы преувеличены. Изменения нужно хранить. Есть 2 пути - хранить на сервере и платить за дисковое пространство или хранить у себя выступая сервером и терять изменения при отключении.
>и терять изменения при отключении.
Что это значит?
Если несколько игроков в одном и том же месте по очереди построятся, что делать будешь?
>Читы преувеличены.
Анус твой преувеличен, точнее прерастянут, умник хуев.
Почитай о генерации обьектов в вове, там очень интересная реализация. а еще хранение данных в .MPQ
Там такая система, что весь вов лежит, по сути, в одной библиотеке(составленной из кучи других) , а загрузочные экраны выполняют там не совсем функцию "швов". Короче, ты поймешь, если почитаещь.
сиха или ява, как бы похуй, моих мозгов всёравно не хватит GL прикрутить, просто тема интересна. Опять же реализация судя по наличии подгрузок это не канон. Шум перлина подходит хорошо, но я пока его не осилил чтоб на практике применять.
Я тебе и говорю, что подгрузки там нет. Экраны там в целях экономии ресурсов, и присутствуют там по еще куче самых разных аспектов.
Генерации там нет, но это просто прекрасный пример работы сервер-юзер в прогрессии
Без генерации есть существенные ограничения.
>чому тогда в майнкрафт играют школьники...
Школьники и в шахматы играют. Вот я, например в сци же можно до 18 лет А в майнкрафт игают и люди, которые могут в ней построить очень красивое произведние. А школьникам нельзя чтоли играть в него?
Школьники это школьники, они мало знают, мало умеют, много шумят, даже просто играя в игру против школьника или в переписке, по его поведению сразу видно что он школьник, вот как ты.
>в переписке, по
Запятая не нужна.
>видно что
Запятая нужна.
Как ты ЕГЭ сдавать будешь, ума не приложу.
http://pastebin.com/w1tn4HV8
Щас бы быть неграмотным сколиозником без пространственного мышления и без знания как выбрать безопасный для здоровья стекломой.
чтд
Ты меня расстроил. Я чувствую небольшой гнев.
Теперь следующий шаг - как прикрутить движок к 3D? Реквестирую простейший способ или помощь могущего анона.По опыту знаю, среди вас есть те кто делает 3D движки за 15 минут, я же его смогу создать лишь за год.
Есть ряд предметов, в которых преподаётся заведомая хуета для якобы развития мышления и тренировки. Физика, история, биология.
Отличная идея, пидоры - тратить 10 лет жизни на тренировку абстрактной непроверяемой хуйни. Не иначе жиды придумали.
Лбом-то стучишь об пол, когда повторяешь мантры?
>заведомая хуета для якобы развития мышления >Физика, история, биология
Историк, ето ти? Если по тебе резко уебать 30 мегаджоулями - твоя личная биология станет историей.
Почему?
>Общаться будем за
Шлюхин сын, ты русишу прогуливал ит теперь на саентач припёрся, селюк ебаный.
Дурашка
по сути земная поверхность это х,у и зед для высоты. скрыл тред.
ладно. снизойду даже зная что анон туп злобен и будет кидаться дерьмом ведь он ебаная обезьяна.
чтобы гора у всех генерировалась в одном и том же месте нужен одинаковый алгоритм и одинаковое зерно.
традиционно все обьекты на картах жранятся как координата в мире где будет ноль у обьекта. и сами обьекты которые вставляются в мир с нолем указанным ранее. и рисуются от этого ноля.
карта координат может быть зашитой в тридемодель на этапе моделирования. так делают йобу - расставляют хуйню запекают и радуются.
генерация же точно так же расставляет хуйню какую ты укажешь но никакого левелдизайна не будет. будет рандомная хуйня с рандомным шансом вырвиглазная. как 90% планет из 2^64 возможных в нмс.
далее. про каких юзеров речь не понятно. если это ммо тогда качать дополнительные данные верх тупости. ммо нужно проектировать так что бы все твои данные умноженные на количество игроков или даже на их факториал влезали в самый днищеканал из возможных. если это сингл тогда тем более забивать проц лишними вычислениями неоправданно тупо.
короче память ограничена. количество операций за 15 милисекунд ограничено. как минимум это нужно держать в голове прежде чем начинать проектирование чего либо.
Идея стара как мир, ты изобретаешь провалившийся No man's sky.
Если генерировать всё последовательно, с одного сида - то чтобы получить информацию о 100001-м объекте, тебе придётся сгенерить все предыдущие.
Лучше сделать псевдослучайную фукцнию кординаты -> содержимое.
Например, если адаптировать твою идею - рахбить пространство на блоки, и содержимое каждого блока генерить независимо с его собственного сида. А сам сид вычислять как какой-нибудь md5(x,y,z).
Тогда чтобы увидеть объект в далёкой жопе - не придятся строить все предыдущие.
>>404169
Про объекты ты непонятно задвинул.
Левелдизайн это фича, а не баг. Храни на жестаке любой левелдизайн, основная масса же объектов может быть сгенерирована, вплоть до городов с подземкой.
Юзер это юзер. Мне кажется нелепо называть его просто камерой в пространстве.
Из данных нужны только координаты активных объектов и статусы\смещения пассивных активными. Само собой уложиться можно и в 128 байт на каждый активный объект. А при желании даже в 32 и меньше, используя битовые поля(си) или просто битоёблю.
Памяти использовать можно от 100 байт, игнорируя часть не генерируемых данных. Поле генерации можно сузить до поля обзора. Тоесть генерировать объекты только по повпавшим в поле обзора координатам. Воображаемые вычислительные затраты уменьшатся примерно в 3 раза.
>>404170
Хуже, я нихуя почти не сделал.
>>404171
Чтобы получить информауию о 100001-м объекте нужны лишь его координаты. В этом суть и смысл задумки. Координаты это его всё.
>Лучше сделать псевдослучайную фукцнию кординаты -> содержимое.
Тред не читай. Пол треда это твержу.
Строить все предыдущие не нужно. Завязка жёсткая на координаты. Только координаты и решают что генерировать и где. Короче см. поле обзора.
Специально для тебя продублирую ссылку https://anonymoves.github.io/WorldGen/
Генерация завязана на координаты.
ну нмс же. впрочем занятно.
Думаю, здесь поможет улиточка фрактальная функция.
А вообще..
Для абсолютной рандомной бесконечности генерируемого мира можно отталкиваться от расширяющейся Вселенной.
Координата [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;
Эти три переменные и будут задавать шум для текущего окружения (в определенной площади).
З.Ы: Надеюсь, анон, ты поймешь, какую идею я пытаюсь донести.
Он не бесконечно рандомный, он просто бесконечный. Узорчатость легко нивелируется счётчиком в формуле, тогда будет вообще каша.
Всё понятно, но что мешает использовать стрые добрые XY начиная от нуля? Грубо говоря 1 бит может решать за отрицательность координат и генерацию объектов и мы без изъёбств приходим в бесконечный квадратный мир.
Это процедурная генерация которой уже сто лет в обед, право на жизнь имеет, используется, но это не серебряная пуля и не золотой Грааль.
нет. это понятно. но вот детали. города например процедурные. не слишком ли? или например пространные рассуждения о двухмерной карте которые выглядят так будто именно тут то самая изюминка. но я сколько не медитирую не нахожу изюминки. я не говорю что в этом нет смысла. просто совершенно не врубаюсь этот смысл. вот и спрашиваю.
>города например процедурные. не слишком ли?
Качни Houdini, студия тридэ для VFX, он буквально про это всё. Там туторы про создание процедурных зданий, процедурных улиц, неба, Аллаха. Выглядит ровно настолько не уёбищно, насколько талантлив кодер-автор процедуры.
BUENO
Пытаюсь вникнуть в суть...
>можно запилить великое множество виртуальных вселенных практически неограниченного размера.
Да, если отображать только ограниченное пространство в поле зрения игрока, в зависимости от его координат.
Пик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
Пытаюсь вникнуть в суть...
>можно запилить великое множество виртуальных вселенных практически неограниченного размера.
Да, если отображать только ограниченное пространство в поле зрения игрока, в зависимости от его координат.
Пик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
>Координаты постепенно увеличиваются
Они увеличиваются на гипотетической плоскости.
Но вижу повторы и цикличность.
>координаты от того не изменятся.
Если рассматривать это как движение по окружности или эллипсу внутри цилиндра, то координаты при движении изменяются лишь относительно наблюдаемых объектов.
Движение по карте не ограничено, это не движение по окружности, а смещение координат. Фактически координаты рассчитываются как x0 = x1 + x2, где x1 координаты объекта на отображаемом поле, x2 это увеличивающийся счётчик, то есть что то вроде пройденного расстояния по оси x. Таким образом несмотря на цикличность, размер карты ограничен лишь количеством байт отводимых под координаты. Видимая цикличность это фича псевдослучайного алгоритма, конкретно вычисляется по формуле "(x ^ y) % max", я могу его разбавить энтропией в виде счётчика чисто для наглядности, поскольку просто счётчик делает генерацию неповторимой на каждый кадр, его нужно уменьшать перед отрисовкой очередного кадра, тогда цикличность узора будет исключена в принципе (пик).
Корректнее будет сказать, что координаты изменяются у объектов. Я согласен с тем, что карта похожа на поверхность циллиндра сферы, но размер этой сферы может быть колоссальным. В миллиард раз больше чем майнкрафтова карта показанная здесь >>404646, поскольку сама карта в памяти не хранится, а под координаты размер карты, расстояние которое можно пройти, можно отвести хоть пару гигабайт.
Грубо говоря, всех людей планеты не хватит для создания ситуации на карте когда двое смогут встретиться.
>(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
max менять нельзя, это количество видов объектов, остаток от деления на это число является одним из max объектов.
Вы видите копию треда, сохраненную 30 июля 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.