Circle sokoban: билд №0

Добавлен , опубликован
Несколько недель назад вбил себе в голову цель придумать концепцию для игры, использующую "принцип матрешки". Немного позже идея сформировалась, но до реализации прототипа руки дошли только сейчас.

Итак, в чем суть. Есть уровень с определенной геометрией. Есть ядро - парящий шарик, которым управляет игрок. Еще по уровню разбросаны оболочки - полые шарики разных размеров. Ядро может присоединять к себе оболочки и, таким образом, переносить их, однако, с определенным условием - непосредственно ядро может присоединять только самую маленькую оболочку; вместе с маленькой оболочкой, можно присоединить оболочку побольше, ну и т.д.. В общем, тот самый "принцип матрешки". В любой момент можно отцепить самую верхнюю оболочку на ядре. Через оболочки ядро, ясное дело, не проходит (не считая те, которые может к себе присоединить). Еще на уровне есть нажимные плиты, они, по сути, реагируют на вес - активировать их можно, поместив на них оболочку, но, при этом, если оболочку убрать, плита деактивируется.
Цель игры - активировать все плиты на уровне.

Играбельная версия тут.
ЖМИ СЮДА
Тестовые уровни лучше не трогать.
Управление:
W-A-S-D - передвижение ядра
Space - присоединение/отсоединение кольца
Управление в редакторе теперь расписано непосредственно в редакторе. Подробную инструкцию напишу, если потребуется.
Внимание: вэб-версия не поддерживает работу с файлами, поэтому сохранять и загружать уровни вы там не сможете. Поэтому, помимо прочего, я выкладываю standalone версию игры. Сохранение происходит в папку "Мои Документы\Shell User Levels".

Это еще не весь концепт. Уровни, построенные на простых оболочках и плитах, будут составлять только первый "сезон" уровней. Для разнообразия у меня в планах:
  • Плиты с требованием к весу (размеру) оболочки (больше, меньше, равно) (уже готово)
  • Разноцветные оболочки, и плиты с требованием к цвету;
  • Оболочки с требованием к цвету (те, которые можно прицепить только на оболочку определенного цвета, и те, на которые можно нацепить только оболочку определенного цвета).
  • Барьеры - преграды, которые не пропускают ядро, пока не выполнено определенное требование (количество прицепленных оболочек, цвет верхней оболочки, отсутствие прикрепленной оболочки определенного цвета, все оболочки одного цвета и т.д.).
Ну и смешивание этих опций.
Но их я буду вводить, только если сам концепт будет признан играбельным.

В общем, жду ваших отзывов. При необходимости, попробую сообразить еще несколько уровней. Да, кстати, если у вас появятся идеи для уровней, выкладывайте их в любой форме, буду очень благодарен)) Если что, в будущем мне тоже понадобятся люди, которые помогут с планированием уровней (самый большой гемор для головоломок).
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
26
10 лет назад
Отредактирован lentinant
1
Да, после отключения автоподбора колец проблем-то побольше стало.
Clamp:
На мне надето кольцо 1го размера, лежит кольцо третьего. Я через него пройти не могу, как через любое кольцо не 2го размера.
Это и так подразумевается.
Clamp:
Если я сброшу кольцо 1го уровня на коробку, то не смогу надеть кольцо 2го уровня. Чтобы такого не случилось, можно просто не давать сбрасывать кольцо, если на карте колец такого размера больше нет.
По идее, ты и так не можешь надеть кольцо второго уровня, без первого. Если это возможно сейчас, то это баги. А так - если игрок снимет единственное кольцо первого уровня, не положив на место кольцо второго уровня, то это его проблемы. В отличии от сокобана, тут это исправимо.
Clamp:
На самом деле, опасная идея. Суть в том, что если я пройду по кольцу, то оно поднимется автоматически, и автоматически сбросится на коробке. Конфликтует с кнопками, но снижает количество элементов интерфейса на управление, что полезно на телефонах.
Возможно, в игре будут моменты, когда кольцо надо будет скинуть не только на коробке. Или какое-то кольцо будет взято по ошибке. Кнопка для скидывания кольца должна быть в любом случае.

За жуков всем спасибо, пойду ловить.
0
24
10 лет назад
0
Тут такой баг есть - с 2 сторон можно выскочить за территорию. На скрине пометил красным.
Первое, что я сделал после того, как прочитал это - сам попробовал выскочить за территорию )
0
26
10 лет назад
0
А, теперь ясненько. Когда шарик на плите, первое, на что натыкается Рейкаст - сама плита.

Эх, похоже, придется полностью менять подход к реализации присоединения колец.
1
27
10 лет назад
1
lentinant, ты игру планируешь в 2D или 3D делать?
1
26
10 лет назад
1
Extravert, в 3D ее, по сути, нет смысла делать. Изначально думал как раз наоборот, но потом задумался, как, к примеру, будет выглядеть вхождение ядра в оболочку. Если откинуть вариант с тупо вхождением, то надо, чтобы оболочка открывалась, ядро туда влетало, и оболочка закрывалась. Но тогда это будет занимать очень много времени. В виде же с кружком и кольцами, быстрое вхождение выглядит нормально.
1
26
10 лет назад
Отредактирован lentinant
1
Немного изменил код, теперь указанных жуков не должно быть (правда, не факт, что не появились новые). А пока попробую сделать что-то похожее на редактор уровней. Сначала функционал будет базовый - стены, кольца, плиты. Остальное буду добавлять, как только, собственно говоря, это сделаю. Плюс, соответственным образом будет изменяться песочница.

