Обычно не делюсь своими подробностями, но скажу вот что. Раньше я считал решеткой больцмана в вычислительном шейдере эффекты воды. Звучит круто. А выглядело как дерьмо. Теперь я вышвырнул этот шейдер и просто в вебпи файл воды добавил пару анимаций. Реалистичность выросла раз в 100. Во столько же и производительность.
Вий
> на 2д карте есть клетки типа "равнина", "море", "гора", "холм".
А эти клетки как ты генеришь/расставляешь ?
711
> А эти клетки как ты генеришь/расставляешь ?
Сначала заполняю карту равниной.
Потом наливаю моря, если не вдаваться в детали, то тыкаю в карту рандомом и наливаю туда море рандомной формы, а потом сглаживаю чтобы моря не были похожи на ежиков.
Потом тыкаю в карту рандомом и делаю горные хребты.
Потом тыкаю в карту рандомом и делаю холмистые участки. Вероятность тыкнуть возле гор - выше.
Вий
Скриншот хоть можешь показать ?
https://gamedev.ru/flame/forum/?id=283786&page=53&m=6131592#m788
И у тебя только 2д карты ? Не 3д ? Верно ?
Вий
То есть у тебя что-то сгенерировано, а что-то тебе всё же вручную приходится доделывать ?
У тебя река на графике (в плане арта) как-то завязана ? Ну, то есть одна клетка полностью заполнена водой, и это элемент реки, и все клетки стыкуются друг с другом в любом направлении ? Или там должен будет потом находиться арт с изображением изгибов, разветвлений, толщины русла… ?
Вообще все реки текут в одном направлении. С хребтов в сторону моря. Это, наверное, как минимум снижает количество циклов для генерации.
711
У меня есть набор тайлов для реки текущей между любой парой направлений, любой тройкой направлений, во все 4 стороны. Таких наборов два: для толстых и топких рек. Тонкие могут впадать в толстые, для этого тоже есть набор тайлов.
Циклов генерации вообще не жалко, вся генерация очень быстрая.
В ручную я ничего не делаю, только автоматика. У меня для каждой новой игры новый мир.
Вий
> долго петляет и возвращается обратно примерно к началу, по пути дважды проходя по гористым районам.
Наверное, стоит начинать сначала с реки, а потом генерить всё остальное.
И всё же делать генерацию в одном направлении (плюс минус). Например, чтобы все реки текли к условному экватору.
> получается месево с кучей циклов.
Я просто эту фразу не очень понял, это про визуал или код.
711
> > получается месево с кучей циклов.
> Я просто эту фразу не очень понял, это про визуал или код.
Про визуал. Река делает колечки
Вий
А.Понял. То есть ты ищешь какой-то алгоритм по которому это будет в итоге смотреться визуально красиво. Типа каких-то фракталов... или чё там бывает. Не разбираюсь в этом.
Реки больше похоже на ветки деревьев. Может там за основу брать какую-нибудь маску...
711
Ну да, некрасивые реки генерировать легко, а вот сделать красивые и реалистичные - сложно
Вий
Вставлю ещё своих пять бумажных копеек.
Мешанина и отсутствие какого-то ритма и визуально приятной последовательности получается, когда генерация происходит по одной клетке. Река будет смотреться гораздо более естественно-последовательной, если генерить заранее заготовленными участками из 5-7 клеток. Они тоже могут быть рандомные, но без резких поворотов.
То есть при генерации река не может свернуть больше чем на 90° раньше, чем через 5-7 клеток.
Надеюсь, понятно донёс мысль.
Мне, предположим, проще собирать карту (в ручную) из больших тайной (5 на 5 клеток), чем тайлами по одной клетке.
Зря Blueprint`а выпилил из темы, антипиар тоже пиар, он хорошо тему продвигал, а так тут скукота.
Вий
> Боишься, что старый дед глянет на твой MassAI и скажет: "Эх, внучек, это ж не AI, а сплошной IF-ELSE!"?
А какой другой способ есть? Через свич что ли? :) Что это за имба АИ такой?!
RikiTikiTak
> Зря Blueprint`а выпилил из темы, антипиар тоже пиар, он хорошо тему продвигал, а так тут скукота.
Я не выпиливал, он сам. Смотрю, а тема вдруг стала на 5 страниц короче. Ну, думаю, хорошо что я заранее все его сообщения целиком цитировал, получается, можно спокойно прочесть наш диалог.
Что за манера выпиливатся у Blueprint`а.
Уже не раз так делает.
Зачем не понятно. Тем более из этой теме.
ronniko
> Что за манера выпиливатся у Blueprint`а.
> Уже не раз так делает.
> Зачем не понятно. Тем более в этой теме.
Это нарушает связность темы и затрудняет ее чтение для всех остальных, особенно если забывать с кем имеешь дело и не цитировать все сообщения целиком. Видимо, это такой способ сделать гадость.