1. Multiplayer Session Flow
Photon Fusion 세션 흐름은 단순히 방을 만들고 참가하는 기능이 아니라, 로비 UI와 실제 네트워크 상태가 같은 방향으로 움직이도록 정리해야 하는 영역이었습니다. 세션 생성, 참가, 종료, 이탈 시점의 흐름을 함께 점검해 사용자가 현재 상태를 오해하지 않도록 구성했습니다.
Photon Fusion 기반 3D 비대칭 PvP 호러 게임에서 세션 생성·참가·종료 흐름, 로딩/씬 전환 UX, Unity CI 검증 환경과 협업 자동화를 정리해 팀이 안정적으로 멀티플레이 기능을 검증할 수 있도록 만든 프로젝트입니다.
Mannequin은 쇼핑몰을 배경으로 마네킹과 퇴마사가 대립하는 Photon Fusion 기반 3D 비대칭 PvP 호러 게임입니다. 짧은 플레이타임 안에서도 역할별 긴장감과 추격·회피 경험을 전달하는 것을 목표로 했습니다.
저는 이 프로젝트에서 인프라를 주 담당하고 UI를 부 담당하며, 팀이 멀티플레이 기능을 안정적으로 개발·검증할 수 있는 기반과 실제 플레이 진입 흐름을 함께 정리했습니다.
특히 멀티플레이 게임에서는 사용자가 보고 있는 화면 상태와 실제 네트워크 세션 상태가 어긋나면 플레이 경험 전체가 흔들릴 수 있다고 판단했습니다. 그래서 화면 단위 수정에 그치지 않고 세션 생명주기, 씬 전환 순서, 로딩 피드백을 함께 바라보며 흐름을 다듬었습니다.
또한 GitLab Runner, Unity 라이선스, EC2 실행 환경, Mattermost 웹훅을 점검해 팀의 반복 검증과 협업 상태 공유가 일회성 수작업에 의존하지 않도록 정리했습니다.
세션 생성·참가·종료 과정에서 UI 상태와 실제 네트워크 상태가 어긋나지 않도록 로비, 참가, 이탈 흐름을 함께 점검했습니다.
로비에서 인게임으로 넘어가는 과정에서 사용자가 현재 상태를 이해할 수 있도록 역할별 로딩 흐름과 상태 피드백을 정리했습니다.
EC2 기반 GitLab Runner, Unity 라이선스, 실행 환경을 점검해 반복 가능한 빌드/검증 흐름을 만들 수 있도록 운영 기준을 정리했습니다.
Mattermost 웹훅으로 브랜치별 커밋 현황을 공유해 팀원이 변경 흐름을 빠르게 확인할 수 있는 협업 자동화 기반을 구성했습니다.
Photon Fusion 세션 흐름은 단순히 방을 만들고 참가하는 기능이 아니라, 로비 UI와 실제 네트워크 상태가 같은 방향으로 움직이도록 정리해야 하는 영역이었습니다. 세션 생성, 참가, 종료, 이탈 시점의 흐름을 함께 점검해 사용자가 현재 상태를 오해하지 않도록 구성했습니다.
LoadingScene과 씬 전환 흐름은 멀티플레이 진입 과정의 상태 피드백 장치로 보았습니다. 로비에서 게임 시작 후 인게임으로 넘어가는 동안 사용자가 참가 중인지, 로딩 중인지, 역할별 진입을 기다리는지 알 수 있도록 흐름을 정리했습니다.
GitLab Runner와 Mattermost 웹훅을 활용해 팀의 검증과 공유 흐름을 정리했습니다. Unity 라이선스와 EC2 Runner 환경을 점검하고, 브랜치별 커밋 현황이 자동으로 공유되도록 구성해 협업 과정의 누락 가능성을 줄이고자 했습니다.
멀티플레이 게임에서는 사용자가 방을 나갔다고 느끼더라도 실제 세션이 남아 있거나, 참가 중인지 대기 중인지 화면에서 명확히 드러나지 않으면 플레이 진입 경험이 흔들릴 수 있었습니다.
세션 생성·참가·종료 흐름을 UI 현상으로만 보지 않고 네트워크 세션 생명주기와 연결된 상태 흐름으로 정리했습니다. 로비와 참가 흐름에서 사용자가 인지하는 상태와 실제 세션 상태가 함께 전환되도록 점검했습니다.
로비에서 게임 시작 후 인게임으로 넘어가는 과정은 단순 화면 전환처럼 보이지만, 실제로는 역할 배정, 씬 로딩, 네트워크 참가 상태가 함께 맞물리는 구간이었습니다.
LoadingScene을 상태 피드백 장치로 보고, 역할별 진입 흐름과 씬 전환 순서를 함께 정리했습니다. 이를 통해 사용자가 현재 단계가 로딩인지, 참가 대기인지, 인게임 전환인지 이해할 수 있도록 구성했습니다.
Unity 프로젝트는 Runner 환경, 라이선스 인증, 실행 경로에 따라 검증 결과가 흔들릴 수 있어, 팀 단위 개발에서는 반복 가능한 기준이 필요했습니다.
EC2에서 GitLab Runner와 Unity 라이선스 상태를 점검하고, 팀이 같은 기준으로 빌드와 검증을 수행할 수 있도록 운영 흐름을 문서화했습니다.
브랜치별 커밋 현황과 변경 흐름을 사람이 직접 공유하면 누락되기 쉽고, 멀티플레이 기능처럼 여러 파트가 맞물리는 작업에서는 팀 전체의 상태 인지가 중요했습니다.
Mattermost Webhook을 연결해 브랜치별 커밋 현황이 자동으로 공유되도록 구성했습니다. 이를 통해 변경 흐름을 팀 채널에서 바로 확인하고 검증 타이밍을 맞출 수 있도록 했습니다.
세션 생성, 참가, 종료, 이탈 흐름을 UI 상태와 함께 보며 멀티플레이 진입 과정의 불일치 가능성을 줄였습니다.
로딩 화면을 단순 대기 화면이 아니라 역할 배정과 씬 전환 상태를 전달하는 피드백 흐름으로 정리했습니다.
EC2 Runner 환경과 Unity 라이선스 상태를 점검해 빌드와 검증 과정을 반복 가능한 형태로 관리할 수 있도록 했습니다.
브랜치별 커밋 현황을 팀 채널로 전달해 변경 사항 공유와 검증 타이밍 조율이 수월하도록 구성했습니다.
로비에서 게임 시작 후 인게임으로 넘어가는 흐름을 단순한 화면 전환이 아니라 상태가 보이는 플레이 진입 경험으로 다듬었습니다. 또한 GitLab Runner와 Unity 라이선스 운영 기준을 정리해 팀의 검증 루틴을 반복 가능한 형태로 만들었습니다.
팀은 멀티플레이 기능을 검증할 때 세션 상태, 씬 전환, 로딩 상태를 함께 확인할 수 있게 되었고, 브랜치별 변경 흐름도 Mattermost를 통해 더 빠르게 공유할 수 있었습니다.
사용자 관점에서는 참가, 로딩, 인게임 진입 사이의 흐름이 더 명확해져, 네트워크 기반 게임에서 자주 발생하는 "지금 무엇을 기다리는지 모르는 상태"를 줄이는 방향으로 경험을 개선했습니다.
이 프로젝트를 통해 멀티플레이 게임에서는 개별 기능 구현만큼 세션 생명주기, 상태 피드백, 검증 환경, 협업 운영 기준을 함께 보는 시야가 중요하다는 점을 배웠습니다.
이후에는 Runner 기반 검증을 더 자동화하고, 세션 실패/재참가 케이스까지 사용자 피드백과 로그로 관찰할 수 있는 구조로 확장해보고 싶습니다.
실제 플레이에서 확인한 마네킹 역할의 주요 스킬과 전환 흐름입니다. 스킬 사용, 위장, 교란 장면을 통해 세션 진입 이후 이어지는 플레이 경험을 보여줍니다.