본문 바로가기

프로젝트/Wild Bowl : Zooports5

WILD BOWL: ZOOPORTS 프로젝트 소개 개요Apple App Store4인 팀(개발 2, 아트 1, 기획 1)으로 구성된 프로젝트입니다상점과 결제 프로세스, 광고·알림 시스템, UI 전반, 튜토리얼, 앱스토어 대응 등 라이브 서비스를 염두에 둔 다양한 기능을 직접 설계 및 구현하였습니다 프로젝트 기간23.09.01 - 24.07.31 (총 11개월) 개발 환경 및 사용 라이브러리Unity 2D URP 22.3.14f1, macOSUniTask, UniRx, DOTWeen, Input System, NewtonJson, Unity IAPGoogle AdMob, Google FirebaseMirageRider 2024.3.3 플레이 영상 링크Wild Bowl Zooports Play - Youtube주요 구현상점, 결제 플로우 설계 및 IAP 적.. 2025. 4. 8.
Xcode iOS 빌드 이슈 해결 개요macOS Sonoma 운영체제와 Xcode 15.0.1 업데이트 이후, Xcode에서 유니티 프로젝트를 빌드할 경우 Undefined symbols: 에러가 발생했다   내용원인 분석Undefined Symbols 오류는 프로젝트에서 사용하는 외부 라이브러리나 프레임워크가 제대로 링크되지 않을 때 발생한다고 한다. 특히 Unity에서 iOS 빌드를 위해 생성된 Xcode 프로젝트의 경우, iOS 네이티브 플러그인이나 SDK가 CocoaPods를 통해 링크된다고 한다 이러한 문제를 해결하기 위해, 외부 라이브러리를 관리하고 통합하는 역할을 하는 CocoaPods 설정이 누락되거나 링크 오류가 발생하여 라이브러리가 빌드에서 제외되고, 이로 인해 링커가 심볼을 찾지 못할 가능성을 우선적으로 고려했다 이에.. 2025. 1. 6.
튜토리얼 시스템 구현 개요주포츠 튜토리얼 Wild Bowl : Zooports에서 구현한 튜토리얼 시스템에 대해 설명하는 글이다.  내용배경게임 출시를 앞두고 다양한 유저들을 대상으로 테스트를 진행한 결과, 조작법이 어렵다는 피드백이 다수 확인되었다. 이를 해결하기 위해 튜토리얼을 개발하게 되었다. 효율적인 튜토리얼 컨텐츠 추가를 위해, 우선적으로 튜토리얼 시스템을 설계하고 구축하였다. 튜토리얼 시스템 개발 시, 특히 중요하게 고려한 부분은 다음과 같다:튜토리얼 순서의 보장: 컨텐츠의 순서를 유지하여 자연스럽고 체계적인 학습 과정을 제공한다.단계별 작업의 안전성: 각 진행 단계에서 오류 없이 안정적이고 신뢰성 있게 작동할 수 있는 구조를 구축한다.이 두 가지 원칙을 바탕으로 튜토리얼 개발에 집중하였다. 설계 전략1. 데이터를.. 2025. 1. 5.
인앱 결제 복구 이슈 해결 개요Wild Bowl : Zooports 프로젝트에서 빌드 심사를 받을 때 발생했던 이슈를 해결하는 과정을 소개한다.  내용배경애플 앱스토어 정책에 따라 유료 재화를 판매하는 앱은 반드시 결제 상품 복구 기능을 제공해야 한다. 그러나 해당 기능이 없는 초기 빌드 상태에서는 심사를 통과할 수 없었다. 따라서 인앱 결제 복구 기능을 구현해야 했다.  문제점 Unity IAP의 경우 공식 메뉴얼을 참고하며 IAP 모듈은 이미 구현했다. 구현된 모듈의 영수증 유효성 검증 로직은 Apple App Store에서 구매 성공 시 반환되는 콜백에 포함된 영수증 데이터를 기반으로 동작한다(Class Product의 receipt 멤버 참고). 기존 로직에서는 이 receipt를 Lambda로 전송하여 다음과 같은 절차로.. 2025. 1. 5.
상점 데이터 갱신 방식 개선 개요 Wild Bowl : Zooports의 상점 구조를 UniRx를 활용해 리팩토링하고, 데이터 갱신 방식을 개선한 경험을 기록하기 위한 글이다.  내용배경게임 초기에 상품 구성은 고정되어 있었다. 하지만 일정 시간마다 상품이 새로고침되거나 특정 레벨에 도달하는 등 특정 조건에 따라 상품이 교체되는 기능을 구현해야했다. 기존의 구조로 요구사항을 구현하는 데에는 여러 문제점이 있었고, 리팩토링할 필요가 있었다. 문제점1. 데이터 처리와 UI가 결합된 구조로 인한 기능 확장 및 수정이 어려움이전 구조는 데이터를 처리하는 비즈니스 로직과 UI가 강하게 결합되어 있었다. 그래서 새로운 기능을 추가하거나 기존 기능을 수정하기 어려웠다.2. 불필요한 데이터 요청으로 서버와의 통신량 증가 및 쿼리 비용 증가모든 상.. 2025. 1. 4.
반응형