Заключение. Эффективность и риски
Данный проект является учебной работой студента Школы дизайна или исследовательской работой преподавателя Школы дизайна. Данный проект не является коммерческим и служит образовательным целям

обобщение

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

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

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

преимущества модульности

Применение модульного подхода меняет динамику разработки, смещая акцент с «написания кода» на «проектирование систем». Отсюда вытекают несколько основных преимуществ.

Первое заключается в сильном сокращении времени на прототипирование.

Благодаря наличию библиотеки модулей геймдизайнер получает возможность собирать механики и игровой процесс без участия программиста. При этом можно разрабатывать и настраивать параллельно несколько игровых частей или уровней, а изменения в модулях будут сразу применяться. Это особенно актуально в современной разработке, где важна скорость работы над проектом.

big
Исходный размер 1013x569

Сравнение затрат времени на отдельных этапах разработки при использовании различных подходов к разработке [11]

Модули, спроектированные как независимые, подключаемые объекты, могут быть легко перенесены из одного проекта в другой.

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

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

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

Наконец, модульность напрямую определяет жизнеспособность игры после релиза.

Развитие проекта через обновления и дополнения возможно только тогда, когда архитектура позволяет заменять или дополнять части системы, не разрушая её целиком. Это делает проект масштабируемым и готовым к превращению в «игру-сервис».

риски

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

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

Когда некоторое событие вызывает цепочку реакций в большом количестве независимых модулей, возникает так называемый «ад событий» или «Event Hell», где ошибка в одном из модулей проявляется как сбой в совершенно другом и так далее, а первопричину найти становится достаточно сложно.

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

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

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

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

подтверждение эффективности

Применение модульного подхода на практике при разработке проекта No Magic! подтвердило результаты исследования и доказало свою эффективность:

  • удалось добиться гибкой работы над проектом всеми участниками команды;
  • получилось снизить зависимость геймдизайнера от программиста;
  • появилась возможность выполнять быстрые итерации прототипирования уровней и баланса игры.

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

Библиография
Показать полностью
1.

Ellison G. Unlocking Infinite Replayability: The Power of Modular Game Design // Wayline. Дата публикации: 12.05.2025. [Электронный ресурс]. URL: https://www.wayline.io/blog/modular-game-design-replayability (дата обращения: 04.03.2026).

2.

Пажитнов А. Л. Логическая структура компьютерной игры // Микропроцессорные средства и системы. 1987. № 3. [Электронный ресурс]. URL: https://zxpress.ru/book_articles.php?id=2089 (дата обращения: 04.03.2026).

3.

Sanglard F. Quake Engine code review // Fabien Sanglard’s Website. Дата публикации: 09.03.2009. [Электронный ресурс]. URL: https://fabiensanglard.net/quakeSource/index.php (дата обращения: 04.03.2026).

4.

Modular Design // Lark. Дата публикации: 26.06.2024. [Электронный ресурс]. URL: https://www.larksuite.com/en_us/topics/gaming-glossary/modular-design (дата обращения: 04.03.2026).

5.

Breaking Conventions with The Legend of Zelda: Breath of the Wild / GDC Festival of Gaming. Дата публикации: 10.03.2017. [Электронный ресурс]. URL: https://youtu.be/QyMsF31NdNc?si=1gcGZOYXq8NEx5Lr (дата обращения: 04.03.2026).

6.

Koster R. An atomic theory of fun game design // Raph Koster’s Website. Дата публикации: 24.01.2012. [Электронный ресурс]. URL: https://www.raphkoster.com/2012/01/24/an-atomic-theory-of-fun-game-design/ (дата обращения: 04.03.2026).

7.

Smith H. Systemic Level Design // Harvey Smith’s Website. Дата публикации: 08.2009. [Электронный ресурс]. URL: https://www.witchboy.net/articles/systemic-level-design/ (дата обращения: 04.03.2026).

8.

Pettitt J., Altice N. Analyzing Emergence in Pac-Man’s Mazes with Systemic Reverberation // Conference Proceedings of DiGRA 2025: Games at the Crossroads. 2025. [Электронный ресурс]. URL: https://dl.digra.org/index.php/dl/article/view/2441 (дата обращения: 05.03.2026).

9.

Кадиков М. Модульность в дизайне уровней // Михаил Кадиков. Интересное о дизайне уровней. Дата публикации: 14.02.2016. [Электронный ресурс]. URL: https://level-design.ru/pro-ld-book-index/03-modular-level-design/ (дата обращения: 05.03.2026).

10.

Прокопов П. Не монолитом единым. Модульный подход в Unity // Хабр. Дата публикации: 15.07.2020.[Электронный ресурс]. URL: https://habr.com/ru/articles/511152/ (дата обращения: 05.03.2026).

11.

Elijah DevsDaddy. Organizing architecture for games on Unity: Laying out the important things that matter // Hashnode. Дата публикации: 24.02.2025. [Электронный ресурс]. URL: https://devsdaddy.hashnode.dev/organizing-architecture-for-games-on-unity-laying-out-the-important-things-that-matter (дата обращения: 05.03.2026).

12.

id Software. Doom 3 BFG Edition GPL Source Code // GitHub. [Электронный ресурс]. URL: https://github.com/id-Software/DOOM-3-BFG/tree/master (дата обращения: 05.03.2026).

13.

Savaş T. Unlocking Unity’s Potential: The 5 Ideal Architectures for Game Development // Medium. Дата публикации: 19.03.2024. [Электронный ресурс]. URL: https://medium.com/@taygun.svs/unlocking-unitys-potential-the-5-ideal-architectures-for-game-development-60f4e30aa21b (дата обращения: 05.03.2026).

14.

GDC 2002. Scott Bilas — A Data-Driven Game Object System / pixelmaschine. Дата публикации: 19.09.2022. [Электронный ресурс]. URL: https://youtu.be/Eb4-0M2a9xE?si=TbeWbLTHSyElr9ke (дата обращения: 05.03.2026).

15.

Idrissi W. Level Up Your Factory: Advanced Modding Tips for Factorio // Toxigon Infinite. Дата публикации: 13.04.2025. [Электронный ресурс]. URL: https://toxigon.com/advanced-factorio-modding-tips (дата обращения: 06.03.2026).

16.

Genfer P. Entity component system // UMLBoard. [Электронный ресурс]. URL: https://www.umlboard.com/design-patterns/entity-component-system.html (дата обращения: 06.03.2026).

17.

PRDeving. Deep-diving into Entity Component System (ECS) Architecture and Data Oriented Programming // PRDeving’s Website. Дата публикации: 14.12.2023. [Электронный ресурс]. URL: https://prdeving.wordpress.com/2023/12/14/deep-diving-into-entity-component-system-ecs-architecture-and-data-oriented-programming/ (дата обращения: 06.03.2026).

18.

Боронников А. Что такое ECS и с чем его компилят // DTF. Дата публикации: 23.11.2021. [Электронный ресурс]. URL: https://dtf.ru/gamedev/954579-chto-takoe-ecs-i-s-chem-ego-kompilyat (дата обращения: 06.03.2026).

19.

Ford T. Overwatch Gameplay Architecture and Netcode / GDCVault. Дата публикации: 2017. [Электронный ресурс]. URL: https://www.gdcvault.com/play/1024001/-Overwatch-Gameplay-Architecture-and (дата обращения: 06.03.2026).

Источники изображений
Показать полностью
1.

Анализ исходного кода Quake // Хабр. URL: https://habr.com/ru/articles/324804/ (дата обращения: 04.03.2026).

2.

100 часов в The Legend of Zelda: BotW // Пикабу. URL: https://pikabu.ru/story/100_chasov_v_the_legend_of_zelda_botw_7566194 (дата обращения: 04.03.2026).

3.

Pac-Man // Википедия. URL: https://ru.wikipedia.org/wiki/Pac-Man#/media/Файл: Pac-Man_gameplay_(1x_pixel-perfect_recreation).png (дата обращения: 04.03.2026).

4.

Level 2-1 Super Mario Bros 1985 NES Gameplay No Commentary // GamerSisYT. URL: https://youtu.be/ukQ6QeIp_h4?si=f4Q1CbdpicEg46dt (дата обращения: 04.03.2026).

5.

Assassin’s Creed Syndicate // Steam Community. URL: https://steamcommunity.com/sharedfiles/filedetails/?id=3370351815 (дата обращения: 04.03.2026).

6.

Представляем обновление Chase the Skies // Minecraft. URL: https://www.minecraft.net/ru-ru/updates/introducing-chase-the-skies-drop?tabs=%7B«tab-b-9c64b1c448"%3A3%7D (дата обращения: 05.03.2026).

7.

DOOM 3 // Steam Community. URL: https://steamcommunity.com/sharedfiles/filedetails/?id=3496486832 (дата обращения: 05.03.2026).

8.

Hollow Knight // Steam Community. URL: https://steamcommunity.com/sharedfiles/filedetails/?id=3675002269 (дата обращения: 05.03.2026).

9.

Factorio // Steam. URL: https://store.steampowered.com/app/427520/Factorio/ (дата обращения: 05.03.2026).

10.

Overwatch® // Steam. URL: https://store.steampowered.com/app/2357570/Overwatch/ (дата обращения: 05.03.2026).

11.

Модульная архитектура в Unity // Хабр. URL: https://habr.com/ru/articles/710912/ (дата обращения: 06.03.2026).

Глава:
1
2
3
4
5