오늘은 팀 프로젝트 2일차를 진행함.
Git 관리하시는 분이 Branch별 역할 분담 하는 법을 배워오셔서 알려주심.
- main : 최종 결과물, 배포 가능한 상태의 완성본만 관리함. (프로젝트 종료 시점이나 중간 발표 시점에만 합침)
- develop : 다음 버전을 위해 개발 중인 코드를 모으는 곳, 팀원들이 만든 기능(feature)들이 모임. (빌드 성공 상태를 유지해야 함)
- feature : 새로운 기능을 만들 때 사용하는 임시 Branch, 작업이 끝나면 develop에 합치고 삭제함.
점점 Git 사용법에 익숙해져가는 거 같아서 만족스러움.
이후 팀 프로젝트 진행 시간에 기획 초안 마무리 및 역할 분배해서 시작함.


나는 Player 파트를 구현하게 됨.
우선, 해당 게임 특성 상 Player는 유일한 객체이기 때문에 Singleton Pattern을 구현함.
class Player : public Character
{
private:
// 1. 정적 멤버 포인터: 유일한 플레이어 객체를 가리킴
static Player* instance;
public:
// 2. 복사 생성자 및 대입 연산자 삭제 (유일성 보장)
Player(const Player&) = delete;
Player& operator=(const Player&) = delete;
// 3. 싱글톤 인스턴스 반환 함수: 필요할 때 생성
static Player* GetInstance();
};
Player* Player::instance = nullptr;
Player* Player::GetInstance()
{
if (instance == nullptr) {
cout << "플레이어 이름을 입력하세요: ";
string name;
getline(cin, name);
// 빈 값 입력 시 기본 이름 설정
if (name.empty())
{
cout << "이름이 입력되지 않아 기본 이름 'Steve'로 설정됩니다.\n";
name = "Steve";
}
instance = new Player(name);
}
return instance;
}
이외에 필요한 기능들을 구현함.
int GetLevel() const; // 레벨 출력 함수
int GetExp() const; // 경험치 출력 함수
int GetGold() const; // 골드 출력 함수
void EarnReward(); // 경험치 획득 함수 (추가 구현에서 골드 획득 포함 예정)
void LevelUp(); // 레벨업 함수
void ResetBuff(); // 버프한 스텟 초기화 함수
virtual void Attack(Character* monster) override; // 공격 함수
virtual void UseItem() override; // 아이템 사용 함수
프로젝트를 하면서 내 코드를 작성하는 능력뿐만 아니라 상대 코드를 읽고 이해하는 능력의 중요성을 알게 되었고, 내 생각과 다른 더 좋은 아이디어를 접하면서 지식이 늘게 되었으며, 협업 툴에도 익숙해져 감.
내일은 완성된 팀원들의 필수 기능들에 맞춰서 코드를 수정하고 합치는 과정을 진행할 예정임.
러프하게 완성된 게임과 튜터님의 피드백, 더 발전할 기능들이 기대됨.
'내일배움캠프_Unreal > TIL' 카테고리의 다른 글
| 내일배움캠프_Unreal/TIL - Day 25 (260102) (0) | 2026.01.02 |
|---|---|
| 내일배움캠프_Unreal/TIL - Day 24 (251231) (0) | 2025.12.31 |
| 내일배움캠프_Unreal/TIL - Day 22 (251229) (0) | 2025.12.29 |
| 내일배움캠프_Unreal/TIL - Day 21 (251226) (0) | 2025.12.26 |
| 내일배움캠프_Unreal/TIL - Day 20 (251224) (0) | 2025.12.24 |