The article outlines a methodology for designing multimedia applications for game engines using a component-oriented architectural style. It highlights the importance of selecting the appropriate architectural pattern, considering the features of modern game engines such as Unity, Unreal Engine, and Godot Engine. Key challenges and issues in designing flexible and scalable architectures are addressed. The life cycle model of the user interaction session with the application is described, comprising three main stages: Bootstrap, GameLoop, and Dispose. The article emphasizes the significance of managing transient processes between life cycle states to ensure the application's proper functioning. To better organize service interactions, the mathematical framework of category theory and set theory is applied, allowing for clear definition and management of dependencies and relationships between components. The benefits of using category theory for modeling and managing data flows and dependencies in the system, particularly through functors and monads, are discussed. These methods facilitate the creation of adaptive and scalable systems that are easy to maintain and extend. The article provides practical recommendations for designing the architecture of game applications, considering the specifics of component-oriented and service-oriented architectural styles. It underscores the need for regular review and updates of the project architecture in response to changing requirements and operating conditions. A proposed methodology serves as a theoretical foundation for developing flexible architectures of multimedia applications, accounting for the specifics of component-oriented and service-oriented architectural styles and the functioning of game engines. The work includes examples of practical applications of the proposed theoretical approaches in real projects, demonstrating their effectiveness and applicability in various game development contexts. These examples feature concrete implementations of patterns, state management using the State Machine, and optimization of component interactions through Service Locator and Dependency Injection.
Paper
The full text of this publication is not hosted on 44B due to licensing.
Read it at OpenAlex