"제가 구현한
모든 기능을 담았습니다"
단순한 플레이 로직부터 유저를 붙잡아두는 경제 시스템, 그리고 서버 연동까지.
기획서의 A to Z는 물론, 모든 UI 디자인까지 직접 완성했습니다.
01. 캐릭터 물리 시스템
💡 Why & How?
폴 가이즈 특유의 '흐물거리지만 조작 가능한' 느낌을 위해 계층적 FSM(상태 머신)을 설계했습니다. 단순 If문이 아닌 상태(State)별로 물리 계수를 실시간 교체하여, 공중에선 관성을 유지하고 땅에선 즉시 멈추도록 구현했습니다.
- • Jump/Dive: 공중 제어 및 순간 가속(Impulse) 적용
- • Grounded: 마찰력(Drag)을 5.0으로 높여 미끄러짐 방지
- • Airborne: 마찰력(Drag)을 0.0으로 낮춰 관성 유지
장애물 충돌 시 애니메이션 제어를 끄고, 물리 엔진에 뼈대 제어권을 넘기는 시스템입니다. 충돌 반대 방향으로 힘(Knockback)과 회전(Torque)을 가해 코믹한 피격 모션을 만들었습니다.
FixedJoint로 고정하고, 피격 시 Scatter() 함수로 들고 있던 물건들을 폭발하듯 흩뿌립니다.
Velocity를 0으로 강제 초기화하여 튕겨나가는 버그를 방지했습니다.
02. 경제 및 메타 시스템
획득한 스킨을 캐릭터에 실시간으로 적용합니다. 단순 교체가 아닌, 미리 정해둔 캐릭터 뼈대(Skeleton)에 의상 메쉬를 바인딩(Binding)하는 방식을 사용하여, 어떤 옷을 입어도 달리기나 점프 동작 시 애니메이션이 자연스럽게 동기화되도록 구현했습니다. 서버에 저장된 '장착 정보(Equipped Info)'를 불러와 게임 시작 시 자동으로 옷을 입힙니다.
CLICK TO CHANGE SKIN
유저 리텐션을 위한 핵심 시스템입니다. 서버 차트(Chart) 데이터를 로드하여 메모리에 캐싱(Caching)하는 방식을 적용했습니다.
이를 통해 앱 업데이트 없이도 시즌 보상 목록을 변경할 수 있는 LiveOps 환경을 구축했습니다.
유저가 보상을 요청할 때 서버에서 아이템 ID를 검증하므로, 클라이언트 변조(해킹)를 원천 차단했습니다.
데이터 주도형 상점
상점 목록은 하드코딩되지 않았습니다. JSON 데이터를 파싱하여 런타임에 UI 슬롯을 동적 생성합니다. (업데이트 용이성 확보)
쿠도스 이벤트 & 챌린지
점프, 완주 등 특정 행동을 옵저버 패턴으로 감지하여 실시간 보상 팝업을 띄우고 일일 미션 달성도를 체크합니다.
03. 시스템 및 연출 총괄
게임 내 등장하는 모든 UI 리소스(아이콘, 버튼, 패널)와 레이아웃을 기획부터 제작까지 직접 담당했습니다. 단순히 기능을 연결하는 것을 넘어, 폴 가이즈 특유의 '통통 튀는' 모션감과 사용자 경험(UX)을 고려하여 Unity Animation System으로 애니메이션을 직접 연출했습니다.
🎮 게임 모드 시스템
솔로, 듀오, 랭크 등 모드별 규칙과 맵 데이터를 관리하는 매니저입니다. 선택된 모드에 따라 UI 대시보드가 변경됩니다.
📢 공지사항 시스템
게임 접속 시 서버에서 텍스트를 받아와 긴급 점검이나 이벤트를 알리는 팝업을 띄웁니다.
⚙️ 통합 환경설정
해상도, 사운드, 전체화면을 관리하는 싱글톤 매니저입니다. PlayerPrefs로 설정을 영구 저장합니다.
🎥 시네마틱 & 셰이더
Cinemachine Dolly Track으로 인트로 연출을 구현하고, 툰 셰이더(Toon Shader)를 적용해 비주얼을 완성했습니다.
04. 서버 연동 (Backend)
뒤끝(Backend) SDK를 연동하여 로그인 시 유저의 재화, 아이템 목록을 비동기(Async)로 안전하게 로드합니다.
게임 종료 시 획득한 크라운을 DB에 갱신하고, 전체 순위를 재산정하여 리더보드에 표시합니다.
> Authenticating User... [OK]
> Loading Profile Data... [OK]
_