Сап ноны.В тред приглашаются математики, программисты и философы. Общаться будем за генерацию виртуальных миров.В общем меня давно посетила мысль, что можно запилить великое множество виртуальных вселенных практически неограниченного размера.Начальная вселенная из 2-х уровней - земная поверхность и атмосфера. Пока не нужно трогать космос и недра, для простоты восприятия.По сути земная поверхность это 2-х мерное пространство из координат XY.Теперь описание того о чём именно я толкую. Представим что в пустом 3-х мерном пространстве у нас стоит юзер, имеющий некоторое поле обзора. Он видит пустую землю и атмосферные эффекты вроде неба.Используя особый псевдослучайный алгоритм (мирогенератор) мы разместим на карте сгенерированные объекты разной формы и размеров, взяв координаты за основу. Тоесть алгоритм пробежавшись по зоне видимости юзера генерирует объекты допустим горы, траву, ямы, скалы, камни, одиночные постройки и даже целые города. Самая мякотка псевдослучайности - это равномерное распределение и то, что объект генерируемый по координатам для каждого пользователя будет выглядеть одинаково в одном и том же месте.Допустим если алгоритм сгенерирует гору с координатами 100;100, то каждый юзер, в поле зрения которого попали эти координаты увидит в этих координатах один и тот же объект, при том что генерироваться он будет у каждого юзера независимо.Что это даёт - полное отсутствие необходимости хранения или передачи информации о объектах на карте или самой карты.Что в свою очередь даёт практически неограниченное пространство. Каждому юзеру достаточно иметь на компьютере модели и алгоритмы генерации объектов и по желанию координаты отдельных массивов вроде городов, лесов, особых моделей и событий и т.д., чтобы получить неограниченную вселенную, правила генерации которой регулировались бы некоей константой. Единственный возможный ресурс этой вселенной - память - дисковое пространство сервера, хранящего пользовательские объекты и модели, только его можно было бы и продавать, что было бы "канонично".Для самой карты требовалось бы несколько десятков байт под координаты огромных значений, что позволило бы в виртуальном мире уебать в закат в вечном движении и никогда не достичь края плоского виртуального мира.Есть генератор пикрл результат, ему нехватает скоплений объектов с повышенной концентрацией объектов определённого типа и разреженных областей.Что думаете? Как пофиксить?Код генератора:http://pastebin.com/pY27v1LF
>>403166 (OP)Ну изобрёл ты peer-to-peer мирогенерацию, ок. Игру так не сделаешь - читы для такого ММО будут просто охуенными.
>>403168Читы? Например?
>>403169Например, другой сид.Единственная игра без читов сейчас - это WOT, в которой всё на сервере, даже небо, даже Аллах, игроки просто команды WASD по сети посылают и смотрят, что выходит.Можно пойти по дорожке криптовалют, но тогда ты получишь очень большую избыточность и вся мякотка твоего птп теряется. Если каждый клиент будет сервером, почему бы не обойтись одним сервером по старинке?
>>403170Кому ты пиздишь? Одни только моды автонаводки в вотах чего стоят. Там читы просто яебу, та же хуйня что и читы в первом думе по сути. Твои воты могли бы жить без читов будь у них облачные вычисление, но это же донатные игрушки для нищенок, как у мейлру.
>>403172>Одни только моды автонаводки в вотах чего стоят.Нихуя они не стоят, потому что их нельзя отличить от скилла.А вот воллхаки и спидхаки принципиально нереализуемы. Сервер знает, что за кустом тебе нихуя не видно - сколько ни убирай куст в клиенте, нихуя не увидишь. Авторитаризм, православие и прогресс.
>>403173Нет смысла клиенту быть сервером, кроме как чтобы раздать координаты и модели которых нет у остальных. Это легко контролируется, клиент просто станет репозиторием с файлами. Жёсткая логика не даст обойти математические законы незаметно. Всё что сможет читер это отправить клиенту хитровыебанную трёхмерную модель или натыкать себе\убрать объекты через изменение исполняемого кода, по сути вообще лишив карту смысла и читерство корректнее будет называть атакой, ибо это уже пиздец.
>>403173Спидхак сам по себе безобиден.
Теперь вернёмся к теме - как создать скопления объектов и разреженные области?
>>403166 (OP)Охуеть интересно - полностью статичный мир. А вот захочу я убрать нафиг эту гору в 100:100, что мне делать? Ну конечно же бросить твой мир и поставить православный майнкрафт.
>>403166 (OP)А, ну и ещё дkя развития твой депрессии, рекомендую глянуть Space Engine
>>403251Купи пару байт на сервере и делай с горой что хочешь. Для остального тебе хватит майнкрафта, мальчик.
>>403252Ну не того масштаба задумка. Спейсенжин оперирует уже известными данными, а значит они на жестаке хранятся, я же предлагаю генератор, который в теории сможет создавать не только плоскую поверхность, но и поверхность планеты вплоть до мельчайших деталей не зависимо от её размера, используя долготу/широту как координаты XY.Суть в том, что размер жестака ограничен, а сам жестак довольно дорог если нужно юзать гигантские данные, в отличие от того же посредственного ЦПУ которого хватит на область обзора. Принцип как в ГТА - чем дальше видишь тем выше нагрузка на проц. Есть некоторая приемлемая дальность обзора, общая для всех людей, в которой для генерации объектов хватит даже калькулятора.
бамп
>>403254В двух словах это называется unlimited detail, гугли подходы. Вполне себе научная проблема (если считать CS наукой)
>>403166 (OP)Все, что ты тут напридумывал, давно уже реализовано.
>>403488в неимоверно примитивной графике для экономии памяти, вместо нормальных моделей
>>403499Тут веге протекло или что? Иди ведьмака перепройди, ты не перепроходил сегодня.
>>403499>пок-пок игра говно - графика примитивная
>>403506
>>403254>Спейсенжин оперирует уже известными данными, а значит они на жестаке хранятся, я же предлагаю генератор, который в теории сможет создавать не только плоскую поверхность, но и поверхность планеты вплоть до мельчайших деталей не зависимо от её размера, используя долготу/широту как координаты XYЦелая вселенная на жестаке хранится, да? Ты все же посмотри, это как раз, то что ты предлагаешь.
>>403544Я предлагаю то же самое но с возможностью высадки на любую планету без загрузок и швов, о чём писалось выше.>>403506>>403507Чому тогда в майнкрафт играют школьники а не гроссммейстеры?
>>403545>Я предлагаю то же самое но с возможностью высадки на любую планету без загрузок и швов, о чём писалось выше.Ты все таки посмотри Space Engine
>>403548Но там же из описания и так всё ясно, или я не прав?
>>403504Я не пойму чего вам так печот то? Майнкрафт говно - это неоспоримый факт, можно даже на скриншоты не смотреть. Я же ратую за техническое исполнение. Воксели это хорошо, но что, если бы память расходовалась только на изменения в неограниченном сгенерированном мире, а не на весь этот мир. Тогда можно было бы даже в такое говно графон завезти без потери производительности.
>>403549не прав. Там все процедурно генерируется, кроме солнечной системы. Швы есть, но их всего два - между системой звезды и галактикой, и между галактикой и скоплениями галактик. И подгружаются они настолько быстро, что заметишь ты их только играя на калькуляторе
>>403551Епта, ну ты подсчитай конкретно, сколько тебе этой самой памяти понадобится. Заодно подкачаешь скилл в комбинаторике (и поймешь разницу между идеей и реализацией)
>>403552В принципе я так и думал, что известные звёзды заведены в базу, солнечная система даже с правильными скинами, а далёкие галактики генерируются, но повторюсь, можно генерировать вообще всё это пространство и ещё миллион раз столько же, без швов, вместе с поверхностью планет, вместе с рельефом и формами жизни на этих планетах, достаточно лишь генератора равномерно распределяющего псевдослучайные числа..
>>403554Братишка, я тебя умоляю, скачай пейсэнжн и поиграйся там с колесиком мышки. Если после этого вопросы ещё останутся, тогда задавай.
>>403553Допустим поле зрения одного юзера 1ГБ, на каждый объект понадобится 8 Байт координат, сгенерировано может быть 1ГБ/8Б = 125000 объектов из которых 99% будут неактивными, вроде камушков или травы выской полигональности. Тоесть если растянуть всю эту хуйню на масштаб метр-точка, то оперативной памяти в 1ГБ хватит для обсчёта обзора дальностью ~ 62км 500м.
>>403556Принеси мне покушать видео с ютуба.
>>403557Это ограничение только дальности обзора, при этом дальность передвижения по генерируемому миру не ограничена, нужно лишь будет хранить от n байт памяти под координаты юзера.
Как блядь генерировать разреженные области и скопления объектов?
>>403560Единственная нормальная мысль пока это разделить скопления с разреженностями на классы и генерировать их чередуя, в них самих генерировать направления генерации и по направлениям генерировать объекты.
>>403560Perlin noise тебе в помощь.Этот вопрос говорит, о том, что ты хуй, и понятия не имеешь как на практике подступиться к твоей охуительной идее
>>403562Вообщет имею >>403561, но я всёравно хуй, не так ли.
>>403560О сколько нам открытий чудныхГотовят просвещенья духИ опыт, сын ошибок трудных,И гений, парадоксов друг
Ну молодец, мальчик, придумал процедурную генерацию. В самой первой элите это еще было. В миникруфте это есть. Даже в дварффортресс. Каждый генерит у себя - это уже годная идея. Вот только ответь, что ты будешь делать с читаками и как, блять, сделать этот мир изменяемым. Если же там даже цветок нельзя посадить так, чтобы сразу же у всех остальных это изменение было - игра говно и скучная.
>>403636Читы преувеличены. Изменения нужно хранить. Есть 2 пути - хранить на сервере и платить за дисковое пространство или хранить у себя выступая сервером и терять изменения при отключении.
>>403645>и терять изменения при отключении.Что это значит?Если несколько игроков в одном и том же месте по очереди построятся, что делать будешь?>Читы преувеличены.Анус твой преувеличен, точнее прерастянут, умник хуев.
>>4036491 всем раздам изменения ибо нехуй2 папке своему это скажи.
Привет, опик, я так понял, реализовывать все это ты собираешься на сихе? Почитай о генерации обьектов в вове, там очень интересная реализация. а еще хранение данных в .MPQ Там такая система, что весь вов лежит, по сути, в одной библиотеке(составленной из кучи других) , а загрузочные экраны выполняют там не совсем функцию "швов". Короче, ты поймешь, если почитаещь.
>>403697сиха или ява, как бы похуй, моих мозгов всёравно не хватит GL прикрутить, просто тема интересна. Опять же реализация судя по наличии подгрузок это не канон. Шум перлина подходит хорошо, но я пока его не осилил чтоб на практике применять.
>>403739Я тебе и говорю, что подгрузки там нет. Экраны там в целях экономии ресурсов, и присутствуют там по еще куче самых разных аспектов. Генерации там нет, но это просто прекрасный пример работы сервер-юзер в прогрессии
>>403740Без генерации есть существенные ограничения.
Продолжаем мирогенерацию. Сейчас экспериментирую с интерполяцией. Пока результат не сильно похож на перлина. Вместо цветов используется размер объектов.
>>403545>чому тогда в майнкрафт играют школьники...Школьники и в шахматы играют. Вот я, например в сци же можно до 18 лет А в майнкрафт игают и люди, которые могут в ней построить очень красивое произведние. А школьникам нельзя чтоли играть в него?
>>403760Школьники это школьники, они мало знают, мало умеют, много шумят, даже просто играя в игру против школьника или в переписке, по его поведению сразу видно что он школьник, вот как ты.
>>403792>в переписке, поЗапятая не нужна.>видно чтоЗапятая нужна.Как ты ЕГЭ сдавать будешь, ума не приложу.
Тема с генерацией мира продолжается. Спустя пару дней изысканий спасибо анону и товарищу Перлину, результат на пике, код богомерского жс на пастабине.http://pastebin.com/w1tn4HV8
>>403793Я русский язык в школе не учил. Есть предметы куда интереснее.
>>403795В школе кроме языков, физры, геометрии и химии буквально одна хуета.
>>403796Ты не поверишь, но большей хуиты чем твои предпочтения просто не существует.
Тот же шум промасштабированный в 8 раз и разреженный в 1,5 раза.
>>403797Щас бы быть неграмотным сколиозником без пространственного мышления и без знания как выбрать безопасный для здоровья стекломой.
>>403800Начни с определения пространственного мышления.
>>403801А закончим чем, определением сознания? Иди сразу нахуй.
>>403802чтд
>>403792Ты меня расстроил. Я чувствую небольшой гнев.
Ну что анончики, вот и долгожданный результат. С момента старта треда шумогенератор был дополнен интерполяцией, сейчас ещё и вероятностями. Псевдослучайный генератор имеет почти ненавязчивую паттернизацию и может использоваться для генерации карты высот или ландшафтов. В общем код на гитхабе, можно баловаться реалтайм https://anonymoves.github.io/WorldGen/.Теперь следующий шаг - как прикрутить движок к 3D? Реквестирую простейший способ или помощь могущего анона.По опыту знаю, среди вас есть те кто делает 3D движки за 15 минут, я же его смогу создать лишь за год.
>>403796А история, биология, etc*?
>>403878Есть ряд предметов, в которых преподаётся заведомая хуета для якобы развития мышления и тренировки. Физика, история, биология.Отличная идея, пидоры - тратить 10 лет жизни на тренировку абстрактной непроверяемой хуйни. Не иначе жиды придумали.
>>403883физика и биология это не абстрактная, непроверяемая хуйня.
>>403889Лбом-то стучишь об пол, когда повторяешь мантры?
>>403883>заведомая хуета для якобы развития мышления >Физика, история, биологияИсторик, ето ти? Если по тебе резко уебать 30 мегаджоулями - твоя личная биология станет историей.
>>403889>физика>непроверяемая хуйняТолсто.
>>403166 (OP)Слишком затратная/запутанная/непотянетуменя идея.
>>404051Почему?
>>403166 (OP)>Общаться будем за Шлюхин сын, ты русишу прогуливал ит теперь на саентач припёрся, селюк ебаный.
>>404071Дурашка
>>403166 (OP)по сути земная поверхность это х,у и зед для высоты. скрыл тред.
>>403166 (OP)ладно. снизойду даже зная что анон туп злобен и будет кидаться дерьмом ведь он ебаная обезьяна.чтобы гора у всех генерировалась в одном и том же месте нужен одинаковый алгоритм и одинаковое зерно. традиционно все обьекты на картах жранятся как координата в мире где будет ноль у обьекта. и сами обьекты которые вставляются в мир с нолем указанным ранее. и рисуются от этого ноля. карта координат может быть зашитой в тридемодель на этапе моделирования. так делают йобу - расставляют хуйню запекают и радуются.генерация же точно так же расставляет хуйню какую ты укажешь но никакого левелдизайна не будет. будет рандомная хуйня с рандомным шансом вырвиглазная. как 90% планет из 2^64 возможных в нмс.далее. про каких юзеров речь не понятно. если это ммо тогда качать дополнительные данные верх тупости. ммо нужно проектировать так что бы все твои данные умноженные на количество игроков или даже на их факториал влезали в самый днищеканал из возможных. если это сингл тогда тем более забивать проц лишними вычислениями неоправданно тупо. короче память ограничена. количество операций за 15 милисекунд ограничено. как минимум это нужно держать в голове прежде чем начинать проектирование чего либо.
>>403166 (OP)Идея стара как мир, ты изобретаешь провалившийся No man's sky.
>>404169Если генерировать всё последовательно, с одного сида - то чтобы получить информацию о 100001-м объекте, тебе придётся сгенерить все предыдущие.Лучше сделать псевдослучайную фукцнию кординаты -> содержимое.Например, если адаптировать твою идею - рахбить пространство на блоки, и содержимое каждого блока генерить независимо с его собственного сида. А сам сид вычислять как какой-нибудь md5(x,y,z).Тогда чтобы увидеть объект в далёкой жопе - не придятся строить все предыдущие.
По порядку:>>404169Про объекты ты непонятно задвинул.Левелдизайн это фича, а не баг. Храни на жестаке любой левелдизайн, основная масса же объектов может быть сгенерирована, вплоть до городов с подземкой.Юзер это юзер. Мне кажется нелепо называть его просто камерой в пространстве.Из данных нужны только координаты активных объектов и статусы\смещения пассивных активными. Само собой уложиться можно и в 128 байт на каждый активный объект. А при желании даже в 32 и меньше, используя битовые поля(си) или просто битоёблю.Памяти использовать можно от 100 байт, игнорируя часть не генерируемых данных. Поле генерации можно сузить до поля обзора. Тоесть генерировать объекты только по повпавшим в поле обзора координатам. Воображаемые вычислительные затраты уменьшатся примерно в 3 раза.>>404170Хуже, я нихуя почти не сделал.>>404171Чтобы получить информауию о 100001-м объекте нужны лишь его координаты. В этом суть и смысл задумки. Координаты это его всё.>Лучше сделать псевдослучайную фукцнию кординаты -> содержимое.Тред не читай. Пол треда это твержу.Строить все предыдущие не нужно. Завязка жёсткая на координаты. Только координаты и решают что генерировать и где. Короче см. поле обзора.
>>404171Специально для тебя продублирую ссылку https://anonymoves.github.io/WorldGen/Генерация завязана на координаты.
>>404173ну нмс же. впрочем занятно.
И все равно виднеется характерная периодичность узора - т.е. мир не такой уж и бесконечно рандомный.Думаю, здесь поможет улиточка фрактальная функция.
Или даже смесь из фрактала и шума перлина.А вообще..Для абсолютной рандомной бесконечности генерируемого мира можно отталкиваться от расширяющейся Вселенной.Координата [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;Эти три переменные и будут задавать шум для текущего окружения (в определенной площади).З.Ы: Надеюсь, анон, ты поймешь, какую идею я пытаюсь донести.
>>404194>[-1:+1],[+0:+1],[+1:+1]>[-1:+0],[+0:+0],[+1:+0]>[-1:-1],[+0:-1],[+1:-1]
Привет
>>404192Он не бесконечно рандомный, он просто бесконечный. Узорчатость легко нивелируется счётчиком в формуле, тогда будет вообще каша.
>>404194Всё понятно, но что мешает использовать стрые добрые XY начиная от нуля? Грубо говоря 1 бит может решать за отрицательность координат и генерацию объектов и мы без изъёбств приходим в бесконечный квадратный мир.
>>404197>>404199
я все понять не могу. это прогрессивное решение или шизофрения какая то.
>>404310Это процедурная генерация которой уже сто лет в обед, право на жизнь имеет, используется, но это не серебряная пуля и не золотой Грааль.
>>404320нет. это понятно. но вот детали. города например процедурные. не слишком ли? или например пространные рассуждения о двухмерной карте которые выглядят так будто именно тут то самая изюминка. но я сколько не медитирую не нахожу изюминки. я не говорю что в этом нет смысла. просто совершенно не врубаюсь этот смысл. вот и спрашиваю.
>>404326>города например процедурные. не слишком ли?Качни Houdini, студия тридэ для VFX, он буквально про это всё. Там туторы про создание процедурных зданий, процедурных улиц, неба, Аллаха. Выглядит ровно настолько не уёбищно, насколько талантлив кодер-автор процедуры.
>>404329BUENO
Добавил анимацию передвижения по генерируемой карте. Бугага.https://anonymoves.github.io/WorldGen/
>>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
Координаты есть координаты. Результат можно глянуть на гитхабе(ссылку давал пару постов назад), считай как модель передвигающегося персонажа с генерацией мира. Координаты постепенно увеличиваются, видны все повторения генерируемых куч и мерцание от интерполяции. Процессорное время на каждый кадр тратится одинаковое, область видимости может быть хоть треугольной и вращаться, координаты от того не изменятся.
>>404657>Координаты постепенно увеличиваютсяОни увеличиваются на гипотетической плоскости.Но вижу повторы и цикличность.>координаты от того не изменятся.Если рассматривать это как движение по окружности или эллипсу внутри цилиндра, то координаты при движении изменяются лишь относительно наблюдаемых объектов.
>>404659Движение по карте не ограничено, это не движение по окружности, а смещение координат. Фактически координаты рассчитываются как x0 = x1 + x2, где x1 координаты объекта на отображаемом поле, x2 это увеличивающийся счётчик, то есть что то вроде пройденного расстояния по оси x. Таким образом несмотря на цикличность, размер карты ограничен лишь количеством байт отводимых под координаты. Видимая цикличность это фича псевдослучайного алгоритма, конкретно вычисляется по формуле "(x ^ y) % max", я могу его разбавить энтропией в виде счётчика чисто для наглядности, поскольку просто счётчик делает генерацию неповторимой на каждый кадр, его нужно уменьшать перед отрисовкой очередного кадра, тогда цикличность узора будет исключена в принципе (пик).
>>404659Корректнее будет сказать, что координаты изменяются у объектов. Я согласен с тем, что карта похожа на поверхность циллиндра сферы, но размер этой сферы может быть колоссальным. В миллиард раз больше чем майнкрафтова карта показанная здесь >>404646, поскольку сама карта в памяти не хранится, а под координаты размер карты, расстояние которое можно пройти, можно отвести хоть пару гигабайт.Грубо говоря, всех людей планеты не хватит для создания ситуации на карте когда двое смогут встретиться.
>>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
>>404716max менять нельзя, это количество видов объектов, остаток от деления на это число является одним из max объектов.