프로젝트

FAKEBOOK

SNS의 게시글과 대화를 따라 단서를 찾는 미스터리 게임입니다.

FAKEBOOK 이미지 1/3
1 / 3

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

담당 업무

분기 대화와 피드·검색·업적·설정 등 게임 시스템을 개발했습니다. Steamworks 연동과 Windows·macOS 출시, 출시 후 저장 구조 개편에 참여했습니다.

기술 사례

출력 중에도 전환할 수 있는 분기 대화

메시지 출력 도중 분기 조건이 충족되면 다음 대화로 넘어가야 했습니다. 출력 작업과 조건 확인을 병행하고, 전환 시 취소 토큰으로 이전 출력과 대기를 중단하도록 구현했습니다.

메시지 출력← 취소 전달분기 조건 확인
출력과 조건 확인을 병행하고, 전환 시 이전 작업 정리
메시지 출력과 분기 조건 확인의 병행 처리

출력 간격을 기다리는 동안에는 진행 위치가 이미 갱신되어 있어, 작업을 멈추는 것만으로는 대화 상태가 복원되지 않았습니다. 취소 시 마지막 메시지와 진행 위치를 복원하고, 남은 큐와 전송·대기 상태를 정리했습니다.

대화창을 전환했을 때 이전 타이핑 표시가 다른 대화창에 남는 문제도 수정했습니다.

세이브 포맷 변경과 하위 호환성

출시 후 콘텐츠와 유저 진행 데이터를 분리하는 개편에서, 기존 세이브의 식별자 연결과 진행 상태 변환을 담당했습니다. 새 저장 형식은 메시지 내용 대신 UID와 진행 상태를 보관합니다.

현재 메시지의 위치만으로는 다음 동작을 결정할 수 없었습니다. 화면에 표시됐는지, 읽었는지, 답장을 기다리는지에 따라 이어서 진행할 동작이 달라지므로 각각의 상태를 구분해 옮겼습니다.

기존 세이브의 변환
처리 대상변환 내용
읽은 메시지기존 확인 위치를 기준으로 읽음 상태 지정
표시됐지만 읽지 않은 메시지미확인 메시지 수를 반영해 표시 상태와 알림 유지
아직 표시되지 않은 메시지조건 대기와 답장 입력 대기를 구분
분기 시작에서 저장한 기록이전 메시지가 없는 경우를 처리해 불러오기 오류 수정

피드·게시물·동적 댓글에서도 콘텐츠와 유저별 진행 정보를 분리하는 작업을 맡았습니다. 변경된 구조에 맞춰 콘텐츠 참조와 저장 코드를 수정했습니다.

추가 작업

macOS에서 읽히지 않던 데이터 파일

macOS 배포 과정에서 압축을 해제하면 한글 파일명이 달라져 게임 데이터를 찾지 못하는 문제가 있었습니다. 빌드에 들어 있는 파일과 압축 해제 후의 이름이 달라, 게임이 요청하는 경로로 파일을 읽을 수 없었습니다.

게임과 콘텐츠에서 사용하는 파일명은 유지하고 패키징 단계의 압축 도구와 인코딩 설정을 변경했습니다. Windows에서 만든 배포 파일을 macOS에서도 같은 이름으로 풀 수 있도록 수정했습니다.

대화 진행과 업적 표시를 확인하는 테스트

Unity Test Framework로 대화 진행에 따른 읽지 않은 메시지 수와 업적 표시 호출을 확인하는 테스트를 작성했습니다. 의존 객체는 테스트용 구현으로 바꿔 필요한 상태를 만들었습니다.

업적 화면은 풀 초기화와 구독을 함께 다뤄야 해서 Mock만으로 검사가 복잡해졌습니다. Presenter를 상속한 Proxy에서 호출 여부와 전달된 데이터를 기록하도록 했고, 이 선택의 이유를 코드 주석에 남겼습니다.

업적 표시 테스트와 DM 테스트 코드

수상·선정

프로젝트의 팀 성과입니다.

수상

  • 2025 서울게임공모전 대상
  • 2025 인디크래프트 TOP 3
  • 2025 GIGDC 파트너 특별상
  • 2024 스토브인디 어워즈 프론티어상
  • 2024 인디플 어워즈 최우수상

선정 · 노미네이트

  • 2024 Burning Beaver — Beaver Featured 선정
  • 2024 BIC Festival 실험성 · 소셜 임팩트 부문 노미네이트
  • 2024 BIC BIGEM 3기 선정