TGViewer
Channel Public Channel
Kozlov Dev - Разработка игр

Kozlov Dev - Разработка игр

@kozlovdev

Канал о разработке игр.
Subscribers
4.1K
Photos
668
Videos
176
Links
277

Showing posts older than #835 · Back to latest

Older Posts 11 shown
Post #834 1.58K
😍 Прощай, мир — встречай, вселенная!

Всем привет! Сегодня хочу рассказать о переходе на новую структуру игры.

Старые миры
В первой части игры структура была довольно простой и строилась вокруг сущности мира. Игрок мог создать мир и играть в нём. При этом не существовало никаких измерений — вроде ада, небесных островов и т.д.

🥺 Многие игроки просили добавить систему измерений и порталов для перехода между ними, поэтому в новой части игры я решил сразу заложить архитектуру под такие возможности.

Новые вселенные
Новый подход строится уже на двух сущностях:
— сущность вселенной
— сущность места (place)

👍 Теперь игрок создаёт не один мир, а целую вселенную, внутри которой могут находиться различные места.

✔️ Вселенная содержит в себе набор всех мест, которые в ней существуют, и хранит общие данные, доступные для переноса между ними (данные игрока: инвентарь, статы и т.д).
✔️ Само место — это переработанная сущность мира. Место может ссылаться на другие места, благодаря чему можно настраивать полноценный граф переходов между ними. У каждого места есть своя конфигурация — можно настроить биомы, мобов, структуры и многое другое. За счёт этого каждое место будет выглядеть уникально и не похоже на остальные.

Что это даёт
✔️ Такой подход даёт очень мощную и гибкую систему для создания разнообразных локаций в игре. Например, можно создать места-планеты: Земля, Луна, Марс и т.д.

✔️ Для каждой планеты можно добавить собственные измерения: внешний мир, ад, небесный сад и другие. Игрок сможет перемещаться между всеми этими местами с помощью порталов.

В будущем можно прикрутить систему разблокировки места, чтобы в него попасть нужно выполнить какой то квест или скрафтить какой то ключ

😅 Пока система находится на этапе рефакторинга: многое приходится переписывать и дорабатывать. Но как только я её завершу, обязательно покажу результат в отдельном посте 🚀
  • 🔥 20
  • ❤ 2
  • 🥰 2
Post #833 1.43K
😎 Стартуем эвент SCREENSHOT SATURDAY!

❗️ Переходите в наш Game Dev чатик 🔜 ссылка, делитесь своими скриншотами, рисунками, прикрепляйте ссылки на каналы и показывайте прогресс в геймдеве за неделю

P.S Эвент длится оба выходных

#скриншотник
  • ❤ 6
  • 🔥 5
  • 🥰 4
Post #827 1.54K
🔥 Структуры и проблема с поворотом

Всем привет! Сегодня хочу рассказать про жёсткий баг, на который наткнулся при реализации поворота структур.

✔️ Чтобы структуры выглядели разнообразнее, нужно уметь размещать их в разных направлениях.
Сам поворот реализовать несложно: мы просто переставляем данные массива местами в зависимости от направления и готово.

😭 Но если в структуре используются блоки, у которых есть состояние направления (ступеньки, лестницы, сундуки, кровати и т. д.), то они начинают ломаться, потому что при повороте мы не меняем их мета данные.

🙂 Раньше мета блока у меня хранилось в 1 байте (для оптимизации): я делил его на биты и упаковывал туда всё, что нужно. Например для блока двери в первом бите хранил открыта или закрыта дверь, далее два бита были на поворот от 0 до 3, следующий бит был на то какая часть двери верх или низ и т.д. Но из-за этого было сложно работать с метой блока из вне, чтобы ее подредактировать на тех же поворотах

😍 После большого рефакторинга я избавился от «байтовой меты» и перенёс систему на отдельные состояния. Теперь можно легко добавлять новые состояния блока и получать к ним доступ по ключу.

👍 И уже благодаря этой системе я могу быстро определить, есть ли у блока состояние направления, и при повороте структуры менять его вместе с блоком. Из-за этого все «поворотные» блоки начинают корректно располагаться внутри структуры.

P.S Прикрепил скрины бага структур, а так же примеры конфигурации состояний блока в компонентах двери и ступеньки 📌
  • 🔥 20
  • ❤ 6
  • 👍 6
  • 🤯 1
