FAKEBOOK

Steam 출시 · Windows·macOS · 4개 언어

가상 SNS를 무대로 한 포인트&클릭 미스터리 어드벤처입니다. UniRX·MVrP·Zenject 아키텍처 위에서 클라이언트를 개발했고, 세이브데이터 재설계로 다국어 전환 호환성을 확보해 4개 언어 글로벌 출시의 밑바탕을 만들었습니다.

역할
팀 프로젝트 · 클라이언트 개발자 2인 중 1인
기간
2024.01 ~ 2024.12
플랫폼
Steam
UnityC#UniRXMVrPZenjectSteamworks
FAKEBOOK 스크린샷 1
FAKEBOOK 스크린샷 2
FAKEBOOK 스크린샷 3

이미지 출처: Steam 스토어 페이지

30초 요약

가상 SNS 플랫폼에서 벌어지는 포인트&클릭 미스터리 어드벤처입니다. 클라이언트 개발자 2인 중 1인으로 참여해 DM·피드 검색 등 SNS 기능 파트를 담당했고, 세이브데이터 구조를 전면 개편해 다국어 전환 호환성을 확보했으며, Steam 배포(Windows·macOS)와 폴리싱을 맡았습니다. 2024년 11월에 출시했습니다 (참고: 게임에 대한 Steam 이용자 평가는 '매우 긍정적'입니다).

맡은 것

기술적 도전

세이브데이터 구조 전면 개편 — 글로벌 출시의 숨은 블로커 해소

4개 언어 글로벌 출시 지원
증상
세이브 파일은 코드가 아니라 데이터입니다. 그런데 기존 구조는 런타임 클래스 인스턴스를 그대로 JSON 직렬화하고 있어, 변수명 리팩토링만으로 하위호환이 깨지고 직렬화할 수 없는 자료구조는 저장되지 않았습니다. 언어 설정 관련 상태까지 세이브에 결합되어 있어, 게임 진행 중 언어를 바꿀 수 없다는 문제가 4개 언어 글로벌 출시의 블로커가 됐습니다.
원인
저장 포맷이 런타임 객체 구조에 직접 결합되어, 코드 변경과 로컬라이즈 상태 변경이 곧 세이브 호환성 파괴로 이어지는 구조였습니다.
조치
세이브 전용 클래스를 새로 도입하고, UID 기반으로 데이터를 저장·로드하는 방식으로 완전히 재설계했습니다. 런타임 객체와 저장 포맷을 분리해 코드 리팩토링과 세이브 호환성을 독립시켰습니다.

결과

게임 진행 중 언어 변경이 가능해졌고, 영어·한국어·중국어(간체/번체) 4개 언어 글로벌 출시를 지원했습니다.

macOS 빌드 데이터 미인식 — 원인은 ZIP 파일명 인코딩

Windows·macOS 동시 출시
증상
macOS 빌드에서 노터라이제이션(Notarization)과 티켓 부착(Stapling)까지 정상 완료했는데도 게임 데이터가 인식되지 않았습니다.
계측
서명·공증 체인을 단계별로 검증했으나 이상이 없어, 의심 범위를 빌드 산출물의 패키징 단계로 좁혔습니다. 압축 해제 결과를 확인하니 한글 파일명이 깨진 채 풀리고 있었습니다.
원인
문제는 압축률이 아니라 파일명 인코딩이었습니다. Windows에서 생성한 .zip은 한글 파일명을 UTF-8 플래그 없이 로컬 인코딩(CP949)으로 기록하는데, macOS에서 해제하면 파일명이 깨져 게임이 기대하는 데이터 파일을 찾지 못합니다.
조치
파일명을 UTF-8로 기록하는 7-Zip 기반 패키징으로 교체해, 어느 플랫폼에서 해제해도 한글 파일명이 보존되게 했습니다.

결과

macOS 빌드가 정상화되어 Windows·macOS 동시 출시를 지원했습니다.