itch.io
Dicement by voidtick
Minimalistic puzzle game about moving and placing dices. Play in your browser
Обновил страницу и демку на itch.
С момента ноябрьской демки в игру заехало много изменений и решил перед выпуском на Steam привести в порядок страничку и web-билд на итче - https://voidtick.itch.io/dicement.
Помимо большого количества полишинга и багфиксов, самое главное в обновлении - это 4 новых уровня с новыми механиками.
С момента ноябрьской демки в игру заехало много изменений и решил перед выпуском на Steam привести в порядок страничку и web-билд на итче - https://voidtick.itch.io/dicement.
Помимо большого количества полишинга и багфиксов, самое главное в обновлении - это 4 новых уровня с новыми механиками.
❤8👍2✍1
Как я выстраиваю прогрессию уровней для пазла.
Одна из самых сложных задач - выстроить правильный ритм и кривую обучения. Даже когда в игре всего 10-15 механик, уже становится тяжело удержать это все в голове и сделать путь игрока плавным, а не просто набором несвязанных между собой уровней.
Чтобы самому не запутаться и визуализировать игровую прогрессию, я решил описывать все уровни несколькими простыми параметрами ⬇️
🎯
Если не получается сформулировать простыми словами этот пункт, уровень не нужен или требует пересмотра. Тут же описывается, какие механики используются на уровне.
🥊
• Тривиальная (очевидное решение, используется для демонстрации новой механики)
• Простая
• Средняя
• Сложная
🧩
• Научить
• Закрепить
• Озадачить
💡
• Ввод новой механики
• Точный повтор шагов
• Математический
• Внезапный поворот (неочевидное использование механики)
• Забавная геометрия уровня
• Ограниченное пространство
• Усложненный повтор
Положив все это в табличку, стало намного легче замечать слабые места в прогрессии и проще миксовать типы и сложность уровней.
Одна из самых сложных задач - выстроить правильный ритм и кривую обучения. Даже когда в игре всего 10-15 механик, уже становится тяжело удержать это все в голове и сделать путь игрока плавным, а не просто набором несвязанных между собой уровней.
Чтобы самому не запутаться и визуализировать игровую прогрессию, я решил описывать все уровни несколькими простыми параметрами ⬇️
🎯
Цель - зачем этот уровень вообще в игре. Если не получается сформулировать простыми словами этот пункт, уровень не нужен или требует пересмотра. Тут же описывается, какие механики используются на уровне.
🥊
Сложность - сколько примерно времени и усилий должен потратить игрок на уровень.• Тривиальная (очевидное решение, используется для демонстрации новой механики)
• Простая
• Средняя
• Сложная
🧩
Назначение - что уровень дает игроку с точки зрения прогресса?• Научить
• Закрепить
• Озадачить
💡
Тип - на чем фокусируется идея уровня• Ввод новой механики
• Точный повтор шагов
• Математический
• Внезапный поворот (неочевидное использование механики)
• Забавная геометрия уровня
• Ограниченное пространство
• Усложненный повтор
Положив все это в табличку, стало намного легче замечать слабые места в прогрессии и проще миксовать типы и сложность уровней.
🔥8
Маленькая заметка о подготовке web-билда на Godot для Itch.
❗️Управление
Если планируется работа игры в полноэкранном режиме, то необходимо переназначить клавишу ESC для веб-билда на какую-нибудь другую. В противном случае, игра будет всегда сворачиваться в окно при, например, вызове меню. Жертвуем UX, но а че поделать, можно сделать отдельную подсказку в интерфейсе.
❗️Сборка
Стоит собирать веб-билд в single-thread режиме. Для этого нужно не ставить галочку
❗️Использование фиче-тегов
В Godot есть система строковых feature-тегов, по которым можно определять, в каком окружении работает игра.
С помощью них можно делать отдельные ветки в коде, чтобы сделать поддержку той или иной платформы: переназначить управление, показать/скрыть элементы UI и так далее.
Для это используется условие вида:
❗️Управление
Если планируется работа игры в полноэкранном режиме, то необходимо переназначить клавишу ESC для веб-билда на какую-нибудь другую. В противном случае, игра будет всегда сворачиваться в окно при, например, вызове меню. Жертвуем UX, но а че поделать, можно сделать отдельную подсказку в интерфейсе.
❗️Сборка
Стоит собирать веб-билд в single-thread режиме. Для этого нужно не ставить галочку
Thread support при экспорте. Иначе придется в самом itch для проекта врубать SharedArrayBuffer support, что, внезапно, ломает проигрывание любых видео на странице игры и не получится прикрепить трейлер с Youtube. Можно конечно обойтись только гифками, но полноценное видео как-то попривлекательнее.❗️Использование фиче-тегов
В Godot есть система строковых feature-тегов, по которым можно определять, в каком окружении работает игра.
С помощью них можно делать отдельные ветки в коде, чтобы сделать поддержку той или иной платформы: переназначить управление, показать/скрыть элементы UI и так далее.
Для это используется условие вида:
if OS.has_feature("web"):
# Переназначаем ESC на клавишу X🔥4✍2
Наконец-то закончил все уровни (50 штук) для Dicement и отправил билд на финальное ревью в Steam.
Хоть игра и была в практически финальном состоянии (все заявленные в описании фичи и контент) , Стим все же позволяет после окончания ревью вносить небольшие изменения.
В оставшееся время нужно будет еще дописать несколько недостающих музыкальных треков и поправить найденные баги и баланс. Но все же приятно видеть, как игра постепенно шаг за шагом приближается к своему релизу.
Хоть игра и была в практически финальном состоянии (все заявленные в описании фичи и контент) , Стим все же позволяет после окончания ревью вносить небольшие изменения.
В оставшееся время нужно будет еще дописать несколько недостающих музыкальных треков и поправить найденные баги и баланс. Но все же приятно видеть, как игра постепенно шаг за шагом приближается к своему релизу.
🔥8🎉6❤3👍2💋1
Все пишут про аишку, ну и я напишу.
Мне нравится писать код и придумывать решения, но в соло-разработке ищешь все способы, как сэкономить время и силы.
Признаться, я был сначала довольно скептично настроен в отношении AI для работы с Godot. Связано это было с тем, что в годоте свой язык GDScript и в целом движок сильно меньше распространен, чем то же Unity. Но, все же решил попровать использовать Github Copilot, встроенный в VS Code.
К моему приятному удивлению, он начал выдавать даже не полную чушь, а вполне рабочие решения на разных моделях. Полноценные сложные фичи он все же не очень осиливает, и чаще мне было просто быстрее написать самому, чем придумывать точный промт и потом допиливать. Думаю, это поправимо постепенным обучением агента, созданием скиллов и прочим, планирую добраться до этого в будущем.
Пока я нашел для себя как минимум 3 кейса использования, которые сильно экономят мне время:
🛠 Инструментарий
Тут аишка просто шикарна - быстро создать какое-нибудь дебажное окно, создать инструмент для работы с контентом, сделать утилитарный скрипт. Обычно нужно минимум контекста и очень просто поставить агенту задачу. Например, так сгенерил внутриигрове окно для переключения и тестирования локализации, создал скрипт для сброса ачивок в Стиме и всякую другую девелоперскую мелочевку. В общем сюда попадает все, что знаешь как сам сделать, но просто лень тратить много времени.
🖥 Шейдеры
Немного другая ветка разработки, которую я все обещаю себе полноценно освоить, но никак не дойдут руки. Так как шейдеры это мини-программы сами в себе, очень просто описать, что ты хочешь - “сделай обводку спрайта с настраиваемой толщиной”, “сделай шейдер для глитч-эффекта” и т.д. Тут AI стал незаменимым помощником.
🐞Баги
Когда быстро не получается найти источник неочевидного бага, я просто обращюсь к Copilot и в 80% случаев он подсказывает реальную причину. При разработке глаз постепенно замыливается и всякие штуки на поверхности легко пропустить и сидеть тупить часами. Так я например долго не мог понять, почему не срабатывает один таймер, а я его просто выставил больше, чем длительность игрового тика. Агент мне указал на это за 10 секунд, а я потратил до этого 20 минут на поиск.
Все это конечно далеко не популярный сейчас вайбкодинг (к нему и не стремлюсь), но отличный инструмент экономии время на рутине.
Мне нравится писать код и придумывать решения, но в соло-разработке ищешь все способы, как сэкономить время и силы.
Признаться, я был сначала довольно скептично настроен в отношении AI для работы с Godot. Связано это было с тем, что в годоте свой язык GDScript и в целом движок сильно меньше распространен, чем то же Unity. Но, все же решил попровать использовать Github Copilot, встроенный в VS Code.
К моему приятному удивлению, он начал выдавать даже не полную чушь, а вполне рабочие решения на разных моделях. Полноценные сложные фичи он все же не очень осиливает, и чаще мне было просто быстрее написать самому, чем придумывать точный промт и потом допиливать. Думаю, это поправимо постепенным обучением агента, созданием скиллов и прочим, планирую добраться до этого в будущем.
Пока я нашел для себя как минимум 3 кейса использования, которые сильно экономят мне время:
🛠 Инструментарий
Тут аишка просто шикарна - быстро создать какое-нибудь дебажное окно, создать инструмент для работы с контентом, сделать утилитарный скрипт. Обычно нужно минимум контекста и очень просто поставить агенту задачу. Например, так сгенерил внутриигрове окно для переключения и тестирования локализации, создал скрипт для сброса ачивок в Стиме и всякую другую девелоперскую мелочевку. В общем сюда попадает все, что знаешь как сам сделать, но просто лень тратить много времени.
🖥 Шейдеры
Немного другая ветка разработки, которую я все обещаю себе полноценно освоить, но никак не дойдут руки. Так как шейдеры это мини-программы сами в себе, очень просто описать, что ты хочешь - “сделай обводку спрайта с настраиваемой толщиной”, “сделай шейдер для глитч-эффекта” и т.д. Тут AI стал незаменимым помощником.
🐞Баги
Когда быстро не получается найти источник неочевидного бага, я просто обращюсь к Copilot и в 80% случаев он подсказывает реальную причину. При разработке глаз постепенно замыливается и всякие штуки на поверхности легко пропустить и сидеть тупить часами. Так я например долго не мог понять, почему не срабатывает один таймер, а я его просто выставил больше, чем длительность игрового тика. Агент мне указал на это за 10 секунд, а я потратил до этого 20 минут на поиск.
Все это конечно далеко не популярный сейчас вайбкодинг (к нему и не стремлюсь), но отличный инструмент экономии время на рутине.
🔥9❤2
Audio
🎹 Люблю писать музыку, хоть и не всегда есть вдохновение.
Чтобы поддержать настроение для каждой локации в игре, сделал по небольшому ~30-секундному зацикленному треку. На самом деле, иногда довольно сложно придумать музыкальную тему, которая не будет перетягивать на себя внимание и лишь служить фоном - руки тянутся сделать что-то эпичное, но часто это совсем не ложится на геймплей.
Чтобы опять же сэкономить время, все треки (кроме трейлера) используют одни и те же 4 основных инструмента, но в разных вариациях. В целом, результатом я доволен.
Чтобы поддержать настроение для каждой локации в игре, сделал по небольшому ~30-секундному зацикленному треку. На самом деле, иногда довольно сложно придумать музыкальную тему, которая не будет перетягивать на себя внимание и лишь служить фоном - руки тянутся сделать что-то эпичное, но часто это совсем не ложится на геймплей.
Чтобы опять же сэкономить время, все треки (кроме трейлера) используют одни и те же 4 основных инструмента, но в разных вариациях. В целом, результатом я доволен.
🔥14
Минутка коллаборации.
Коллега по геймдев-цеху пилит прикольный ироничный карточный рогалик в духе Slay the Spire про офисные войны и бесконечное поглощение кофе.
Почитать про разработку можно в https://t.me/chickenCornerClub.
Коллега по геймдев-цеху пилит прикольный ироничный карточный рогалик в духе Slay the Spire про офисные войны и бесконечное поглощение кофе.
Почитать про разработку можно в https://t.me/chickenCornerClub.
❤4