Post #826 1.27K
🔥 Всем привет! Сегодня расскажу, почему я использую JSON-конфиги.

🤔 Некоторые подписчики спрашивали, почему для конфигурации я выбрал JSON, ведь в Unity есть ScriptableObject (SO)? Так как в SO можно описывать структуру и удобно заполнять данные прямо в редакторе и в зачастую именно SO и берут в роли конфигов.

🧐 Главная причина выбора JSON в том, что я хочу максимально отвязать проект от движка. JSON это универсальный формат, который используется практически везде. А вот SO это уже часть Unity, и работать с ним вне движка полноценно нельзя.

Какие задачи решает JSON в проекте

1) Удобная работа с ИИ-агентом для генерации контента
Моя не самая любимая часть разработки это создание новых конфигов для контента 😏. Чтобы добавить новый блок, приходится заводить конфиг блока, предмета, добавлять ключи переводов и так далее.
⚡️ Чтобы ускорить процесс, я подключаю ИИ-агентов. Достаточно одного промпта, и ИИ может создать пачку новых конфигов за пару минут, экономия времени получается очень заметной. Специально для этого у меня есть небольшая документация: как устроены конфиги и как их правильно оформлять. И тут JSON подходит идеально: ИИ агент легко читает, правит и генерирует JSON без проблем 👍.

2) Дополнительный контент (пакеты)
Скоро я планирую добавлять паки, которые можно будет скачивать с бэкенда, распаковывать и использовать в игре. Бэкенду проще работать с JSON: можно легко прикрутить валидацию содержимого пака, проверку версий, совместимость, зависимости и прочие полезные штуки. Плюс эта же система хорошо ложится на хранение модов (о них ниже).

3) Моды
В будущем хочу развивать проект в сторону модов, чтобы любой человек мог добавить в игру что-то своё. JSON для этого отличный вариант: он читаемый и понятный человеку. Мод можно сделать даже без редактора, просто создавая и редактируя файлы с конфигурацией.

Что уже покрыто через JSON
На данный момент через JSON я настраиваю такие вещи:

✔️ Модели и риг: модели собираю в Blockbench и экспортирую в JSON
✔️ Блоки: поведение, рендеринг и прочие настройки
✔️ Предметы: функционал, рендеринг и параметры
✔️ Биомы: рельеф, окружение (цвет неба, звуки и т.д.)
✔️ Структуры: правила спавна, варианты, настройки генерации
✔️ Мобы: правила спавна, уникальные параметры и поведение

Это уже мощный фундамент: на нём можно быстро расширять игру контентом, постепенно подключать паки, а дальше без боли перейти к полноценной поддержке модов.
  • 👍 12
  • 🔥 11
  • 🥰 3
Post #825 1.3K
😎 Стартуем первый в этом году эвент SCREENSHOT SATURDAY!

❗️ Переходите в наш Game Dev чатик 🔜 ссылка, делитесь своими скриншотами, рисунками, прикрепляйте ссылки на каналы и показывайте прогресс в геймдеве за неделю

P.S Эвент длится оба выходных

#скриншотник
  • 🔥 9
  • ❤ 1
  • 👏 1
  • 🙏 1
  • 🌭 1
Post #820 2.01K
🧤 Всем привет! Выходим с новогодних праздников с новым девлогом по Blockworld!

👍 Полностью закончил перенос системы блоков на новый компонентный подход. Остались ещё мелкие детали, но сама система уже готова.

Шейдеры
Доработал шейдеры блоков и предметов — а именно часть с боковым освещением. Теперь оно отлично накладывается как на рендер блоков (когда меш задаём в коде), так и на рендер моделей (готовый меш модели — унитаз, холодильник).

Доработал и добавил новые блоки:
✔️ Холодильник — добавил к нему компонент хранилища, теперь он умеет хранить предметы. В будущем планирую добавить фильтр, чтобы в нём можно было хранить только еду. Думаю, это прикольная механика — добавляет правдоподобности 🙂

✔️ Слой снега — блок с компонентом слоя. Теперь слои умеют стакаться, количество слоёв можно настраивать в компоненте (сейчас по умолчанию — 8). Планирую использовать это при генерации заснеженных биомов — будет добавлять разнообразия в мир.

✔️ Рельсы — автоподстраиваемый блок. В скором времени планирую добавить вагонетки, чтобы игроки могли строить американские горки)
  • 🔥 14
  • ❤ 5
  • 👍 1
