팀스파르타 코딩

📚 TIL - 2025년 4월 18일 (금) / Unity Text RPG 구현 리뷰

creator2041 2025. 4. 18. 18:15

 

🎮 주제: 텍스트 RPG 핵심 클래스 및 기능 분석

오늘은 텍스트 RPG 과제 구현 결과물을 문서로 정리하고, 전체 시스템 구조와 핵심 기능들을 분석했다. 주요 클래스인 Player, Inventory, Item, Shop, 그리고 Game 클래스를 중심으로 코드를 파악했고, 각 클래스의 역할과 메서드, 실제 플레이 시나리오까지 명확하게 정리되었다.


🔷 Player 클래스

  • 기능: 이름, 직업, 공격력, 방어력, 체력 관리. 직업 선택 시 초기 능력치 부여.
  • 직업 종류: 전사, 마법사, 궁수 + 히든 직업 "육군 아미타이거"
  • 특징: UpdateStats()로 장비에 따라 능력치 변화, DisplayStatus()로 상태 출력 가능.
  • 확장 가능성: 레벨, 스킬, 버프 시스템 등.

🔷 Inventory 클래스

  • 기능: 아이템 목록, 골드 보유량 관리. 장착/해제 기능 포함.
  • 장비 장착: ToggleEquip() 메서드 통해 능력치 반영.
  • 게임 전략: 자원관리 및 직업별 장비 조합 최적화.
  • 확장 가능성: 용량 제한, 정렬 기능, 아이템 조합 등.

🔷 Item 클래스

  • 기능: 무기/방어구/소비품 정의. 이름, 설명, 가격, 능력치 보너스, 장착 여부 포함.
  • 시스템: ToggleEquip()으로 장착 상태 토글. DisplayInfo()에서 [E] 표기 포함.
  • 확장 가능성: 희귀도, 세트 효과, 내구도 등.

🔷 Shop 클래스

  • 기능: 아이템 구매/판매 구현. 초기 상점 아이템 구성 포함.
  • 구매 처리: 복사본 생성 후 inventory.AddItem() 호출. 상점 목록에서는 제거됨.
  • 판매 처리: 가격 절반 반환. RemoveItem() 후 AddGold() 호출.
  • 확장 가능성: 할인, 명성, 재고 시스템 등.

🔷 Game 클래스

  • 기능: 전체 게임 진행 제어. 플레이어, 인벤토리, 상점 등 초기화 및 관리.
  • UI 흐름: 상태 보기 / 인벤토리 / 상점 / 던전(구현 중)
  • 입력 검증: GetUserInput() 메서드로 유효한 값만 허용.
  • 상태 패턴 기반: 각 GameScene 클래스별로 화면을 분리하여 관리.

🧠 느낀점 & 회고

  • 기본적으로 GPT와 구글링에 많이 의존하면서 코드를 작성했다. 내 힘만으로는 해결이 어려운 부분도 많았고, 중간중간 무력감을 느끼기도 했다.
  • 사실 구조만 클래스별로 나누고 그 안에 주석으로 어떤 기능이 들어가야 할지를 정리한 것 외엔, 실제 동작하는 로직을 내 손으로 짜낸 부분은 거의 없었다는 점이 마음에 걸린다.
  • 그래도 아무것도 모르던 시작점에서 최소한 구조라도 파악하고 따라갈 수 있게 된 건 분명한 변화라고 생각한다.
  • 단순히 기능을 구현하는 걸 넘어서, 객체지향 구조를 전체적으로 연결하는 개념을 이해했다.
  • Player → Inventory → Shop → Game → Scene 구조가 유기적으로 연결됨.
  • 나중에 UI가 붙더라도 이 구조가 그대로 활용될 수 있어, 텍스트 기반이라도 실제 게임 구조 설계의 기초를 잘 익힌 것 같아 뿌듯했다.
  • 특히 '육군 아미타이거' 같은 이스터에그 직업 구현이 너무 재밌었다 😆

✍️ 내일 목표

  • 던전 전투 기능 코드 마무리하기
  • DungeonScene을 실제로 연결하고, 난이도 별로 클리어 여부를 출력할 수 있도록 구현
  • 경험치 시스템을 간단하게라도 추가할 수 있을지 테스트해보기

💡 요약 이번 텍스트 RPG 프로젝트는 내 손으로 온전히 기능을 구현하지는 못했지만, 객체지향적 설계 방식과 게임 시스템의 큰 흐름을 눈으로 따라가며 익힐 수 있는 중요한 발판이었다. 직접 구현보다 구조 설계에 집중한 경험이었고, 이것이 차후 실전 코드 작성의 기반이 되어줄 것이라 믿는다.