TGViewer
GameDev: разработка игр GameDev: разработка игр @make_game · 7.63K subscribers
Post #2075 674
Зачем игровому движку очередь событий

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

С очередью система оставляет запрос и продолжает работу. Аудиодвижок забирает его позже, сводит звуки, расставляет приоритеты и выполняет работу в своём потоке. Кадр не ждёт загрузки, а аудиосистема выбирает момент обработки.

Очередь нужна для разделения отправки и обработки во времени. Если требуется лишь скрыть получателя, Observer или Command проще. Центральная очередь остаётся глобальной, а отправитель не получает немедленного ответа. В главе Game Programming Patterns паттерн разбирают на аудиосистеме и показывают его архитектурную цену.
  • ❤ 1
More from @make_game
  1. Sep 20, 2026Как собрать редактируемую 2D-карту в Unity с Marching Squares Туториал начинает с сетки яч…
  2. Sep 20, 2026Как пространственное разбиение ускоряет поиск соседей в игровом мире В стратегии реального…
  3. Sep 20, 2026Как построить кубическую сферу в Unity без скопления вершин у полюсов У обычной UV-сферы в…
  4. Sep 19, 2026Как разделить код теней в собственном конвейере рендеринга Unity Custom SRP 7.1.0 для Unit…
  5. Sep 19, 2026Как численное интегрирование двигает объекты в игровой физике Физический цикл не вычисляет…
  6. Sep 18, 2026Как управлять асинхронной загрузкой ассетов в Unreal Engine Asset Manager позволяет назнач…
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 →