Post #817 1.58K
С новым годом🎆

У меня уже наступило будущее и я хочу пожелать счастья, здоровья, много денюшек и хорошего настроение!
  • ❤ 30
  • 🎉 16
  • 🥰 6
  • 👍 1
Post #816 1.45K
🔤🔤🔤🔤🔤  🔤🔤🔤🔤

🔥 Этот год стал намного продуктивнее прошлого: было проделано много работы в разных направлениях, были как хорошие, так и не очень моменты.

📈  Рост аудитории
За год количество подписчиков выросло в 2 раза — с 1500 до 3000. Это невероятная поддержка, за которую спасибо каждому! Для интереса прикрепил статистику по каналу 😏

😭 Удаление BlockWorld с Яндекс Игр
Печальное событие, которое произошло в этом году, — удаление игры из-за жалобы от Microsoft. В данной ситуации есть и моя ошибка, подробнее об этом — тут.

💥 Перерождение BlockWorld
Ведётся разработка новой версии с огромным количеством изменений (я бы даже назвал это новой игрой). Теорию и запрос на нишу я уже проверил, так что теперь буду превращать проект в более серьёзный продукт, чем просто клон. Учтены все ошибки и недостатки прошлой версии — думаю, игроки останутся довольны.

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

⭐️ Планы на 2026
Следующий год обещает быть насыщенным на события: выход новой версии BlockWorld на различные площадки и отдельная часть с мультиплеером. Также планирую расширять команду и сформировать мини-геймдев студию. И самое главное — выход нашего стартап-продукта, который должен привлечь внимание разработчиков игр 😏

✍️ Делитесь своими значимыми событиями за этот год в комментариях.
  • 🔥 20
  • ❤ 4
  • 👍 3
  • ⚡ 1
  • 👏 1
  • 🎉 1
Post #815 1.27K
🔥 Знакомые ребята проводят в январе 2 геймджема!

🤑 С призовым фондом 55 тысяч рублей.

Знаю что многие любят или хотели бы поучаствовать в джеме, поэтому оставляю ссылочку на них 📌.

🙂 И желаю удачи всем, кто будет участвовать!
Telegram MyIndie | Трушный gamedev MyIndie January Rush — это целый месяц геймджемов с призами! Вы хотели и разрабатывать, и отдыхать? Мы даём вам возможность одновременно отдыхать и создавать прекрасные игры! В январе пройдут сразу два джема: 🟡GameJam lvl7 — старт 3 января, чтобы участвовать…
  • 🔥 6
  • 👍 1
Post #814 1.19K
😎 Последний в этом году эвент SCREENSHOT SATURDAY!

❗️ Переходите в наш Game Dev чатик 🔜 ссылка, делитесь своими скриншотами, рисунками, прикрепляйте ссылки на каналы и показывайте прогресс в геймдеве за неделю

P.S Эвент длится оба выходных

#скриншотник
  • 🔥 9
  • ❤ 2
Post #810 1.32K
🔥 Всем привет, продолжаю переделывать систему блоков.

Так же, как и предметы, я переношу её на компонентный подход — получается очень гибкая система.
На данный момент реализовал уже много различных компонентов, вот несколько примеров:

Рендер-компоненты
✔️ Блок — обычный блок
✔️ Модель — рендерит блок как модельку (кровать, унитаз, холодильник и т.д.)
✔️ Ступенька — отображение ступенек по правилам стыковки
✔️ Жидкость — собирает меш с учётом уровня жидкости

Логические компоненты
✔️ Поворот — даёт возможность ставить блок в разных направлениях
✔️ Освещение — при добавлении блок начинает источать свет (лампа, факел, лава и т.д.)
✔️ Жидкость — просчитывает симуляцию разливания
✔️ Мультиблок — нужен для блоков, которым требуется резерв по размеру (например, двери, холодильник, шкаф — они не вмещаются в один блок)

👨‍💻 Также занимаюсь анимацией для блоков — это будет отдельный компонент, который будет работать с блоком как с сущностью.
📌 Прикрепил пару видосиков таких блоков: холодильник и шкаф.

👀 В комментариях приложу конфиги блоков в новой системе — кому интересно, можете глянуть.
  • 🔥 19
  • 👍 4
  • ❤ 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →