Рандомная генерация мира
|
|
OlegWock | Дата: Пятница, 11 Июля 2014, 00:34 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| В последнее время увлекся рандомной генерацией мира, и самое лучшее что я придуал -- это вот такой вот алгоритм (моя карта -- изображение): 1. Создаем изображение засеиваем его серым шумом (я использовал изображение 50х50 пикселей) 2. Применяем размытие по Гауссу (для 50 пикселей оптимальный радиус радиус был +- 3.5) 3. Проходимся по каждому пикселю, если его значения ниже определенного значения (я использовал 115) то красим его в синий (вода), иначе -- в зеленый (земля) 4. Увеличиваем его в 4 раза (до 200х200 пикселей) В итоге получалось что-то такое Количество воды можно регулировать изменяя радиус размытия и "порог вхождения" (см. пункт 3)
UPD: Добавил горы. Все пиксели выше 139 становятся горами.
А какие алгоритмы знаете вы? Огромная просьба: если пишите код на своем любимом ЯП'е -- переводите его в псевдо-код, проявите уважение к людям, которые его не знают.
Сообщение отредактировал OlegWock - Пятница, 11 Июля 2014, 00:42 |
|
| |
Tiendil | Дата: Пятница, 11 Июля 2014, 13:32 | Сообщение # 2 |
участник
Сейчас нет на сайте
| Я предпочитаю не делать прямую случайную генерацию, а моделировать. Делаем модель, после чего задаём случайные параметры и запускаем. Так сделал карту для своей Сказки. Гененратор, кстати, open source.
А про генерацию можно тут почитать: http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/
Участвовал в разработке Order of War (C++ UI & логика) и WoT (Python портал worldoftanks.ru почти всё :-) )
Текущий проект: the-tale.org - indie mmozpg
|
|
| |
OlegWock | Дата: Пятница, 11 Июля 2014, 18:01 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| Цитата Tiendil ( ) Гененратор, кстати, open source Можно ссылку на гитхаб? Уж больно интересно
|
|
| |
Tiendil | Дата: Пятница, 11 Июля 2014, 18:06 | Сообщение # 4 |
участник
Сейчас нет на сайте
| https://github.com/Tiendil/deworld
Вот результат работы: http://the-tale.org/game/map/
Но документации пока нет.
Участвовал в разработке Order of War (C++ UI & логика) и WoT (Python портал worldoftanks.ru почти всё :-) )
Текущий проект: the-tale.org - indie mmozpg
|
|
| |
OlegWock | Дата: Пятница, 11 Июля 2014, 20:43 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| Цитата Tiendil ( ) https://github.com/Tiendil/deworld Божечки, оно еще и на питоне, вообще отлично. Спасибо.
|
|
| |
Tiendil | Дата: Пятница, 11 Июля 2014, 22:15 | Сообщение # 6 |
участник
Сейчас нет на сайте
| Если будут вопросы — обращайся. Я заинтересован, чтобы библиотечкой другие пользовались.
Участвовал в разработке Order of War (C++ UI & логика) и WoT (Python портал worldoftanks.ru почти всё :-) )
Текущий проект: the-tale.org - indie mmozpg
|
|
| |
SarcoFuck | Дата: Понедельник, 18 Августа 2014, 13:17 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| Цитата Tiendil ( ) Я предпочитаю не делать прямую случайную генерацию, а моделировать. Делаем модель, после чего задаём случайные параметры и запускаем. Так сделал карту для своей Сказки. Гененратор, кстати, open source. Поддерживаю - тоже распространял рэндомом обьекты(дэлфя). Только в таких случаях нужно коллизию обьектов обрабатывать обязательно, а то получится черти что)
Здесь скоро появится подпись
|
|
| |
-l33t-h4xx- | Дата: Вторник, 19 Августа 2014, 09:39 | Сообщение # 8 |
участник
Сейчас нет на сайте
| Шум Перлина.
Как правильно задавать вопросы
|
|
| |