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


Это довольно гибкий модуль позволяющий настраивать параметры генерируемой карты перед процессом её создания. Сама карта генерируется в среднем от 3 до 20 секунд (в зависимости от выбранных настроек генератора, размера карты и количества игроков).

Скриншоты

Настраиваемые данные перед процессом генерации

смотреть

Результат работы генератора

смотреть

В разработке усовершенствованная система генерации биом

смотреть

Дополнительная информация о генераторе

генерация биом

В случайном порядке или через настройки пользователя - генератор определяет основные используемые биомы (местности). От местностей зависят текстуры земли, декорации, вражеские нейтральные монстры, ассортимент в лагерях наёмников и насестах драконов.
Генератор умеет смешивать различные биомы. Например: он может сгенерировать карту, которая от запада к востоку плавно переходит от болотистой местности в сафари. Для биом устанавливаются доступные связи - другие биомы, с которыми они могут смешиваться. Например - зимняя биома может смешиваться с осенней, ледяной и смертельной; Но не может смешиваться с летней, сафари, джунглями и пустошью.
На игровой карте могут располагаться локации, имеющие свои локальные биомы. Например - группа големов может располагаться в горной местности, тогда текстура земли и декорации внутри этой локации будут соответствовать горным (вы можете наблюдать это на скриншотах)

генерация игроков

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

генерация локаций

Для каждой локации генерируется своё местоположение и радиуса коллизий (дабы не генерироваться в географическом конфликте с другими локациями). На локациях могут располагаться дополнительные декорации, монстры, нейтральные здания, локальные биомы, погодные эффекты, золотые рудники и игроки. Генерируемое количество тех или иных локаций определяются через настройки.

насыщенность мира

