Вниз  Аналог MoveTheBox - разработка
- 2.06.2014 / 14:04
prayncode
  Пользователь

prayncode 
Сейчас: Offline
Привет всем. Решил написать свой MoveTheBox. Графика готова, механика готова, алгоритм совпадений готов. Т. е. игра уже вполне играбельна.
Последним шагом будет портирование на могильные устройства.
Собственно, сейчас встал вопрос о генераторе уровней, и я с удовольствием почитаю ваши мнения по поводу того, как генерировать уровни. С одной стороны, можно их составлять вручную, но это долго, скучно и неэффективно.
Формат уровней не принципиален, но уровни будут разбиваться по количеству перестановок для достижения результата.

Пока есть такой вариант: брутфорсом составлять различные варианты уровней. Внутри каждой итерации пробовать автоматически подбирать решение. Если решение есть и оно удовлетворяет некоторым требованиям, то сохраняем этот уровень. Да, долго, да, тупо. Но можно нажать Enter и заняться своими делами. А потом сиди и отбирай понравившееся.

С++, ООП

Скриншоты
Открыть спойлер


Изменено prayncode (22.07 / 22:47) (всего 2 раза)


Прикрепленные файлы:
game_02062014_0.jpg (38.87 кб.) Скачано 100 раз
game_02062014_1.jpg (48.73 кб.) Скачано 93 раза
- 2.06.2014 / 14:15
samogost
  Пользователь

samogost 
Сейчас: Offline
prayncode, генерировать уровни лучше всего с помощью случайных чисел.
Допустим есть карта, для того чтобы сгенерировать случайную карту, надо сгенерировать случайныйе значения ячеек, после чего добавить в массив карты.
- 2.06.2014 / 14:17
prayncode
  Пользователь

prayncode 
Сейчас: Offline
samogost, важно, чтобы уровень был решаемым. Чтобы не оставалось лишних ящиков.
- 2.06.2014 / 14:59
Magatino
  Администратор

Magatino 
Сейчас: Offline
prayncode (02.06.2014/14:17)
samogost, важно, чтобы уровень был решаемым. Чтобы не оставалось лишних ящиков.
Дык, а почему будут лишние ящики, ведь их количество тоже генерируется от какого значения.

samogost,
Ты Кэп 99% уровня, только ты не понимаешь о чём пишешь, ибо до сих пор, ты в коде вручную прописываешь каждую ячейку карты :gy:
- 2.06.2014 / 18:07
prayncode
  Пользователь

prayncode 
Сейчас: Offline
Magatino, даже если создать по 3 или 6 ящиков разного вида, может получиться нерешаемая за отведённое количество ходов комбинация.
- 2.06.2014 / 22:23
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
Простой метод для генерации, сложный для игрока: сгенерировать все поле, уже разложенное по цветам и начать в случайном порядке менять местами соседние ящики (если я правильно понял концепцию игры), поменять так 50% << N < 100% от общего, потом ещё 0% < N << 50% соседних поменять.
PS. Одно большое ИМХО: если использовать для игры генератор уровней, то этот генератор должен быть в игре, а не в девтулките.

Изменено mrEDitor (2.06 / 22:25) (всего 2 раза)
- 2.06.2014 / 22:33
prayncode
  Пользователь

prayncode 
Сейчас: Offline
PS. Одно большое ИМХО: если использовать для игры генератор уровней, то этот генератор должен быть в игре, а не в девтулките.Я планирую всё-таки заготовить определённое количество уровней заранее. Незачем тратить процессорное время пользователя, учитывая, что у меня навряд ли это качественно получится. Если генерировать на лету уровень для каких-нибудь Doodle Jump или Flappy Bird, то никаких проблем. Но тут я бы предпочёл автоматически сгенерировать кучу уровней и отобрать интересные.

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

Собственно, единственное, что я нашёл в поиске: вопрос на stackoverflow.

Изменено prayncode (2.06 / 22:34) (всего 1 раз)
- 12.06.2014 / 23:04
prayncode
  Пользователь

prayncode 
Сейчас: Offline
Итак, небольшие итоги. Генератор работает. Под капотом брутфорс (ибо лень было думать над алгоритмом реверсивного алгоритма) и PHP. Генерирует, естественно, долго и некачественно, но удалось получить пару уровней с двенадцатью ящиками различного типа и парой ходов для решения.
Простые же уровни генерятся довольно быстро, но будут интересны только очень глупым людям.

Изменено prayncode (12.06 / 23:07) (всего 1 раз)
Наверх  Всего сообщений: 8
Фильтровать сообщения
Поиск по теме
Файлы топика (2)