Skip to content

tj1023/TB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚔️ 프로젝트명: TB

무기와 스킬을 활용해 몰려오는 적과 보스를 물리치는 2D 액션 게임입니다. 시스템 결합도를 낮추고 유지보수성을 높여주는 아키텍처 설계와 디자인 패턴 적용에 집중했습니다.


📖 프로젝트 개요

  • 플랫폼: Window (PC)
  • 개발 엔진: Unity 6 (60002.15f1)
  • 플레이 방식:
    • 다수의 적 웨이브를 물리치고 최종 보스를 처치하는 스테이지 클리어 방식
    • 무기, 스킬, 패링을 활용한 전략적인 전투 시스템

💡 핵심 개발 역량

1. 확장성을 고려한 디자인 패턴

  • 서비스 로케이터 & 이벤트 버스
    • BattleManager, GameManager, ObjectPool 등 전역적으로 사용되는 시스템을 싱글톤 대신 ServiceLocator로 관리하여 의존성을 역전시켰습니다.
    • 사운드 출력 등 시스템 간의 통신은 Event Bus를 통한 발행-구독(Publish-Subscribe) 모델을 채택하여 시스템 간의 결합도를 크게 낮췄습니다.
  • 보스 AI 구현 - 전략 패턴 & 팩토리 패턴
    • 보스의 다양한 스킬을 IBossSkillStrategy 인터페이스를 통해 모듈화했습니다.
    • BossSkillStrategyFactory를 통해 스킬 타입에 맞는 전략 객체를 반환받아 사용합니다.
    • 기대 효과: 새로운 보스 스킬이 추가되더라도 기존 BossController의 수정 없이 새로운 스킬 클래스만 추가하여 확장이 가능합니다.

2. 데이터 주도 설계

  • 모든 게임 데이터(적, 보스, 무기, 웨이브, 스테이지 등)를 ScriptableObject로 분리했습니다.
  • 기대 효과: 코드 수정 없이, 에디터 상에서 직접 수치를 조정하고 밸런싱 테스트를 진행할 수 있는 유연한 환경을 구축했습니다.

3. 메모리 및 GC 최적화

  • 오브젝트 풀링
    • 적 생성, 데미지 텍스트, 이펙트 등 빈번하게 생성/파괴되는 객체에 오브젝트 풀링을 적용하여 Instantiate/Destroy로 인한 오버헤드와 런타임 메모리 파편화를 방지했습니다.
  • 캐싱
    • 코루틴에서 자주 사용되는 WaitForSeconds를 Dictionary에 캐싱하여 불필요한 GC 할당을 방지했습니다.

4. 전투 시스템 및 액션 피드백 구현

  • 상태 기반 캐릭터 컨트롤
    • PlayerController를 허브로 하여 무기 시스템과 스킬 시스템을 컴포넌트 단위로 분리하여 유지보수를 용이하게 했습니다.
  • 전투 구현
    • 타격감을 극대화하기 위해 화면 흔들림, 역경직, 넉백, 피격 시 텍스트 팝업을 구현했습니다.
    • 군집 알고리즘을 활용해 적들이 플레이어를 추적할 때 서로 겹치지 않고 자연스럽게 이동하도록 구현했습니다.

📂 스크립트 구조

Scripts/
├── Core/      # ServiceLocator, EventBus, ObjectPool 등 공용/기반 시스템
├── Player/    # 플레이어 컨트롤 및 상태 (Weapon, Skill, Stats)
├── Enemy/     # 잡몹 및 보스 AI (BossController, Strategy 등)
├── GameData/  # 적, 스킬, 사운드, 스테이지 등 데이터를 ScriptableObject로 관리
└── UI/        # 메인메뉴, 인벤토리, 전투HUD 등 UI 관리

⌨️ 조작법

  • 이동: A / D
  • 기본 공격: 마우스 좌클릭
  • 방어 / 패링: 마우스 우클릭 (보스 공격을 적절한 타이밍에 방어 시 패링 발동)
  • 스킬 사용: 1, 2, 3
  • 설정 메뉴: ESC

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors