-
Notifications
You must be signed in to change notification settings - Fork 2
MVC Architecture
김동욱 edited this page Dec 4, 2025
·
2 revisions
-
Overview
- Provides a clear separation of concerns between game logic(Model), rendering(View), and flow control(Controller)
-
Purpose
- Establish consistent development rules
- Prevent mixing rendering logic with game logic
- Improve maintainability, reduces merge conflicts
- Enable parallel team development
[Before]
- DrawManager: responsible for almost all rendering operations by itself
- GameScreen: was partially responsible for rendering
[After]
- GameView: Serve as Rendering Orchestrator for Game State (previously existed in GameScreen)
- DrawManager: serve as Rendering Infrastructure Manager
- SpriteAtlas: Manage all sprites of entities
-
DTO package: Transfer Model data to the View in a safe, structured form
- HUDInfoDTO
- ShopInfoDTO
-
Renderer package: Process actual rendering
- EntityRenderer
- UIRenderer
- HUDRenderer
- ItemRenderer
- ShopRenderer
- SpecialAnimationRenderer
- BackBuffer
- FontPack
[Before]
- GameScreen: responsible for almost all Game logic, mixed with rendering and model
[After]
- GameModel: responsible for central hub of all game play data and rules (previously existed in GameScreen, GameScreen serve as controller independently)
- base package: defines fundamental interfaces and abstracts contracts shared across the game's core system
- Boss package: defines all boss entity implementations
- Bullet package: defines all projectile-related entity implementations
- item package: defines all gameplay items and item-related components
- Level package: defines all components related to stage configuration and progression
- pattern package: defines all attack, movement, and behavior patterns used by bosses and enemies
- ship package: defines all ship-type entities used by the player and enemies
- skill package: defines all skills used by players