Skip to content

mrsions/AppleTreeDefense.Public

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Apple Tree Defense

Unity 6 기반 타워 디펜스 게임의 소스코드 공개 레포지토리입니다. 3일간 개발한 게임의 소스코드입니다. 이곳에 올린 소스코드는 순수하게 본인이 작성한 코드만을 업로드하였습니다.

2025 게임잼 소개

2025 게임잼 수상

프로젝트 개요

7일간의 낮/밤 루프를 기반으로 하는 타워 디펜스 게임으로, 플레이어의 선택과 성장 방향에 따라 9개 이상의 엔딩으로 분기됩니다. 사과나무를 지키며 방어 타워를 배치하고, 몰려오는 적들을 막아내는 것이 목표입니다.

기술 스택

  • Unity: 6000.0.57f1 (URP 17)
  • 언어: C# 8.0 (.NET Standard 2.1)
  • 주요 라이브러리:
    • DOTween (애니메이션 및 트윈)
    • TextMeshPro (UI 텍스트 렌더링)
    • NavMesh Components (AI 경로 탐색)

주요 기능

게임 시스템

  • 7일 간의 낮/밤 주기 시스템
  • 9개 이상의 멀티 엔딩 시스템
  • URP Volume 기반 낮/밤 분위기 전환
  • 실시간 체력/방어/위치 계산 및 AI 반응

기술적 특징

  • ScriptableObject 기반 데이터 관리 (타워, 적, 대화 시퀀스)
  • 이벤트 시스템을 통한 느슨한 결합 구조
  • 오브젝트 풀링으로 최적화된 데미지 텍스트 표시
  • 런타임/에디터 코드 분리
  • nullable 참조 타입 활성화로 안정성 향상

프로젝트 구조

Assets/
├── Game/
│   ├── Scripts/
│   │   ├── Runtime/          # 게임 실행 코드
│   │   │   ├── Game/         # 게임 로직 및 행동
│   │   │   ├── Data/         # ScriptableObject 데이터
│   │   │   ├── Map/          # 맵 관련 시스템
│   │   │   ├── Scene/        # 씬 관리
│   │   │   └── Utility/      # 유틸리티 클래스
│   │   └── Editor/           # 커스텀 인스펙터 및 빌드 도구
│   ├── Prefabs/              # 게임 오브젝트 프리팹
│   ├── Scenes/               # 게임 씬
│   ├── Sprites/              # 2D 스프라이트
│   ├── Sounds/               # 오디오 자산
│   ├── Materials/            # 머티리얼
│   ├── Textures/             # 텍스처
│   └── Animations/           # 애니메이션
ProjectSettings/              # Unity 프로젝트 설정
Packages/                     # 패키지 의존성

핵심 시스템 설명

전투 시스템

ObjectBehaviour 클래스를 중심으로 체력, 방어, 데미지 계산을 처리합니다. 피격 시 실제 데미지를 계산하고, 오브젝트 풀에서 데미지 텍스트를 가져와 표시합니다.

오브젝트 관리

ObjectManager가 플레이어와 몬스터 오브젝트를 등록하고, 사망 이벤트를 통해 자동으로 등록 해제합니다. 이를 통해 주변 탐색과 타겟팅 로직을 일원화했습니다.

엔딩 분기

EndingCalculator가 플레이어의 방어/체력/공격 성장치를 분석하여 적절한 엔딩을 계산합니다. 성장 방향에 따라 다양한 결말이 제공됩니다.

이벤트 시스템

체력 변화, 사망 등의 이벤트를 통해 UI, 텍스트 표시, AI 행동이 동시에 반응합니다. 이를 통해 결합도를 낮추고 유지보수성을 높였습니다.

설치 및 실행

필수 요구사항

  • Unity 6000.0.57f1 이상
  • Universal Render Pipeline (URP) 17

실행 방법

  1. Unity Hub에서 프로젝트 열기
  2. URP 설정 확인
  3. 필요한 패키지 자동 설치 확인 (DOTween, TextMeshPro 등)
  4. Assets/Game/Scenes에서 시작 씬 실행

개발 과정에서 중점을 둔 부분

  • 이벤트 기반 설계로 UI, AI, 전투 시스템 간 의존성 최소화
  • ScriptableObject를 활용한 데이터 주도 개발로 밸런스 조정 용이성 확보
  • 오브젝트 풀링과 최적화를 통한 성능 향상
  • DOTween과 URP Volume을 활용한 비주얼 연출 시스템
  • 코드 재사용성을 높이기 위한 구조적 설계

라이선스

이 프로젝트는 포트폴리오 목적으로 공개되었습니다. 코드 참고 및 학습 목적으로 자유롭게 사용 가능합니다.

참고사항

이 프로젝트는 이전에 출시된 콘솔 게임의 시스템을 Unity 최신 버전으로 재구현한 것입니다. 기존 게임 디자인을 유지하면서도 현대적인 Unity 기능들을 적극 활용했습니다.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages