Table of Contents

26. First Game Tutorial

이 문서의 목표

지금까지 배운 System을 실제 개발 순서대로 엮어 작은 게임 하나를 완성한다.

왜 필요한가

개별 System을 아는 것과 실제 프로젝트에서 순서대로 조립하는 것은 다르다. 이 문서는 그 격차를 메운다.

진행 순서

1. 프로젝트 생성 + Package 설치        -> getting-started.md
2. RootScope 확인 (이미 준비됨)        -> 02_Project_Setup
3. Addressables 구성 (Player, Enemy)   -> 08_AssetSystem
4. Loading Scene 구현                  -> 09_SceneSystem
5. Main Menu 구현                      -> 12_UISystem
6. Game Scene 진입 + Player 스폰       -> 08_AssetSystem, 04_DI
7. Player 이동/애니메이션 (Game Layer) -> 03_Project_Structure
8. 체력/공격력 Stat 연동               -> 16_StatSystem
9. 피격 이펙트 + 사운드                -> 15_EffectSystem, 14_AudioSystem
10. Save (진행도 저장)                 -> 10_SaveSystem
11. Localization (텍스트 다국어화)     -> 11_Localization
12. Popup (일시정지/게임오버)          -> 12_UISystem
13. Diagnostics로 점검                 -> 18_Diagnostics
14. Build                              -> getting-started.md, ReleaseChecklist.md

단계별 설명

1~2. 프로젝트 생성 & RootScope

getting-started.md의 1~4단계를 따른다. RootScope는 새로 만들 필요 없이 Configure() 끝에 게임 System만 추가한다.

3. Addressables 구성

Player/Enemy 프리팹을 Addressable Group에 등록하고 AddressableKeys 상수로 키를 관리한다.

4~5. Loading -> Main Menu

ISceneSystem.LoadAsync로 Loading Scene 진입, 로드 완료 후 INavigationService.PushAsync("MainMenu").

6~7. Game Scene & Player

Game Scene 진입 시 IAssetSystem.LoadAsync<GameObject>로 Player 프리팹을 로드하고 _resolver.Instantiate로 생성해 DI 주입을 받는다. 이동/애니메이션 로직은 Game/Controllers에 작성하고 매 프레임 로직은 TickSystem을 경유한다.

8. Stat 연동

Player 체력/공격력을 IStatSystem에 등록하고 장비/버프는 AddModifier로 반영한다.

9. 이펙트/사운드

피격 시 IVfxSystem.PlayIAudioSystem.PlaySFXAsync를 Game Layer Adapter에서 함께 호출한다 (Runtime이 자동 연동하지 않으므로 직접 연결).

10~11. Save & Localization

진행도는 MemoryPack 직렬화 데이터로 ISaveSystem.SaveAsync, UI 텍스트는 전부 ILocalizationSystem.GetString 경유.

12. Popup

일시정지/게임오버 화면은 Popup.ShowAsync, 중첩 방지를 위해 UI.PopupCount Diagnostics를 확인한다.

13. Diagnostics 점검

Tools > Framework > Diagnostics에서 Asset 핸들 누수, Save 실패율, Stat Dirty Count를 확인한다.

14. Build

ReleaseChecklist.md를 확인 후 Release 빌드를 생성한다.

실습 과제

위 14단계를 따라 상태 3개(체력바, 공격, 저장/불러오기)만 있는 최소 게임 하나를 실제로 완성해본다.

이전 문서

이전: 25_Troubleshooting.md

관련 문서

SampleGuide.md, GameFlow.md