프로젝트소개
“눈을 변경하면 보이는 세상도 달라진다”
Eyes는 2D 플랫포머 퍼즐 장르의 게임입니다
눈을 변경할 때마다 맵의 기능과 플레이어의 능력이 달라지며, 이를 활용해 퍼즐을 해결하고 보스를 처치하는 것이 핵심입니다
포트폴리오 영상
포트폴리오 영상
플레이 영상 (지인이 도와주었습니다)
플레이 영상 (지인이 도와주었습니다)
담당 업무
- 플레이어 이동, 점프, 공격 등 핵심 조작 시스템 구현
- 눈(Eye) 종류에 따른 능력 전환 및 무기 변경 시스템 구현
- 눈 상태 변화에 반응하는 오브젝트 상호작용 구조 설계
- 레이저/파동 공격, 투사체 및 Object Pooling 구현
- 기능성 플랫폼, 위험 오브젝트 등 퍼즐 기믹 구현
- 적/보스 패턴, 카메라, 미니맵, UI 등 게임 진행 시스템 구현
주요 구현 내용
<aside>
💡 해당 프로젝트는 디자인 패턴의 학습 및 적용을 주요 목표로 삼아 진행하였습니다
</aside>
클래스 구조도
.png)
적용한 디자인 패턴
- Strategy Pattern
- Observer Pattern
- Simple Factory
- Singleton Pattern
- Template Method Pattern
프로젝트 후기
디자인 패턴을 처음 적용하면서, 적절하지 않은 상황에서 사용하거나 필요 이상으로 복잡하게 구현하는 실수를 하기도 했습니다. 그러나 다양한 패턴을 직접 적용해보면서 많은 것을 배울 수 있었습니다.
- 과유불급
- 디자인 패턴을 무조건 적용한다고 해서 항상 좋은 결과를 얻을 수 있는 것은 아니었습니다. 상황에 맞지 않는 패턴을 사용하면 오히려 코드가 복잡해지고 유지보수가 어려워지는 경우도 있었습니다.
- 장단점의 이해
- 디자인 패턴은 장점만 있는 것이 아니라, 특정 패턴이 가지는 단점도 고려해야 했습니다. 예를 들어, 옵저버 패턴을 사용할 때 구독자(Observer)와 발행자(Subject) 사이의 관계가 명시적이지 않아 디버깅이 어려운 경우가 있었습니다. 이를 방지하려면 구독/해제 관리를 철저히 해야 한다는 점을 배웠습니다.
디자인 패턴을 공부하고 직접 적용해 보면서, 패턴을 단순히 학습하는 것과 실제로 활용하는 것의 차이를 몸소 경험할 수 있었습니다. 이를 통해 각 패턴의 특성과 활용법을 깊이 이해할 수 있었고, 실무에서 자주 사용되는 패턴과 그렇지 않은 패턴의 차이를 스스로 느낄 수 있었습니다.
비고
첫 개인 프로젝트는 아쉬움이 남았습니다. 완성은 했지만, 기능을 구현할 때마다 무계획하게 코드를 덧붙여 재사용이 어렵고 유지보수에도 큰 어려움이 있었습니다.