TGViewer
Kozlov Dev - Разработка игр Kozlov Dev - Разработка игр @kozlovdev · 4.1K subscribers
Post #792 1.42K
🔥 Новая система предметов!

😭 Наконец-то подходит к концу огромный рефакторинг, на который я потратил немало сил.

Суть проблемы
В прошлой версии система предметов строилась на ООП-подходе. То есть у нас был базовый класс и его наследники (FoodItem, ToolItem, BlockItem и т.д.). Делал я так, потому что опирался больше на Java версию майна — там была похожая реализация.
Но при длительной работе и расширении контента, конечно, начали вылезать проблемы, связанные с дублированием кода. Например, у нас есть 2 вида предмета (еда и семена), и вот нам нужен третий тип предмета (арбуз, картошка и т.д.), который мы могли бы и съесть, и посадить как семя. В таком случае подход с ООП даёт трещину и не позволяет гибко конфигурировать предмет.

Решение
Переделать систему предметов на КОП — компонентный подход, по аналогии с bedrock версией майна. Теперь у нас есть всего один класс InventoryItem, на который мы уже можем вешать различные компоненты (FoodItemComponent, DamageItemComponent, ToolItemComponent и т.д.).
При такой системе мы уже легко можем добавить комбинированное поведение для предмета, не дублируя логику. Например, для предмета, который можно есть и сажать в землю, просто добавляем 2 компонента (FoodItemComponent и SeedItemComponent) — и всё! Максимально гибкая конфигурация предмета: если нужно что-то ещё, просто создаёшь новый компонент и добавляешь его в конфиг предмета.

Статы предмета
Так же была доработана система статов предмета, раньше у предмета был только 1 параметр это прочность. Теперь же мы можем лгко добавлять новые параметры, например статы магии, урон и т.д, эти параметры уже могут меняться у предмета и легко сохран

Конфигурация
И вишенкой на торте стала новая JSON-конфигурация: все предметы теперь описываются в своих JSON-файлах. Там мы задаём им id, ключи перевода и навешиваем нужные компоненты.

P.S Про сам подход с конфигурацией и почему я использую JSON, а не ScriptableObject, расскажу в следующих постах. 😎
  • 🔥 25
  • ❤ 3
  • 👍 3
More from @kozlovdev
  1. Sep 26, 2026😎 Стартуем эвент SCREENSHOT SATURDAY! ❗️ Переходите в наш Game Dev чатик 🔜 ссылка, делит…
  2. Sep 23, 2026Новости по Сloud. 👨‍💻 Так как мы работаем с тестировщиками, у них появляются потребности…
  3. Sep 19, 2026😎 Стартуем эвент SCREENSHOT SATURDAY! ❗️ Переходите в наш Game Dev чатик 🔜 ссылка, делит…
  4. Sep 16, 2026На прошлой недели созванивались с тестерами по поводу аналитики в Cloud. 👀 Кто не в курсе…
  5. Sep 12, 2026😎 Стартуем эвент SCREENSHOT SATURDAY! ❗️ Переходите в наш Game Dev чатик 🔜 ссылка, делит…
  6. Sep 9, 2026Post #1052
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 →