같은 게임을 두 번 만들며, '구현'과 '설계'의 차이를 배우다
◆ 문제
◆ 개선
◆ 향후 보완
◆ 튜토리얼 제거
◆ 지역/학교 점수 시스템 제거
◆ 기존 방식
◆ 문제점
◆ 개선 방식
◆ 개선된 점
◆ 문제점
◆ 개선 방식
◆ 개선된 점
◆ 한계 및 보완 방향
◆ 기존 구조
◆ 개선
◆ 기존 구조
◆ 개선
◆ 결과
◆ 기존 구조
◆ 개선
◆ 결과
◆ 방향키 중복 코드 제거
◆ 공통 로직 함수화
◆ Action 활용으로 가독성 향상
◆ screenScale 도입
◆ Time.deltaTime 기반 이동 처리
◆ 프레임 의존 로직 제거
| 항목 | Project APF | New APF | 개선점 |
|---|---|---|---|
| 게임 구조 | Ingame Manager 중심 | Manager 구조 분리 | 책임 분리 및 가독성 향상 |
| 시간 시스템 | 로컬 시간 | 서버 Offset | 시간 조작 방지 및 재화 충전 정확도 향상 |
| 오브젝트 생성 | Instantiate/Destroy 구조 | Object Pool 구조 | GC 감소 및 성능 안정화 |
| 로직 구조 | Update/bool 중심 | Callback 구조 | GC 및 Update 의존성 감소 |
| 해상도 대응 | 없음 | Screen Scale 대응 | 기기별 일관성 유지 |
◆ TimeManager 객체화
◆ isGameOver/isGameStart 대신 gameState enum 기반 상태 관리 구조로 변경
◆ Canvas 분리 또는 SpriteRenderer 전환을 통한 성능 개선
◆ AudioMixer 기반 사운드 개선
◆ 튜토리얼 UX 재설계
◆ 데이터베이스 기반 캐릭터 / 펫 시스템 확장