프로젝트 목록
2D 탑다운 퍼즐 · 학부 · GAM200/250

Way Back Home

팀에서 만든 C++ 엔진 BLUE

BLUE 엔진으로 만든 퍼즐 게임입니다. 물리·충돌 모듈과 일부 게임플레이·레벨을 담당했습니다.

사물의 시간을 바꿔 집으로 돌아갈 길을 찾는 C++ 퍼즐 게임입니다. 팀 엔진 BLUE의 도형·물리·충돌 모듈과 퍼즐 오브젝트, 일부 레벨을 담당했습니다.

C++BLUE 엔진SDLOpenGL / GLEWGLMImGuiRapidJSONFMODBitbucket / Sourcetree
Way Back Home의 나무와 캐릭터가 보이는 시간 변경 퍼즐
최종 제출 패키지에 담긴 게임 화면입니다.
OVERVIEW

게임 소개

도형·충돌 판정·강체 물리, 퍼즐 오브젝트 컨트롤러와 일부 레벨을 담당했습니다. 벽 접촉 판정과 위치 갱신에서 생긴 문제도 수정했습니다. JEANs 3인 팀이 팀원이 시작한 C++ 엔진 BLUE를 확장해 만들었고, 설치 패키지·소스·개발 문서·트레일러를 제출했습니다.

섬에 남은 작은 캐릭터가 집으로 돌아갈 길을 찾는 2D 탑다운 퍼즐입니다. 사물을 과거나 미래의 모습으로 바꾸고, 옮기거나 조합해 막힌 길을 엽니다. 나무와 씨앗처럼 같은 사물의 서로 다른 상태를 이용합니다.

MY CONTRIBUTION

맡은 일

01

충돌 판정과 벽 접촉 문제 수정

원끼리, 원과 사각형, 축에 정렬된 사각형끼리의 충돌 판정을 구현했습니다. 벽에 닿으면 이전 위치로 돌아가거나 벽을 따라 움직이지 못하던 문제를 수정했습니다. 보정값을 적용해 표면 접촉과 실제 겹침을 구분했습니다.

02

도형과 강체 물리 모듈

Line2D·Circle·Rectangle·Transform으로 물체의 모양과 위치·회전·크기를 처리했습니다. Rigidbody에는 이전 위치와 속도 관리, 위치 갱신을 구현했습니다. 각 모듈은 BLUE의 컴포넌트 구조에 맞췄습니다.

03

퍼즐 오브젝트와 보조 충돌체

벽·문·웅덩이·나무판·횃불과 보조 충돌 오브젝트의 컨트롤러를 만들었습니다. 플레이어에 붙은 충돌체가 부모 Transform을 따라가도록 수정하고, 사물 조작 결과가 이동과 충돌 판정에 반영되도록 했습니다.

04

퍼즐 레벨과 메뉴

여러 퍼즐 레벨과 메인 메뉴·옵션·크레딧·스플래시를 만들었습니다. 장면에 배치한 오브젝트에는 엔진의 물리·충돌 기능을 적용했습니다.

ENGINEERING STORY

벽에 닿은 채 움직이지 못하는 문제

결과

벽에 닿았다는 이유만으로 플레이어를 이전 위치로 되돌리지 않도록 수정했습니다. 충돌 판정에 보정값을 두어 표면 접촉과 실제 겹침을 구분했습니다.

문제

벽 표면에 닿기만 해도 겹침으로 판정해 플레이어를 이전 위치로 되돌렸습니다. 이 때문에 벽에 닿은 상태에서 움직이지 못할 수 있었습니다.

해결 과정

사각형의 최소·최대 경계로 겹침을 계산하는 부분에 보정값을 적용했습니다. 표면에 닿은 경우와 실제로 벽 안에 들어간 경우를 구분하도록 판정 범위를 조정했습니다.

DELIVERED WORK

개발 결과

  • 팀 엔진 BLUE의 물리·충돌 모듈
  • 과거·미래로 바꾸고 조합하는 사물 퍼즐
  • 레벨 · 튜토리얼 · 메뉴 · 설치 패키지

BLUE의 초기 구조와 렌더링은 팀원이 만들었습니다. 저는 도형·물리·충돌 모듈과 일부 게임플레이·레벨을 담당했습니다.

다음 프로젝트Dice & Castle

포트폴리오 질문

질문 더 보기
최대 400자. Enter 전송, Shift+Enter 줄바꿈.