Найти тему
Пирог

Пирог

Неспешный процесс разработки игры-рогалика
подборка · 20 материалов
1 год назад
Пирог #15. Генерация связей между комнатами (плохая)
В предыдущей части наконец-то были построены какие-то комнаты, между которыми осталось провести коридоры. Комнаты строились с помощью сканирования содержимого карты, так что здесь продолжу в том же ключе. Эта задача подразумевает большой объём разнообразных вычислений и проверок, и я пока не вижу способов её упростить. Возможно, это случится уже в процессе. Однако, разбитая на этапы, она не выглядит очень сложной, просто громоздкой: 1. Нахождение стен Буду снова сканировать карту в поисках такой...
1 год назад
Пирог #14. Когда уже будет карта?
В проектe Пирог – напомню, что это Rogue на Питоне, следовательно Pyrogue – было сделано клиент-серверное взаимодействие. При этом рассматривались различные варианты генерации карты. Всё это можно найти в прошлых выпусках, но предварительная реализация делалась на JavaScript для онлайн-примеров. Пора добавить в сам Пирог хоть какую-то генерацию карты, чтобы можно было идти дальше. Но тут меня посетила ещё одна идея, как это можно сделать, и проиллюстрирую я её конечно опять с помощью JS :) В оригинальном...
1 год назад
Заливка цветом и связность областей
В графических редакторах есть такой инструмент "floodfill", который означает заливку цветом, и обычно его иконка выглядит как ведро, из которого проливается краска: Собственно, он называется так, потому что может именно залить (как жидкостью) цветом любую область. В прошлом на особо медленных компьютерах процесс заливки можно было наблюдать – цвет действительно как бы разливался, и если где-то находил проход, то проливался и туда, заполняя всё доступное пространство. Допустим, мы красим оранжевым цветом...
1 год назад
Пирог #13. Решение проблемы плиток
В предыдущей части поднимался вопрос рисования плиток с автоматическим определением границ. Хотя первый вариант кода работал, там был фундаментальный недостаток. Стены дорисовывались поверх плитки с нужных сторон, и вполне могли накладываться друг на друга. Так как рисовались просто цветные прямоугольники, от наложения они никак не страдали. И это существенно упрощало алгоритм. Но теперь возьмём нормальную графику. Я выяснил, что нужно вот столько вариантов для плитки одного материала: Обратите внимание...
1 год назад
Пирог #11. И снова коридоры
Вся подборка по рогаликам: Прошло уже много времени, поэтому немного освежу тему. Тезисы для построения коридоров я описал в этом материале: Но реализовать указанную там схему не получилось. Точнее, я просто не хотел делать поиск пути в графе, поэтому следующей попыткой были дороги с алгоритмом, похожим на клеточный автомат: Они получились довольно симпатичные, но я решил оставить их для других целей (а именно, для настоящих дорог), а коридоры сделать всё-таки через поиск пути в графе. Можно сразу посмотреть онлайн, что получилось: https://js...
413 читали · 2 года назад
Поиск кратчайшего пути в лабиринте
В связи с разработками на тему процедурной генерации дошли руки и до алгоритма поиска кратчайшего пути. Первоначально, по уже забытым причинам, я обозначил его как алгоритм Дейкстры – выдающегося учёного, оказавшего огромное влияние на развитие компьютерной индустрии. Но в комментариях указали, что это волновой алгоритм. Данный алгоритм во-первых очень прост, а во-вторых полезен не только для поиска кратчайшего пути. Он работает на карте, состоящей из клеток. Задача ставится так: если мы находимся...