marmunc | Разработка игр
238 subscribers
23 photos
34 videos
21 links
Unity Developer. Рассказываю о разработке игр, а также рабочих моментах.

Автор: @mar_munc

Spirit Fusion:
https://store.steampowered.com/app/3988470/Spirit_Fusion/
Download Telegram
Дизайн-документ (GDD) 📝

Когда игра планируется как более или менее крупный проект, без диздока не обойтись.
В основном, конечно, диздок — это "инструкция", которая помогает команде разработчиков быть на одной волне и не терять фокус в процессе работы. Однако для одинокого разработчика этот документ также очень полезен.

Вот полезное видео по этой теме, в котором автор подробно все рассказывает. По нему я и писал гдд для Spirit Fusion.

💬 Дизайн-документ — это ваш путеводитель в мире разработки игр. Он помогает сделать идею игры более конкретной, объединить команду и успешно довести проект до конца. Если вы хотите, чтобы ваша игра была не только задумкой, но и реальным проектом, без него не обойтись! (шутка, обойтись можно, но будет сложновато😁)

#полезное
🤔2
В дополнение к прошлому посту про диздок.🪬

При повторяющейся информации очень удобно использовать теги для наглядности (См. скрин), кроме того если, например, поведение врага изменилось, достаточно будет поменять лишь тег.

Также такого рода запись побуждает создавать независимые состояния. Ну и это невероятно полезно при создании новых типов врагов или изменении старых. В этом вам поможет паттерн FSM (Машина состояний) - вот видос.

#полезное
4
Доделал менеджмент сцен и сохранение.🥳

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

Сейчас в основном продолжаю строить нормальную архитектуру. Я заметил, что параллельно с этим решаю будущие проблемы, над которыми раньше сидел и ломал голову. Почему я раньше не думал об архитектуре?😁

В общем на данный момент мне нужно связать визуал и мои модели, для этого я выбрал паттерн MVVM. Не обладаю знаниями в этом паттерне от слова совсем, а в интернете мне показалось доступной информации по этой теме мало.
Кто-нибудь может порекомендовать годный материал по MVVM? Буду признателен❤️
🔥1
В перерыве рисую и наполняю игру визуалом.

Сейчас создаю новую локацию, пока нарисован один экран (чек скрин)
Также работаю над добавлением разбойника в Unity.
Скоро думаю увидите его в игре, а пока можете посмотреть на его анимации в спайне)🔥
🔥6
Media is too big
VIEW IN TELEGRAM
Добавил разбойника ⚔️

Реализовал состояние атаки и саму атаку с эффектами.
На данный момент есть 5 независимых состояний, из которых можно собирать новые типы врагов, как конструктор. Единственное, нужно писать логику взаимодействия этих состояний.

Что скажете, как вам враг?🔥
Будет интересно узнать ваше мнение!
🔥2👍1
Media is too big
VIEW IN TELEGRAM
Диалоги 💬

Всем привет! 🙌
Появился новый функционал в игре — теперь у нас есть диалоговая система, и реализована она с помощью Yarn Spinner.

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

Также игра обрастает архитектурой, соединяя логику и визуал, но об этом как-нибудь в следующих сериях.

#полезное
👏5🍓1
Приветствую всех! Хочу рассказать вам о нововведениях в архитектуре проекта.
В общем идея была в том, чтобы для активации действий в игре использовать паттерн Mediator, а непосредственно сам UI связать с логикой через MVP. Ну и по классике несколько полезных ссылок

1. Мне посоветовали присмотреться к Медиатору, и он как раз идеально ложиться на активацию всех механизмов. Таким образом получилось связать саму логику какого-либо действия, сохранение, диалоги и кнопку активации, где медиатор выступал обработчиком событий.
Отдельное спасибо @oldroots
Статья про Mediator

2. Изначально я думал над MVVM, но это слишком избыточное и сложное решение. Поэтому выбрал MVP, который в принципе в игровой разработке больше используется и, как мне кажется, покрывает 90% задач. Однако у этого паттерна есть разные реализации, ниже ссылки на лекции по каждой из них, автор все прекрасно объясняет, а также из плюсов - там в связке Zenject:
MVP-Observer
MVP-Presentation Model
MVP-Passive View

В итоге архитектура наконец продумана, код стал более гибким, модульным и легко расширяемым, что не может не радовать) Ну а в данный момент работаю над инвентарем и магазином🪬

#полезное
👍62🔥1👏1
Давно вынашивал идею о сборке ПК, но как-то все не доходило до дела. Но вот в очередной раз заебавшись ждать компиляцию кода в пару минуту, решил нужно менять машинку. В итоге с другом собрали новенький ПК.

