Пилю стратегию и встал вопрос генерации карты. Условия такие:1) Карта состоит из квадратов.2) Карта представлена двухмерным массивом.3) Квадраты могут быть водой, землёй или горами (пока хватит этого).4) Вся сгенерированная суша делится на регионы - неправильной формы скопление квадратов. Допустим, маленький остров - это один регион, большой остров может состоять из двух регионов, в материке их десяток и так далее. Пример - карта США (последний пик). Цветами выделены регионы, штаты - это квадраты.Самым очевидным решением было генерировать отдельно регионы, стыковать их и получать на выходе карту, но я пока не придумал оптимального алгоритма генерации. Пробовал такие варианты:- Рисовать крест рандомного размера, а потом снижать/повышать на случайное число высоту столбцов от вертикального столбика креста. Получилась расчёска.- Указать шаг и максимальную высоту, Поднимать вверх и вниз столбцы (по количеству шага) до высоты, потом снижать. Получился ромб.Первые три пика - годные карты, которые хотелось бы получить. Кроме того, нашёл годный сервис генерации - http://topps.diku.dk/torbenm/maps.msp Хотелось бы такого. Какие алгоритмы генерации карт можно использовать?
>>299105 (OP)Немношко подумав, я придумал тупую, но более-менее рабочую идею. И так первым делом нужно поставить опорные точки(черный), дальше нужно расширить их территории но в не такой интенсивности(бордовый), а после можно еще добавить один шаг(или больше) и еще расширить их территорию уже в меньшей интенсивности(красный). Основная проблема здесь в генерации координат новых точек меньшей интенсивности чем опорная и расположения их как можно ближе к опорной(эта тема была затронута в каком-то учебнике по алгоритмах, и такая тема очень часто встречается в учебниках по теорвере и тому подобной эболы(мне лень сейчас искать конкретные примеры, но они есть)). Кстати, если вот здесь http://topps.diku.dk/torbenm/maps.msp в Contour lines поставить Every 5 можно посмотреть на сам процесс, а если еще и уменьшить зум, например поставить 0.1 в поле Zoom, то можно уже отчетливо увидеть, что на сервисе в генерации участвуют сотни(или больше) эллипсов при пересечении их возникает высота, но это уже немного другой метод в отличии от того, что описал я. Мой метод проще использовать для карт из массивам квадратных провинций, а метод на этом сайте лучше подходит для более нерегулярных карт. Пики показывают примерный результат работы для горного хребта и пары островов.
Какой же ты ленивый пидор. http://pavel.space/page/384/world_gen.htm#
Поищи фрактальные алгоритмы генерации островов. Существует как минимум два варианта, которые можно попробовать адаптировать для квадратных тайлов.1. Генерируем случайную карту высот, потом пересекаем плоскостью. Карта высот генерируется примерно так: берётся сетка на плоскости с крупной ячейкой. Каждый из узлов смещается вверх или вниз на случайную величину. Потом сетку делают более мелкой и процес повторяют (на каждом шаге величина случайного смещения всё меньше и меньше). Вот классический алгоритм. https://en.wikipedia.org/wiki/Diamond-square_algorithm Чтобы получить очертания - пересекаешь сетку плоскостью. 2. Сразу генерируем случайные очертания. Начинаем с какой-то фигуры (можно с точки). На каждом шаге делим каждый отрезок фигуры пополам, и центр смещаем в случайном направлении на случайное расстояние (опять же, с каждым шагом оно делается всё меньше). Повторяем несколько раз. Более простой вариант - на каждом шаге каждый отрезок заменять фигурой-генератором, случайно выбранной из набора.Дальше эту хуергу надо как-то адаптировать для квадратных тайлов. С картой высот это несложно, там уже есть квадратная сетка. Со случайными очертаниями сложнее, но тоже можно что-нибудь придумать. В принципе, можешь попробовать почитать что-ниудь про фракталы. Начать можно с Fractal Geometry of Nature Мандельброта. Она трудно читается (фрактальщики - сами по себе люди ебанутые), но объясняет основные принципы построения фракталов. Собственно, принципа в нашем случае два основных:1. Начинаешь с крупного масштаба и крупных деталей, постепенно генерируешь детали всё мельче и мельче.2. Смещение центральной точки или замена элемента генератором. На каждом шаге выбирается отдельный элемент фигуры и с ним что-то делается. Например, выбирается его центр и смещается. Или весь элемент заменяется фигурой-генератором. В итоге получается фигура с бОльшим количеством более мелких элементов.
А можно ли генерировать карты для 3д шутера? Например, карта как в сталкере, но полностью сгенерированная
>>299136Можно конечнобез сарказма
>>299136Можно, только сначала надо ИИ доделать.
>>299140А нахера кому-то генерация карты в шутере сдалась? Даже авторы NMS в этом плане обосраться успели
>>299141>А нахера кому-то генерация карты в шутере сдалась?Мне. Хочу сделать FPS-рогалик. Пустая ниша. Деньги сами потекут мне в карманы.
>>299139А есть алгоритмы?
>>299146Ну, теоретически можно сделать много разных заготовок - комнаты, дома, поля, леса, пещеры - и потом их рандомно мешать.
Простые способы:1. Накидываешь рандомные круги на карту. Каждый круг добавляет сколько-то метров над уровнем нуля.2. Рандомно добавляешь на карту тайлы гор, суши и воды. Потом проходишь клеточным автоматом раз пять-шесть. Из недостатков - сложно контролировать количество суши.>>299136Очень сложно, не осилишь.>>299148Город, пещеры и дома можно генерировать. Сам-то процесс генерации геометрии не сложный, тут вопрос в том, чтобы в это интересно играть было. Поэтому все шутеророгалики либо двумерны либо собирают уровень из заготовок.
>>299166>Очень сложно, не осилишь.Пока просто хотелось узнать, есть ли природе игры генерирующие такой уровень деталей?
>>299166>собирают уровень из заготовокзисВ любом случае всегда получится говно. Случайная генерация не подходит для некоторых вещей. Совсем.
>>299169Ну вот была в своё время такая игра - Х-СОМ, самый первый ещё, в 1994 году. Там были пошаговые бои на псевдо 3д карте. Карта плоская, но с несколькими уровнями, что имитировало 3д. Вот там как раз была такая штука. Уровни собирались из заготовок. Если город - то заготовки парков, домов, магазинов, дорог, ангаров. Если деревня - то поля, сараи, домики, сады. Ну и плюс упавшие НЛО. Если база пришельцев - то какие-то блоки с пыточными камерами, генераторами и непонятными девайсами. Ну и ещё много всяких вариантов - лес, ледники, пустыни (самые удобные миссии, кроме как в НЛО нигде не мог пришелец спрятаться), свои базы. Вполне годно создавалось впечатление рандомных локаций. Думаю это твой вариант.
>>299105 (OP)вторая пикча из доки, где как раз очень толковый рандомный генератор континентов описан, результатом работы которого эта пикча и является http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/
>>299234демка на флеше:http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/demo.html
>>299204>кажется дикостью ситуация когда кто-то кому-то объясняет что такое Х-СОМНеужели я такой старый.
>>299239игре 22 года, некоторые ещё не родились в её рассвет.
>>299248А некоторые вместо играли в хероесов и варик, стреляли в херетика и дюка и вообще вели беспорядочный половой образ жизни. Не всем заходят тактикулы, пускай даже кто-то вскукарекнул про хит. Мне и джага не зашла тогда. За всю жизнь я только в тактикс смог играть, да и то потому, что фолач и я до самого конца надеялся на что-то ролевое.
>>299305А некоторые вообще комплюхтера не нюхали
>>299305Ну хз, у меня на всё тобою перечисленное, кроме джаги и половой жизни, время нашлось.
>>299305Просто ты тупой. Тактикс ему зашел, все что нужно о тебе знать - все узнали.
>>299312Так не бывает. У меня комплюктера долго не было мамка не покупала, но удалось поиграть почти во все игры второй половины 90х - начала 00х у друзей и на уроках информатики, молчу про компьютерные клубы.
>>299326>Так не бываетБывает>у друзейУ друзей в лучшем случае есть денди, в худшем случае они сами приходят к тебе поиграть>на уроках информатикиСоветская НЕХ с черно-белым экраном. Самая йоба-игра была dangerous dave>компьютерные клубыВ клубах в которые я ходил были только сосони. Пеки контер страйком завезли уже далеко после нулевых, когда я уже хикковал
>>299326Дрочую вот этого. Приставки и компьютерные клубы как раз и были основным источником экспириенса. Аж пока на свой компуктер сам не заработал. Одно время помню даже что на компьютерах играть было дешевле, пушо в тренде были приставки. Вот я и ходил в героев погонять, пока остальные друзья резались в унылый теккен и прочие твистед металы.>>299325>он не любит то что я люблю, мааам, ну скажи ему
>>299330Не знаю в какой деревне ты рос, если даже при Ельцине в моем мухосранске все с пекарнями было нормально.
>>299332Просто ты школьник.
> я альтфажнее! > нет я альтфажнее!по приведённым спискам игорей старомодным джентельменам либо не более 25, либо перечисление распиаренного сейчас говна хороших игр, на самом делеа всё томушо умненькие студенты 90х себе интернет нарыли и играли в позабытую годноту, а > екском который ещё назывался повсеместно УФО хотя это совсем другая егра> хероесы> херетик> дюкэто было на общедоступных дисках, по рукам ходили они. вы б ещё цивку вспомнили
>>299338Сорта говна. Нормальные ребята играли на консолях как тогда, так и сейчас
>>299339> играли на приставках> играли на пинтиуме джвасорта говна
>>299338>на общедоступных дискахБез общедоступных компьютеров, лол. Из моего детства комп был только у мамки на работе и у друга мажора. Не имея постоянного доступа к компу очень сложно полюбить игори-долгоигровки когда есть максимум два часа времени в день, и то не всегда.
>>299338Ну хз, х-ком вкупе с вариком, первыми героями, дюной 2, дюком и думом - были то, чем компы отличались от дендей и прочего шлака. До перечисленного игры на компах тоже были, но они как-то мало отличались от приставочных. Ну или мне не попадались.
>>299343> они как-то мало отличались от приставочныхГлавное отличие было в том что на пекарне изобрели О БОЖЕ МОЙ сохранение егры, что совершенно основательно располагало к отношению не "пайти шоль в МК ебало набить" а "так, сейчас навесим на мех два пулемета и брони чтобы не много и не мало и ещё на следующую миссию останется" или "а, это же тот чел из первой главы которого я встретил месяц назад"
>>299345>сохранение егры>посадили не за тот компьютер, на котором играл в прошлый раз>(((
>>299346жизано мне свезло, родаки ещё в 4 года комп купили, всем двором ходили пострелять в doom2d и сука так загонно выходило, пвп там было не хуже чем в современном тф2
и кстати карты собирались из кусочков вроде только в екском2, в первом были заранее наготовленные, впрочем может я ошибаюсь и так совпало что на моей памяти попадались одинаковые карты
>>299343>х-ком вкупе с вариком, первыми героями, дюной 2, дюком и думом - были то, чем компы отличались от дендей и прочего шлака.>все перечисленные игры вышли на консоляхВся суть школопекарей.
>>299348>в первом были заранее наготовленныеНет, там тоже было из кусочков. Кусочки бывали большие, вот тебе и казалось что попадались одинаковые карты. Одинаковые были вроде в уфо aftermath
>>299349ай не пизди, на консолях они были неиграбельны по большей части. погоняй ка нюка на н64, посмотрю на тебя
>>299349Я пробовал гонять в варик на соньке. Говно, неудобно. А еще он какой то кривой был на сонсоли. С дюной походу та же фигня, не зря стратегии на сонсолях вовсе перестали выпускать.
>>299355Я в своё время первый и второй Ред Алерты на соньке прошёл(с мышкой, естественно). Отлично зашли и всё удобно было.
>>299353>на консолях они были неиграбельны по большей частиДа что ты говоришь, дюна 2 у него на сеге не играбельна блядь.>на н64Давай еще в пиратские порт гта5 на денди поиграем. Шутаны были нормально портированы на плойку>ПЛОЙКА ЭТО УЖЕ СОВРЕМЕННАЯ ПРИСТАВКА КУДАХ ШКОЛЬНИК КУКАРЕКУВышла в конце 94 когда ты еще не родился.
>>299355>не зря стратегии на сонсолях вовсе перестали выпускать.Вот не надо пиздеть, например на пс4 есть Тропико 5, Х-СОМ 2, industry giant (!) и еще куча всякой хуйни.
>>299358>на соньке >с мышкойВ игровых клубах не было мышек для соньки. Таки дела. >вот не надо пиздетьА посвежее ничо нет?
>>299359дюно спасало полное отсутствие альтернатив на платформе. н64 это консоль, а не адруиноподелие, соси хуй, криворукий дуалшокер. квака на соньке с мышкой была играбельна, с пада - нет. плойка старое говно, чини детектор>>299362наконсолях есть ТРПГ и прочие тактики. И МОЖ ВЫ МНЕ ПОСОВЕТУЕТЕ ДВИГЛО ДЛЯ ТРПГ???
>>299366Дюну нормально портировали, даун, хотя хуле спорить с дауненком который не играл в пк версию где во время баталий приходилось безумно дрочить мышь благодаря феерической системе отдачи приказов. Музыку сеговской версии до сих пор хорошо помню, если ты тоже вряд ли слышал, тупой школьник.
>>299370вот ты ебанат, дядя, гейпад на дюне разъёбывал крестовину быстрее умк3. о чём с тобой спорить, если тебе РТС в порте на 16бит удобней, ты просто туп и НЕИГРАБЕЛЕН. рекомендую тебе насосаться мыла, ибо я помню первые выпуски великого дракона (тогда журнал денди), супонева со стиплером и турока я гамал на н64
>>299374Пизда твоей мамки быстро разъебывается. Найди на сеге игру которая не использует крестовину, тупой еблан. Я помню журнал Денди новая реальность, а денди от стиплера у меня стояла перед телевизором когда ты еще мамкину сиську насасывал.
>>299375теперь я понимаю, что такое "уровень gd"соси хуй, ретрофутурист
>>299376Слив защитан, иди хоть в дотане компенсируй свою ущербность.
>>299377пиздец ты ущербный, мне под 30 уже, сам в это говно играй, любитель дюны2 на смд2
>>299147Есть гугол в помощь
>>299105 (OP)https://habrahabr.ru/post/276251/держи, мне помогло
>>299382Съебите в вг, утята престарелые, не засирайте тред.
>>299105 (OP)> Условия такие:> примеры на пикахМудацкий диздок, на половине пиков ни одного квадрата.Генерируй сначала континенты/океаны/моря, потом реки, между ними и в истоках - горы. Где горы близко не встали, там можно пару озёр нарисовать, если надо для геймплея.Вариант2 - воксельный: генерируй пангею, на ней генерируй трещины, отправляй материки ездить по восьмигранникам. Где плиты сошлись-разошлись - там горы, вулканы, острова. Между горами реки текут вниз, скапливаясь в океанах и озёрах. Где в регионе никогда не было прибрежной воды, там не формируются осадочные породы, отсутствуют водоносные слои. Где воды нет вообще получается пустыня. Где воды мало при индустриализации станет меньше и вся экология может идти по пизде.Сахара например - антропогенная пустыня, активно начала распространяться при вторжении арабов в северную африку. Арал пересох при вторжении чурок в РИ, после чего советские мудаки стали сочинять байки что мол "ещё при царе предсказывали что всё высохнет".
>>299105 (OP)2 пик - диаграмма Вороного, взят из статьи по генерации таких карт3 пик - просто квадраты в раномном порядке, 1 пик, видимо, тоже4 - тут явно не комп. генерацияВариантов не особо много. Кроме квадратов и Вороного часто применяется шум Перлина, хотя я хз насколько хорошо он для плоских карт подходит.
>>300855>Вариант2 - воксельный: генерируй пангею, на ней генерируй трещины, отправляй материки ездить по восьмигранникам. Где плиты сошлись-разошлись - там горы, вулканы, острова. Между горами реки текут вниз, скапливаясь в океанах и озёрах. Где в регионе никогда не было прибрежной воды, там не формируются осадочные породы, отсутствуют водоносные слои. Где воды нет вообще получается пустыня. Где воды мало при индустриализации станет меньше и вся экология может идти по пизде.Toady, залогинься.
>>307398При чём тут дварфопараша? Это только генератор карты.Причём с одной стороны не слишком сложный, с другой стороны завлекательный для пользователей, потому что "кококок мы делаем как в ИРЛ геолохия ё".И его можно развивать. Надо сделать ресурсы - вставляешь в цикл генерации осадочное золото в истоках рек у ледников, тяжёлые элементы в потухших вулканах и опускаешь их глубже на сантиметр в год.Заодно и то, что баланс карты будет в жопе, алгоритмом прекрасно оправдывается.
>>299105 (OP)собственно, используй вороного. с ним можно и регионы сделать довольно легко через клеточные автоматы. вручную сделанные локации можно например делать из заготовок в центрах фрагментов карты. я делал похожее на вторую картинку, но для шутана. (до сих пор делаю)было гораздо лучше чем шум, плюс клеточный автомат.
>>299105 (OP)тебе нужно курить шумы и облака. там формула есть от икс и зед.
некротред же
>>307580Тащемта, тема актуальна
>>308033бампс
>>299105 (OP)Оп, ответили уже? Истово соболезную тебе, если решение всё ещё не найдено. Сам очень долго решал подобную проблему, если нужно, могу поделиться кривокодом на паскале.Для генерации природного ландшафта используют шумы перлина, и точность алгоритма не суть важна! Важно что ты смешиваешь заранее известную таблицу рандомных чисел с только что сгенерированными, а уж как ты смешаешь - твоё дело, вариаций куча. Держи схемку, задавай вопросыИ да, если есть место, хотел бы вписаться поделать твою игру просто за идею.Наиболее внятно твоя проблема расписана здесь.https://habrahabr.ru/post/265775/
>>299105 (OP)>>308640И да, прочитал внимательней оп-пост. Вот твои дальнейшие действия насчёт штатов.
>>299339Иди нахуй, говно твои консоли (и твоя мамка, кстати, тоже)