Вот что пока получилось.
На этот момент, есть возможность создавать все доступные элементы, и размещать их на уровне. Также адекватная привязка по сетке (стены на сетке, игровые элементы в клетках). Пока это все происходит одновременно с игровым процессом (ядро можно двигать). Пока нет возможности ни удалять, ни передвигать уже поставленные элементы, да и лепить их можно один на другой. Сейва пока тоже нет. Вопрос удобства весьма спорный, надо чтобы другие опробовали.

Да, завтра ночью я уезжаю опять на учебу, и не знаю, успели ли починить мой ноутбук, так что разработка может затормозиться на определенное время.

Такое примечание - редактор я разрабатываю чисто в целях разработки, и вряд ли он войдет в полный функционал игры (кроме того, игра, все же, ориентируется на мобильные девайсы, на которых по умолчанию этот редактор очень неудобным получится). Да и сомневаюсь, что я смогу организовать нормальную систему создания, сохранения, и воспроизведения уровня уже в самой игре (то есть, в основном, созданные уровни я буду просто вручную конструировать уже в самом Юнити и добавлять в конечную версию). Так вот, возник вопрос - стоит ли вставлять проверку правильности уровня? Или оставить это на совесть тех, кто уровень делает? С проверкой иерархии колец (нельзя ставить 4 размер, когда нет 3, и т.д.), и обязательными условиями (на уровне должны быть плиты и кольца, количество плит должно быть меньше, чем количество колец) проблем не возникнет. Есть идеи насчет проверки, чтобы ни один элемент не выходил за пределы стен (сравнение с координатами самых крайних стен). Но могут возникнуть проблемы с самыми стенами - единственный алгоритм, который я придумал для проверки замкнутости стен, имеет жесткий косяк, и даже если это игнорировать, не запрещает создавать стены внутри стен (внутри которых могут быть интерактивные элементы). Однако, если человек, который будет делать уровни, сам попытается избежать подобного, то эти опции и не нужны.
Как вы считаете?
Лень, она повсюду.
1
24
10 лет назад
1
Банально запускаем по ячейкам волну от точки старта и после ее завершения проверяем добралась ли волна до всех интерактивных элементов. Естественно, волна не может проходить сквозь стены и у нее должен быть предел дальности чтобы если что не положить машину. Для проверки замкнутости стен делаем проверку не дошла ли случайно волна до крайних ячеек уровня (которые обязательно должны быть вне стен).
1
26
10 лет назад
Отредактирован lentinant
1
prog, суть вопроса была, все таки, в том, нужно ли это добавлять вообще, если редактор не получит широкого распространения.

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

Добавлена сырая версия редактора. Хотя как сырая, я не знаю, много ли еще буду дорабатывать. Кнопка в главном меню, точно найдете. Сохранения пока нет, если смастерите нормальный уровень - делайте скрин и выкладывайте сюда)) В некоторых условиях нельзя проверить уровень, верней, возможно, сразу же соблюдается условие о победе (если нет плит), и снова выбивает в редактор, так что тестируйте, когда уже имеете более-менее нормальный уровень.
Как я уже написал, проверок нет, так что целостность и грамотность уровней полностью зависит от вас.

Щас попробую отловить баг с невозможностью тестирования, он встречается чаще, чем я думал.
Нашел пару багов, сейчас перезалью обновленную.

Всё, всех видимых жуков перебил. Пробуем, тестируем, комментируем.
Да, кстати. Как думаете - стоит создавать проект с таким прогрессом? Или для начала добавить немного уровней, и несколько фишек новых?
Так что? Уровни кто-то уже пробовал сделать? Есть какие отзывы по редактору?

Завтра забираю ноут с ремонта. Как только обзаведусь всем необходимым софтом (диск-то пустой), сразу продолжу разработку. Есть идея насчет концепта дизайна плиты с выборочным требованием к кольцам.
1
26
10 лет назад
Отредактирован lentinant
1
Ноут вернулся с ремонта. Как только установлю юнити, по возможности возобновлю разработку.
1
27
10 лет назад
1
Обрадую, нашел баг prntscr.com/3ixhqk
Упираешься в стенку зажав W и пробел и нажимаешь D
1
26
10 лет назад
1
Extravert, довольно банальный баг - код для двух перемещений исполняется одновременно, с чего косяки. Решу либо переходом с OnMouseButton обратно на OnMouseButtonDown, либо заглушкой, которая будет активироваться при первой же нажатой кнопке, и блокировать все остальные кнопки.
Хотя, без заглушки не обойтись - с OnMouseButtonDown все равно можно будет одновременно нажать две кнопки.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.