Full Implementation Report

"제가 구현한
모든 기능을 담았습니다"

단순한 플레이 로직부터 유저를 붙잡아두는 경제 시스템, 그리고 서버 연동까지.
기획서의 A to Z는 물론, 모든 UI 디자인까지 직접 완성했습니다.

🏃

01. 캐릭터 물리 시스템

물리 기반 FSM 캐릭터 컨트롤러 PHYSICS

💡 Why & How?

폴 가이즈 특유의 '흐물거리지만 조작 가능한' 느낌을 위해 계층적 FSM(상태 머신)을 설계했습니다. 단순 If문이 아닌 상태(State)별로 물리 계수를 실시간 교체하여, 공중에선 관성을 유지하고 땅에선 즉시 멈추도록 구현했습니다.

  • Jump/Dive: 공중 제어 및 순간 가속(Impulse) 적용
  • Grounded: 마찰력(Drag)을 5.0으로 높여 미끄러짐 방지
  • Airborne: 마찰력(Drag)을 0.0으로 낮춰 관성 유지
STATE: IDLE (Drag 5.0)
능동적 래그돌 (Active Ragdoll)

장애물 충돌 시 애니메이션 제어를 끄고, 물리 엔진에 뼈대 제어권을 넘기는 시스템입니다. 충돌 반대 방향으로 힘(Knockback)과 회전(Torque)을 가해 코믹한 피격 모션을 만들었습니다.

상호작용 & 리스폰 복구
🍎 물체 운반 & 흩어짐 물체를 잡을 땐 FixedJoint로 고정하고, 피격 시 Scatter() 함수로 들고 있던 물건들을 폭발하듯 흩뿌립니다.
🔄 체크포인트 복구 낙사 시 리스폰 위치로 이동시키고, 물리 엔진의 Velocity를 0으로 강제 초기화하여 튕겨나가는 버그를 방지했습니다.
👑

02. 경제 및 메타 시스템

커스텀마이징 시스템 META

획득한 스킨을 캐릭터에 실시간으로 적용합니다. 단순 교체가 아닌, 미리 정해둔 캐릭터 뼈대(Skeleton)에 의상 메쉬를 바인딩(Binding)하는 방식을 사용하여, 어떤 옷을 입어도 달리기나 점프 동작 시 애니메이션이 자연스럽게 동기화되도록 구현했습니다. 서버에 저장된 '장착 정보(Equipped Info)'를 불러와 게임 시작 시 자동으로 옷을 입힙니다.

CLICK TO CHANGE SKIN

명성(Fame) 및 크라운 패스 ECONOMY

유저 리텐션을 위한 핵심 시스템입니다. 서버 차트(Chart) 데이터를 로드하여 메모리에 캐싱(Caching)하는 방식을 적용했습니다.

이를 통해 앱 업데이트 없이도 시즌 보상 목록을 변경할 수 있는 LiveOps 환경을 구축했습니다. 유저가 보상을 요청할 때 서버에서 아이템 ID를 검증하므로, 클라이언트 변조(해킹)를 원천 차단했습니다.

SEASON PASS NEXT: EPIC SKIN
LV.12
🛒

데이터 주도형 상점

상점 목록은 하드코딩되지 않았습니다. JSON 데이터를 파싱하여 런타임에 UI 슬롯을 동적 생성합니다. (업데이트 용이성 확보)

{ "id": "skin_01", "cost": 500 }
🎁

쿠도스 이벤트 & 챌린지

점프, 완주 등 특정 행동을 옵저버 패턴으로 감지하여 실시간 보상 팝업을 띄우고 일일 미션 달성도를 체크합니다.

03. 시스템 및 연출 총괄

전체 UI/UX 디자인 및 구현 100% SELF-MADE

게임 내 등장하는 모든 UI 리소스(아이콘, 버튼, 패널)와 레이아웃을 기획부터 제작까지 직접 담당했습니다. 단순히 기능을 연결하는 것을 넘어, 폴 가이즈 특유의 '통통 튀는' 모션감과 사용자 경험(UX)을 고려하여 Unity Animation System으로 애니메이션을 직접 연출했습니다.

🎨
UI 리소스 제작
Photoshop / Illustrator
인터랙션 연출
Unity Animator & Clips

🎮 게임 모드 시스템

솔로, 듀오, 랭크 등 모드별 규칙과 맵 데이터를 관리하는 매니저입니다. 선택된 모드에 따라 UI 대시보드가 변경됩니다.

📢 공지사항 시스템

게임 접속 시 서버에서 텍스트를 받아와 긴급 점검이나 이벤트를 알리는 팝업을 띄웁니다.

⚙️ 통합 환경설정

해상도, 사운드, 전체화면을 관리하는 싱글톤 매니저입니다. PlayerPrefs로 설정을 영구 저장합니다.

🎥 시네마틱 & 셰이더

Cinemachine Dolly Track으로 인트로 연출을 구현하고, 툰 셰이더(Toon Shader)를 적용해 비주얼을 완성했습니다.

☁️

04. 서버 연동 (Backend)

로그인, 랭킹 및 데이터 동기화 SERVER
🔐 계정 & 데이터

뒤끝(Backend) SDK를 연동하여 로그인 시 유저의 재화, 아이템 목록을 비동기(Async)로 안전하게 로드합니다.

🏆 실시간 랭킹

게임 종료 시 획득한 크라운을 DB에 갱신하고, 전체 순위를 재산정하여 리더보드에 표시합니다.

> System Initialized...
> Authenticating User... [OK]
> Loading Profile Data... [OK]
_