Game Flow
Framework를 사용하는 게임의 전체 실행 흐름이다.
Application 시작
v
RootBootstrap.Initialize() (자동, BeforeSceneLoad)
v
RootScope 인스턴스화 (Resources 로드 + DontDestroyOnLoad)
v
VContainer ContainerBuilder.Build() - 전체 System DI 등록
v
RegisterBuildCallback - TickSystem/AudioSystem/TimeSystem/Diagnostics/Stat 연결
v
(Editor/Development Build) RuntimeStartupValidator.Validate()
v
Title Scene (SceneSystem)
v
Localization 초기화 (SelectSystemLocaleAsync)
v
Main Menu (UISystem Navigation)
v
Loading (AssetSystem Preload + SceneSystem)
v
Game Scene
v
Player 스폰 (AssetSystem + DI Instantiate)
v
Gameplay Loop (TickSystem, StatSystem, EffectSystem, AudioSystem, CameraSystem)
v
Save (체크포인트/수동저장)
v
Scene 전환 (다음 스테이지 또는 메인메뉴 복귀)
v
게임 종료
단계별 설명
- RootBootstrap ~ RuntimeStartupValidator: 04_Dependency_Injection, 02_Project_Setup 참고. 게임 코드가 개입할 필요 없이 자동 실행된다.
- Title ~ Main Menu: 09_SceneSystem, 12_UISystem, 11_Localization 참고.
- Loading: AssetSystem으로 다음 씬에 필요한 에셋을 미리 로드(
PreloadAsync)한 뒤 SceneSystem으로 전환한다. - Gameplay Loop: 여러 System이 동시에 관여한다 - TickSystem(주기 로직), StatSystem(수치), EffectSystem(연출/상태), AudioSystem(사운드), CameraSystem(카메라). System 간 조합은 Game Layer Adapter가 담당한다 (23_Project_Architecture 참고).
- Save: 10_SaveSystem 참고. Result를 반드시 확인한다.
- 게임 종료: 저장 후 종료, 열려있는 Asset 핸들은
ReleaseAll로 정리한다.