Всю неделю занимались подборкой, сборкой, установкой. Сейчас скачиваю все необходимое для проекта. Очень интересно посмотреть разницу))
👍10❤‍🔥1
Всех приветствую, друзья😁
Итак, мне есть чем поделиться с вами:

Доделал инвентарь, можете посмотреть на этот шедевр на скрине выше.
Инвентарь разделен на две группы. В первой группе хранятся крестражи - души найденных духов, которые добавляют вторую способность другой стихии, когда крестраж надет. Во второй группе хранятся обычные предметы, которые либо также добавляют новые способности (например, двойной прыжок) или улучшают характеристики персонажа. Также все предметы открывают новые возможности в мире.
Для реализации инвентаря использовал MVP-presentation model (ссылка на прошлый пост по этой теме)

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

Враги после смерти могут дропать монеты и предметы.
Для счетчика монет использовал MVP-observer. Также впервые использовал DOTween для анимации текста, классная штука.

Если есть вопросы, задавайте👇🔥
🔥41
Делюсь одним из экранов на локации Лес Духов 🖼

Это обучающая локация, где игрок впервые столкнется с первыми трудностями. Осталось несколько экранов и она будет готова.
А для демо я думаю добавлю еще одну локу(неполноценную), в которой будет битва с боссом.

В технической части работаю над менюшкой с крестражами, в которой можно будет их менять и улучшать.
👍3🔥21👀1
🕹Время подвести итоги недели:

• Сделал меню с крестражами, теперь можно менять их (но пока он всего один, в ближайшее время добавлю новый крестраж, и эффект к нему уже готов)

• Добавил окно с описанием предметов для инвентаря и меню крестражей

• Добавил новую механику - теперь каждый крестраж помимо добавления способности дает пассивный бафф (об этом расскажу в отдельном посте)

• Переделал сохранение на формат json, стало гораздо проще тестировать и работать с данными. Также недавно узнал, что BinaryFormatter, с которым я работал до json'a, устарел из-за возможных рисков безопасности.

А еще я понял, что копаться в UI мне не особо нравится😅
👍2🔥1
⚡️Баффы и дебаффы⚡️

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

Также те, кто будет делать по этому видео, нужно исправить ошибку во временном баффе. В моем случае из-за этого в игре fps падал до 0 и приходилось перезапускать движок, а допер я не сразу(думал дело в таймере)😅
// Нужно изменить
owner.RemoveBuff(coreBuff)

// На строку
owner.RemoveBuff(this)


Таким образом, я реализовал систему баффов для персонажа и добавил пассивные баффы к крестражам:
• Крестраж Жизни - дает +1 сердце
• Крестраж Воздуха - уменьшает перезарядку рывка
• Крестраж Электро - увеличивает урон (+1)

Это начальные баффы, в будущем система будет расширяться.
Если есть какие-то мысли или идеи, пишите, с удовольствием послушаю👍🏾

#полезное
🔥42
Media is too big
VIEW IN TELEGRAM
Всем привет, добавил новую способность стихии воздуха 💨
Как вам? 👀

з.ы. взаимодействие огня и воздуха пока не сделал, честно говоря не уверен какое оно вообще будет
11🔥4👍1
Media is too big
VIEW IN TELEGRAM
Магазин 💎

Визуально, конечно, выглядит хуево, но все идет по плану😁

Архитектурно магазин удобно делать с помощью паттерна MVP - Presentation Model, точно так же, как и любую другую систему, которая может быть отключена и включена. Здесь сама вьюха берет данные из презентера.

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

Теперь можно создать сто таких магазинов, единственное нужно для каждого создавать конфиги продуктов)

З.Ы. На видео можно увидеть полосы от тумана и виньетки (полосы от самого градиента на изображении). Может кто-нибудь знает как их убрать?
👍3🔥2🍓1
Решил отдохнуть от работы над улучшениями и продумыванием босса и нарисовать первый экран новой локации

Как вам фон и экран в целом?🔥

Основные действия в этой локации будут на деревьях, в ней же и первый босс игры и демки
🔥8👨‍💻2🎄21👏1
🎄Друзья, всех с наступающим новым годом! 🎄
Желаю всем крепкого здоровья и счастья, а также хорошо отдохнуть и приятно провести новогоднее время❤️

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

Никогда не думал, что вести канал будет так интересно, всем большое спасибо, что следите за развитием)🔥
👍5🍓322🍾2🎄2
С новым годом)
2🍓9🥰42🔥21🎉1