
라이브 서비스에서 프리미엄 오프라인 모델로의 피벗
'Towerborne'은 본래 클라우드 기반 백엔드와 마이크로서비스 아키텍처를 갖춘 MMO 성격의 라이브 서비스 게임으로 기획됨. 하지만 출시 직전, 비즈니스 모델을 1회성 구매 방식의 프리미엄 모델로 변경하고 백엔드 서비스 없이 완전히 오프라인에서 구동되도록 전환하기로 결정함. 개발팀에게 주어진 시간은 단 6개월이었으며, 모든 핵심 게임 로직(인벤토리, 퀘스트, 제작 등)이 C# 백엔드에 집중되어 있어 이를 클라이언트로 옮기는 것이 최대 과제였음.
.NET Native AOT라는 기술적 돌파구
백엔드의 방대한 C# 로직을 Unreal 엔진의 C++로 재작성하는 것은 시간과 리스크 측면에서 불가능에 가까웠음. 이에 대한 해결책으로 C# 코드를 네이티브 코드로 직접 컴파일하는 .NET Native AOT를 선택함. 공식적으로는 윈도우와 리눅스만 지원하지만, 오픈 소스 프로젝트인 FNA의 콘솔 포트를 활용해 Xbox와 PS5에서도 C# 로직이 담긴 DLL을 구동하는 데 성공함.
'서버리스 서비스(Serverless Service)' 구현 전략
기존 클라이언트의 통신 구조를 파괴하지 않기 위해 클라이언트가 보내는 HTTP 요청을 가로채 로컬 DLL 내의 C# 로직으로 연결하는 방식을 채택함.
- 통합 진입점:
ProcessHttpRequest라는 단일 함수를 통해 모든 API 호출을 처리함. - 데이터 영속성: Azure Cosmos DB 대신 로컬 저장소의 세이브 파일을 DLL 메모리에 로드하여 상태를 관리함.
- 자동화: Swagger(OpenAPI) 명세서를 기반으로 C# 라우팅 및 데이터 구조 코드를 자동 생성하여 수백 개의 API를 신속하게 이식함.
1
검열관 메모 (0)
아직 검열관 메모가 없습니다. 첫 번째 메모를 남겨보세요.