Circle sokoban: билд №0

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

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

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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
27
Обрадую, нашел баг prntscr.com/3ixhqk
Упираешься в стенку зажав W и пробел и нажимаешь D
26
Extravert, довольно банальный баг - код для двух перемещений исполняется одновременно, с чего косяки. Решу либо переходом с OnMouseButton обратно на OnMouseButtonDown, либо заглушкой, которая будет активироваться при первой же нажатой кнопке, и блокировать все остальные кнопки.
Хотя, без заглушки не обойтись - с OnMouseButtonDown все равно можно будет одновременно нажать две кнопки.
26
Да, народ, такой еще вопрос - как думаете, управление на мобильный лучше делать экранными кнопками или свайпами?

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

Окай, залил.
Список изменений
  • Пофиксил (наверно) баг, указанный Экстравертом (во всяком случае, теперь, если нажата одна кнопка, код других исполняться не будет).
  • Для пущего удобства, теперь, когда вы в редакторе расставляете или передвигаете элементы, весь остальной интерфейс убран. Пока не предусмотрено для удаления, в меру того, что оно реализовано не так, как передвижение и создание элементов.
  • Наконец-то есть система сохранения и загрузки уровней. Пришлось отказаться от удобства, теперь это просто маленькое окошко, где вы вписываете название уровня, который хотите сохранить/загрузить. Сообщений при неправильной загрузке пока не предусмотрено - окно просто закроется. Файлы хранятся по адресу C:\Users\Username\AppData\LocalLow\DefaultCompany\Shell (хотя, это для редактора, кто знает, как в вэб-версии будет).

Мда, вэб плеер сохраняет фиг знает куда. Поищу. Ну, или поставлю сейв в Документы.

Окей, готово. Теперь ваши уровни будут храниться в "Мои Документы", в папке "Shell User Levels".

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

В принципе, можно перейти на полноценную систему загрузки уровней внутри игры (вместо создания каждого уровня вручную в редакторе Юнити). Я просто сделаю сцену-пустышку, в которой, в зависимости от выбранного в меню пункта, будет загружаться уровень необходимого формата, по тому же принципу, по которому он загружается в редакторе. У меня были сомнения насчет того, где хранить уровни (к примеру, я абсолютно не разбираюсь в иерархии директорий андроида), но их оказалось вполне реально хранить непосредственно в ассетах игры.

Из-за жутко нарушенного дневного режима, не смог сегодня заснуть. Поэтому пилил дальше (а еще шпилил, но это не так важно).
Итого: сделал "переборчивые" плиты. Пришлось перерисовать их на что-то уродливое, но на это были определенные соображения. Требование можно выставить в любой комбинации - начиная "принимаю все" и заканчивая "принимаю ничего" (да, это будет вариант без победы; подобные вещи становятся фишкой моего редактор - игра "детектор ленивого дизайнера"). Окно настройки вызывается кликом левой кнопкой мыши на плиту, когда сверху справа выставлен пункт Modify (костыли, они повсюду; позже попробую как-то унифицировать управление в редакторе). Сохранение с сабжем сдружено.
Еще добавил маленькие зеленые ободки между присоединенными кольцами - полезно в ситуации, когда вы стоите в кольце, и думаете, присоединили вы его только что или отсоединили.
27
немного смущает что порталы горят зеленым, когда в них ничего нет
26
Extravert, это плиты -_- Какие именно части? О том, что плита нажата, говорят только центральный круг и четыре штучки на "лапах". Зеленые кольца вокруг круга - это показатели того, какие кольца принимает плита. И когда конкретно? Если в режиме редактирования, то не думаю, что это так страшно - при проверке уровня, они тушатся.

Да, забыл упомянуть. Поскольку мне надоело при каждом новом билде удалять отсюда старый, загружать новый, и менять ссылку на него в тексте, я просто оставлю ссылку на DropBox, которая всегда будет одинакова, пока я не переименую файл.
27
lentinant, ну плиты - суть одна.
Когда мы проходим через плиту и НЕ оставляем там круг она горит красным
Когда мы проходим через плиту и оставляем там круг она горит зеленым
Вначале загрузки уровней мы НЕ имеем колец на плите, но они горят зеленым. Имею ввиду уровни уже построенные.
26
Extravert, если вы о тестовых уровнях, то на них я вам рекомендую вообще забить - я не собираюсь их править, особенно после недавно проведенных мной манипуляций с префабами. На этот момент проект находится в стадии "сделай сам".
Когда реализую загрузку уровней с файлов - возобновлю эти уровни в виде файлов, и загружу нормальные версии.
27
lentinant, не нашел способа ставить вертикальные стены. Он есть вообще?
26
Extravert, центральная кнопка мыши. Читайте текст под красным "Управление" в посте.
24
lentinant, "Недо-прототип логической игры" уже заменить можно )
26
Isstrebitel, позже создам проект. А тут, пусть народ смотрит, как тут все было с самого начала)

Ладно, чтобы не заснуть, надо работать дальше. Начну писать "приемный" уровень.

Блин, затупил, при сохранении я кроме позиции передаю еще интовскую переменную в качестве вспомогательного параметра, а ведь можно передавать массив. Придется переделывать, ибо позже одной интовой переменной будет мало.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.