TGViewer
Ingolf - путь в GameDev Ingolf - путь в GameDev @ingolfgames · 74 subscribers
Post #59 195
Этот пост будет про Архитектуру
⌛️
Время чтения 2 минуты

После завершения проекта решил применить полученные знания по архитектуре на практике. Взял видосик про 3 частых ошибки в архитектуре и не просто повторил, а доработал и зарефакторил с учётом полученных знаний.

Что было доработано:
1️⃣ Появился класс GameRunner, который позволяет запускать игру с любой сцены.
Это решает проблему, когда игра работала только со строго заданной сцены.

2️⃣ Добавлена специальная Initial сцена, которая запускается самой первой.
Она отвечает только за загрузку архитектуры (GameRunner, Bootstrap), а уже потом грузится основная сцена.

3️⃣ Создан класс SceneLoader - содержащий всю логику асинхронной загрузки.
Помимо загрузки сцены, он сообщает, когда операция была завершена, что удобно для последующих действий.

4️⃣ Логика инициализации геймплея переехала из Bootstrap в отдельный класс Game.
Теперь Bootstrap это загрузчик систем, а Game это уже сама игровая логика. Так архитектура становится чище и модульнее.

Список советов из видео:
1️⃣Контроль над игрой через Bootstrap 🎮
Раньше Awake у игрока и врагов вызывался в случайном порядке. Враги могли появиться раньше и не найдя игрока кинуть NullRef.
Теперь есть главный класс Bootstrap - единая точка входа. Он гарантирует порядок инициализации, сначала создается игрок, потом враги. Это даёт контроль над инициализацией.

2️⃣ Применение асинхронности с пользой⌛
Раньше корутины использовались в основном для создания задержки.
Теперь корутины используется для создания экрана загрузки. Показываем его, далее асинхронно грузим сцену/ресурсы, скрываем когда всё готово.

3️⃣Избавляемся от лишнего, выносим конфиги 🧹
Раньше спавнеры были MonoBehaviour, хотя им не нужны были его методы, а настройки были захардкожены в скриптах.
Теперь спавнеры это обычные C# классы. Логика была отделена от движка.
Настройки (префабы, координаты) были вынесены в конфиги в виде ScriptableObject.
  • ❤ 1
  • 🤔 1
  • 🤯 1
More from @ingolfgames
  1. Jul 6, 2026Мой путь в GameDev с ментором часть 8️⃣ - визуальные эффекты и звуки В этот раз мне нужно…
  2. Jun 17, 2026Мой путь в GameDev с ментором часть 7️⃣ - облачные Addressables Как и обещал, пост не чере…
  3. Jun 14, 2026Мой путь в GameDev с ментором часть 6️⃣ - облачные сохранения на Unity Cloud save Самое см…
  4. May 11, 2026Ingolf - путь в GameDev pinned «❗️Пора бы прояснить пару нюансов о моих целях и контенте в…
  5. May 11, 2026❗️Пора бы прояснить пару нюансов о моих целях и контенте в паблике❗️ 1️⃣Многие в комментах…
  6. May 10, 2026Мой путь в GameDev с ментором часть 5️⃣ - внутриигровые покупками на Unity IAP За последни…
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 →