Пятница, 15 Ноября 2024, 04:28

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Генерация уровня поклеточно
lentinantДата: Понедельник, 27 Января 2014, 02:49 | Сообщение # 1
ленивый программист
Сейчас нет на сайте
Я собираюсь создавать более продвинутую версию Block Temple, и первым шагом к этому является переход от квадратных уровней к генерируемым.

На этот момент я использую банальную рекурсию - комната случайным образом создает соседние комнаты, те, в свою очередь, случайным образом создают комнаты в пустых соседних клетках, и так до определенного количества комнат. Однако этот метод довольно часто создает "кишечные" уровни - такие состоят, в основном, с коридора единичной толщины, и это, ясное дело, меня не устраивает.

Знает ли кто хорошие методы генерации уровней, подходящие для уровней, состоящих из клеток?


Когда-то тут будут ссылки на крутые проекты. Или нет.
TiendilДата: Понедельник, 27 Января 2014, 11:02 | Сообщение # 2
участник
Сейчас нет на сайте
Цитата lentinant ()
и первым шагом к этому является переход от квадратных уровней к генерируемым.

От красного к плоскому?

Вот хороший алгоритм:

1. выбираем желаемое количество комнат — N;
2. на карте ставим N случайных точек так, чтобы они не были слишком близко друг к другу;
3. считаем, что точка — это квадрат со стороной 1;
4. итерационно начинаем увеличивать фигуры, выбирая одну из сторон и двигя её (увеличивая площадь фигуры);
5. там, где они столкнулись, замораживаем стенки;
6. когда карта заполнена, на стыках ставим двери.

P.S. в Block Temple не играл, так что алгоритм может и не подойти.


Участвовал в разработке Order of War (C++ UI & логика) и WoT (Python портал worldoftanks.ru почти всё :-) )

Текущий проект: the-tale.org - indie mmozpg
OrdanДата: Четверг, 30 Января 2014, 09:59 | Сообщение # 3
Главный зомби
Сейчас нет на сайте
В игре "Побег из Эдема" я сделал чисто рандомную систему)
К примеру клетка, при передвижении в нее, рандомом определяются все её стороны
к примеру рандом из 10
1-4 будет стена
5-8 ничего (коридор)
9- дверь
10-какая нить фигня на стене

Получается очень забавный лабиринт)
Запилить эту систему на твою и будет класс)


Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)

Мои проекты ТЫК
Мои видяхи на ютубэ ТЫК

Если ты споришь с идиотом, вероятно тоже самое делает и он.
dddmaxДата: Четверг, 30 Января 2014, 11:29 | Сообщение # 4
был не раз
Сейчас нет на сайте
Вот как делал я (код на си под DGLE2):
generator
Принцип не очень сложный, Берешь карту н на м, раскидываешь по ней прямоугольные комнаты, потом соединяешь их
коридорами. Думаю разобраться не сложно.

ПС: НА абсолютную истину не претендую smile


Сообщение отредактировал dddmax - Четверг, 30 Января 2014, 11:31
OrdanДата: Четверг, 30 Января 2014, 15:38 | Сообщение # 5
Главный зомби
Сейчас нет на сайте
dddmax, это не то, генерация должна быть автоматическая и рандомная

Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)

Мои проекты ТЫК
Мои видяхи на ютубэ ТЫК

Если ты споришь с идиотом, вероятно тоже самое делает и он.
dddmaxДата: Четверг, 30 Января 2014, 16:27 | Сообщение # 6
был не раз
Сейчас нет на сайте
Ordan
Цитата
раскидываешь по ней прямоугольные комнаты
Здесь и имеется в виду рандомная расстановка, смотри исходник.


Сообщение отредактировал dddmax - Четверг, 30 Января 2014, 16:32
OrdanДата: Пятница, 31 Января 2014, 02:29 | Сообщение # 7
Главный зомби
Сейчас нет на сайте
dddmax, ему нужно чтоб число комнат было не фиксированное, размеры и формы тоже.

Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)

Мои проекты ТЫК
Мои видяхи на ютубэ ТЫК

Если ты споришь с идиотом, вероятно тоже самое делает и он.
dddmaxДата: Пятница, 31 Января 2014, 06:34 | Сообщение # 8
был не раз
Сейчас нет на сайте
Мне сматериться или как? Посмотри уже исходник, там все это есть biggrin
Все можно настроить под себя, размеры карты, размеры и кол-во комнат. Единственное ограничение то что комнаты прямоугольны. Если код слегка доработать можно добавить и генерацию наполнения комнат. И думаю нет повода в дальнейшей дискуссии. Я поделился, использовать или нет решать вам.


Сообщение отредактировал dddmax - Пятница, 31 Января 2014, 06:39
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг