오늘한 것
C++ Text RPG
- 도전 STEP 2 완료
- 오류 수정
- 세부 기능 보완 및 밸런스 조정 사항 작성
- 최종본 제출 완료
AI 튜터 에이타니 AI 진단 퀴즈 풀기
Blueprint 학습주차
- 블루프린트 노드 연결과 동작 구현
- 콜리전 채널과 오버랩·블록 이해
C++ 문법 학습주차
- 객체지향 프로그래밍의 4대 특성 이해
- 클래스와 객체의 이해
- 생성자·소멸자와 접근 제어자의 이해
- 포인터와 동적 메모리 관리
- 함수와 연산자 오버로딩 이해
- 템플릿과 제네릭 프로그래밍의 이해
배운 점
소멸자의 대한 설명을 다시 공부하였다.
- 클래스 이름 앞에 ~(틸드) 기호를 붙여 선언
- 오버로딩이 불가능 (한 클래스에 하나만 존재)
- 매개변수를 가질 수 없음
- 명시적으로 정의하지 않아도 컴파일러가 기본 소멸자를 자동으로 생성하여 객체 소멸 시 호출
AI 튜터
Blueprint 학습주차 - 언리얼 에디터의 주요 구성 요소와 기능 이해 복습을 하였다.
뷰포트, 아웃라이너, 디테일 패널, 콘텐츠 브라우저처럼 자주 사용하는 영역이 각각 어떤 역할을 하는지 다시 정리하면서,
에디터 화면 구조를 더 익혔다.
내일할 것
- AI 진단 퀴즈 풀기 Blueprint 학습주차, C++ 문법 학습주차 복습
- AI 튜터를 활용하여 개념 점검
- 21일부터 시작되는 팀프로젝트 참여
느낀점
C++ Text RPG (과제 2번)이 드디어 끝났다. 처음엔 내가 할 수 있을지 막막하고, 스트레스도 좀 받았지만 강의를 듣고
천천히 진행하다보니 어떻게든 다 끝낼 수 있었다. 마무리까지 잘 한 것 같지만, 도전과제를 1번과 2번만 해서 조금은 아쉽다.
팀프로젝트로 발제 되는 과제를 더 열심히 참여해야겠다.
C++ 문법 학습주차에서 AI튜터를 활용하여 문제를 더 풀어야겠다. 아직 이해가 덜 된 것들이 많다.
객체지향 프로그래밍의 4대 특성 / 함수와 연산자 오버로딩 이해 / 생성자·소멸자와 접근 제어자의 이해
/ 제네릭 프로그래밍은 더 공부가 필요하다.
도전 STEP 2 - 레벨 & 경험치 시스템 (변수 활용)

Player.h
- exp, maxExp, level 을 상속받는 자식 클래스들이 접근할 수 있도록 protected 영역에 추가
- getter 메서드를 const로 선언

Player.cpp
생성자 초기화
플레이어 생성 시 기본적으로 Level = 1, Exp = 0, MaxExp = 100으로 기본값이 세팅되도록 설정

한 번에 많은 경험치를 얻어 2번 이상 연속으로 레벨업하는 상황을 대비
if문 대신 while문(exp >= maxexp)을 사용
전투 승리 후 경험치를 얻음
→ maxexp가 100이 됨
→ 레벨업 조건이 발동하고 스탯이 상승

main.cpp
슬라임과 고블린의 경험치를 각각 30, 40으로 설정

경험치 획득과 레벨 업


C++ Text RPG main.cpp 수정
1. 이름 충돌 방지와 내부 전용 기능임을 명확히 하기 위해서 static 을 추가로 붙여주었음

2. main.cpp의 가독성을 높이기 위해 Monster.h 와 Monster.cpp 에 따로 공격 함수를 추가하였음




C++ Text RPG 세부 기능 보완 및 밸런스 조정 사항 (5/15 ~ 5/20)
STEP 1 - 캐릭터 생성 화면
캐릭터 생성 화면 UI 및 편의성 개선
[기존]
스탯 2개씩 입력
[변경]
스탯 4개 한꺼번에 입력
STEP 2 - 입력 유효성 검사
- 스탯 입력 최대치 제한을 통한 난이도 조절 기능 보완
[기존]
하한선만 검증 스탯 50 이상이면 통과 (상한선 없음)
[변경]
모든 스탯의 상/하한선(40~50) 일괄 검증
[추가]
텍스트 입력 예외 처리 및 초기화
if (!(cin >> hp >> mp >> power >> defence))
{
cout << "* 숫자만 입력해주세요." << endl;
cin.clear();
cin.ignore(100, '\n');
continue;
}
STEP 3 - 스탯 관리 메뉴
- 공격력, 방어력 업그레이드 활성화 횟수 제한(최대 1회) , 증가 방식 변경
[기존]
업그레이드 활성화 횟수 제한 없음 / 증가 방식: 기존 스탯의 2배 증가
[변경]
업그레이드 활성화 횟수 최대 1회 / 증가 방식: 고정 수치 10 증가
STEP 4 - Player 클래스 + 직업 선택
- 직업별 특화 스탯(보너스/패널티) 도입 및 클래스 개성 강화
[기존]
전사: HP +30
궁수: 방어력 +30
마법사: MP +30
도적: 공격력 +30
[변경]
전사: HP +20, 방어력 +20, MP -10
궁수: HP +20, 공격력 +20, 방어력 -10
마법사: MP +30, 공격력 +10, HP -10
도적: MP +10, 공격력 +30, 방어력 -10
[추가]
텍스트 입력 예외 처리 및 초기화
if (!(cin >> hp >> mp >> power >> defence))
{
cout << "* 숫자만 입력해주세요." << endl;
cin.clear();
cin.ignore(100, '\n');
continue;
}
STEP 5 - Monster 클래스 + 1:1 전투
- 몬스터 조우 시 자동 전투를 선택형 전투로 변경
[기존]
- 스탯 실시간 확인 불가
- 자동 전투 시스템
[변경]
- 매 턴 시작 시 현재 HP 출력
- 턴제 선택형 전투 시스템
- [공격], [방어], [도주] 행동을 추가
[공격] → 자동 전투 시스템과 동일
[방어] → 해당 턴 방어력 +10 상승 (공격 불가, 몬스터만 공격)
[도주] → 50% 확률로 도주 성공
(성공 시: 보상 없이 메인 메뉴 이동 / 실패 시: 해당 턴 방어력 -10 하락 된 후 몬스터만 공격)
[수정]
몬스터 처치 시에도 패배 처리되는 현상
[기존] if (player->getHP() > 0 && enemy->getHP() == false)
[변경] if (player->getHP() > 0 && enemy->getHP() <= 0)'본 캠프 TIL' 카테고리의 다른 글
| 26.05.22 TIL / 팀 프로젝트 Text-Console RPG 2일차 (0) | 2026.05.22 |
|---|---|
| 26.05.21 TIL / 팀 프로젝트 Text-Console RPG 1일차 (0) | 2026.05.21 |
| 26.05.19 / C++ Text RPG 오류 수정, 도전 과제 , AI 튜터 에이타니 활용 (0) | 2026.05.19 |
| 26.05.18 TIL / C++ Text RPG 수정, 게임 개발자를 위한 C++ 문법 (0) | 2026.05.18 |
| 26.05.15 TIL / C++ Text RPG 수정 (0) | 2026.05.15 |