Как сообщалось ранее, игра имеет возможность настроить вероятность количественных значений локаций на карте. Например, если в настройках количество таверн указано как 2d55%, то 20% вероятности того, что на карте не будет таверн; 50% вероятности, что на карте будет одна таверна; и 30% вероятности того, что на карте будет две таверны. Таблицу вероятностей я привожу ниже:
смотреть таблицу
`
ОЖИДАНИЕ РЕКЛАМЫ...
24
Годно, жаль только что все это дела происходит в карте в Варике, не просто генерирует рандомные карты, которые потом можно отдельно сохранить.
17
NilasAran_39, если кто предоставит доходчивую информацию о бинарном формате карты - я бы мог создать програмульку по генерации карт на WarCraft. У неё и возможности будут более широкими.
12
Сможешь добавить дополнительные пункты по кол-ву золота в шахтах, а также кол-ву самих шахт в размере =игроки*2 или =игроки*3. А по поводу генератора, низкий тебе поклон, ты сделал это, хоть кто-то сделал это за 10 лет существования Варика. И да, хотелось бы отряды нейтралов разнообразить по числу воинов в отряде и кол-во биомов. А также возможность легко подгонять генератор под другие данные РО, которые можно будет вставить.
21
проще уже сделать свою ртс, чем копаться в этом вц3
10
Buulichkaa:
проще уже сделать свою ртс, чем копаться в этом вц3
Движок в студию.
28
Buulichkaa, Покажи нам самодельную ртс, созданную 1-2 юзерами, которая будет на уровне вара 3.
21
Aws, ну так надо же когда-то начать, делать карты в вц3 это ещё ладно, но делать проги, чтобы делать карты в вц3 это жир
17
Buulichkaa, мне не так важно для чего делать - для варика или самостоятельной игры. Для меня это отдых. Но для варика делать проще. Если пригласят - могу поучаствовать и в проекте, имеющим шансы быть завершённым.
Создал новый алгоритм генерации участков. Был вдохновлён "героями 3". После создания алгоритма - стал узнавать, выяснил, что генератор карт в героях 3 скорее всего был сделан по алгоритму вороного, когда стал сравнивать - заметил, что результаты моего алгоритма очень похожи на результаты вороного за исключением того, что в результатах его алгоритма "ровные" границы между участками (в моём алгоритме между участками неровные границы). Но мой алгоритм сильно отличается от диаграммы вороного своей логикой. В моём присутствует возможность гибких настроек генерируемых участков. Сейчас вот думаю - стоит ли переносить алгоритм в генератор карт. Если сделать это - то ландшафт будет генерироваться намного дольше текущей версии.
Прикрепляю результаты моего генератора участков:
смотреть
24
Buulichkaa, что проще и приятнее - собирать из конструктора поделку или добывать сырье,делать детали и самостоятельно вообще изготовлять продукт?
21
Melissa, так если выйдет годнота, то можно из процесса не только фан извлечь
21
Cancel:
ландшафт будет генерироваться намного дольше текущей версии.
Добавляй его конечно, есть карты которые грузятся по 5-10 минут. Если результат стоит свеч (а он имхо стоит их) - затрата оправдана.
29
Cancel:
NilasAran_39, если кто предоставит доходчивую информацию о бинарном формате карты - я бы мог создать програмульку по генерации карт на WarCraft. У неё и возможности будут более широкими.
6
Угу, я долго с этим мучался. Так и не решил этот вопрос.
Можно было бы устроить конкурс разработчиков на эту тему.
Победителю- пожизненный респект и +10 к карме)
1 пункт от alexprey: 1.1 (ненормативная лексика) Завуалированный мат
17
Угу, я долго с этим мучался.
С чем именно?
У кого с английским хорошо? (у меня плохо). Мне нужна помощь, нужно из этой страницы world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=427... найти информацию о том, как на бинарном уровне редактировать следующие параметры карты: высоты, тайлы, проходимость. Откликнувшегося занесу в титры с выражением особой благодарности.
33
На тему проходимости нашёл:
1.16 Файл war3map.wpm : карта путей
Заголовок:
char[4]: file ID = 'MP3W'
int: file version = 0
int: path map width (=map_width*4)
int: path map height (=map_height*4)
Данные:
Каждый байт отвечает за 1/16 тайла.
Размер: (высота_карты*4)*(ширина_карты*4) байт.
Таблица флагов:
0x01: 0 (не используется)
0x02: 1=непроходимый, 0=проходимый
0x04: 1=недоступный для полёта, 0=доступный для полёта
0x08: 1=недоступный для строительства, 0=доступный для строительства
0x10: 0 (не используется)
0x20: 1=порча, 0=без порчи
0x40: 1=суша, 0=вода
0x80: 1=неизвестно, 0=обычный
(Не очень знаком с терминами, так что мог перевести не вполне точно, но смысл такой.)
29
Кет, это карта проходимости, не совсем то что надо
33
alexprey, про проходимость Cancel вроде тоже спросил, я просто невнимательно прочитал. Исправил.
21
вообще форматы это аббревиатуры же). wpm - warcraft path map, wts - warcraft trigger strings и т.д
Все данные по карте высот я так понимаю находятся всё же в файле warcraft 3 earth
на самом деле действительно хотелось бы увидеть в наше время качественный сторонний редактор файлов wpm w3e shd mmp что бы их отдельно от карты можно было ремейкать).
21
alexprey, thx, буду знать. Вот действительно, жаль что никому до этого дела нет, эти форматы уже относительно давно разобраны по байтам.. А редактора нет.
17
На тему проходимости нашёл:
Спасибо, принято!
Осталось разобраться с высотами и тайлами. Есть у кого соображения?
21
Cancel:
Осталось разобраться с высотами и тайлами. Есть у кого соображения?
Cancel:
NilasAran_39, если кто предоставит доходчивую информацию о бинарном формате карты - я бы мог создать програмульку по генерации карт на WarCraft. У неё и возможности будут более широкими.
Замути не просто генератор, а редактор! с возможностью генерации, цены не будет).
6
Cancel:
Угу, я долго с этим мучался.
С чем именно?
"С уровнем воды", надо ловить Z координаты.
22
В зепире вроде было нечто подобное, но могу ошибаться.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.