본문 바로가기
전체보기

3월 17-21일 WIL

by 오늘도잡학다식 2025. 3. 21.

 

Weekly I Learned (WIL)

RPG 게임 프로젝트 TIL의 주간 요약

이번 RPG 게임 프로젝트를 진행하면서 배운 내용들의 주간 요약입니다. TIL에서 다룬 핵심 내용들을 축약하여 정리했습니다.

RPG 게임 프로젝트를 통해 배운 점

이번 RPG 게임 프로젝트를 통해 다양한 프로그래밍 개념과 기술을 배울 수 있었습니다. 아래는 이 프로젝트를 통해 배운 주요 내용입니다.

1. 객체 지향 프로그래밍의 실제 적용

객체 지향 프로그래밍(OOP)의 개념을 실제 프로젝트에 적용하는 방법을 배웠습니다. 특히 다음과 같은 OOP 원칙을 적용했습니다:

  • 클래스와 객체: 게임의 주요 요소(캐릭터, 몬스터, 게임 로직)를 각각의 클래스로 모델링했습니다.
  • 캡슐화: 각 클래스는 자신의 데이터와 기능을 캡슐화하여 외부에서 직접 접근하지 못하도록 했습니다.
  • 책임 분리: 각 클래스는 자신의 책임에 맞는 기능만 구현하도록 했습니다.

2. 파일 입출력과 데이터 관리

파일을 통해 데이터를 읽고 쓰는 방법을 배웠습니다:

  • 데이터 파일 구조화: CSV 형식을 사용하여 데이터를 구조화했습니다.
  • 파일 경로 관리: 모든 데이터 파일을 data 디렉토리에 모아 관리했습니다.
  • 예외 처리: 파일이 없거나 형식이 잘못된 경우에 대한 예외 처리를 구현했습니다.

3. 사용자 입력 처리와 검증

사용자로부터 입력을 받고 검증하는 방법을 배웠습니다:

  • 입력 검증: 정규 표현식을 사용하여 사용자 입력이 유효한지 검증했습니다.
  • 오류 메시지: 잘못된 입력에 대해 명확한 오류 메시지를 제공했습니다.
  • 반복 입력: 올바른 입력을 받을 때까지 반복해서 입력을 요청했습니다.

4. 게임 밸런싱

게임 개발에서 밸런싱의 중요성을 배웠습니다:

  • 난이도 조절: 몬스터의 방어력에 최대값을 설정하여 게임이 너무 어렵지 않도록 했습니다.
  • 전략적 요소: 방어 시 체력 회복, 아이템 사용 등의 전략적 요소를 추가했습니다.
  • 랜덤 요소: 랜덤 요소를 적절히 활용하여 게임의 재미를 높였습니다.

5. 테스트 주도 개발

테스트 코드를 작성하고 활용하는 방법을 배웠습니다:

  • 단위 테스트: 각 클래스의 주요 기능에 대한 단위 테스트를 작성했습니다.
  • 테스트 환경 설정: 테스트를 위한 환경을 설정하고 정리하는 방법을 배웠습니다.
  • 테스트 검증: 기대하는 결과와 실제 결과를 비교하여 검증하는 방법을 배웠습니다.

6. 프로젝트 구조화와 문서화

프로젝트를 체계적으로 구조화하고 문서화하는 방법을 배웠습니다:

  • 디렉토리 구조: 코드, 데이터, 테스트 등을 별도의 디렉토리로 구분했습니다.
  • README 작성: 프로젝트의 목적, 기능, 사용 방법 등을 명확하게 문서화했습니다.
  • 코드 주석: 코드의 주요 부분에 주석을 추가하여 이해하기 쉽게 했습니다.

7. 경험치 및 레벨 시스템 구현

게임에 진행감과 성장 요소를 추가하는 방법을 배웠습니다:

  • 경험치 획득: 몬스터 처치 시 경험치를 획득하는 시스템을 구현했습니다.
  • 레벨업 메커니즘: 일정 경험치 달성 시 레벨업하고 스탯 포인트를 획득하는 시스템을 구현했습니다.
  • 스탯 포인트 분배: 플레이어가 획득한 스탯 포인트를 체력, 공격력, 방어력에 분배할 수 있는 기능을 구현했습니다.
  • 데이터 지속성: 캐릭터의 레벨, 경험치, 스탯 등을 저장하고 불러오는 기능을 구현했습니다.

앞으로의 개선 방향

이번 프로젝트를 통해 배운 내용을 바탕으로 앞으로 다음과 같은 개선을 할 수 있을 것 같습니다:

  1. 코드 리팩토링: 중복 코드를 줄이고 더 효율적인 구조로 개선할 수 있습니다.
  2. 기능 확장: 레벨 시스템 외에도 스킬 시스템, 클래스 시스템, 퀘스트 시스템 등 더 다양한 기능을 추가할 수 있습니다.
  3. UI 개선: 텍스트 기반에서 그래픽 기반으로 발전시킬 수 있습니다.
  4. 네트워크 기능: 멀티플레이어 기능을 추가하여 더 재미있는 게임으로 발전시킬 수 있습니다.
  5. 게임 밸런스 조정: 경험치 획득량, 레벨업에 필요한 경험치, 스탯 포인트 분배 비율 등을 더 세밀하게 조정할 수 있습니다.

이번 프로젝트는 프로그래밍의 기본 개념부터 게임 개발의 핵심 요소까지 다양한 지식을 배울 수 있는 좋은 기회였습니다. 특히 경험치 및 레벨 시스템을 추가함으로써 게임에 더 큰 재미와 진행감을 부여할 수 있었습니다. 앞으로도 이러한 경험을 바탕으로 더 복잡하고 재미있는 프로젝트에 도전해 보고 싶습니다.