← 모든 글

포트폴리오 제작기 2 - Unity Netcode의 한계와 Photon Fusion 검토

포트폴리오용 멀티플레이 게임을 만들기 위해 Unity Netcode 계열을 검토하고, NGO와 NGE의 한계를 정리한 뒤 Photon Fusion을 후보로 선택한 이유를 기록합니다.

포트폴리오 게임 제작기 PortfolioUnityNetcodeNGONGEPhoton Fusion

네트워크 프레임워크를 다시 살펴본 이유

포트폴리오용 게임의 방향을 extraction shooter로 잡으면서, 네트워크 구조를 어떻게 가져갈지가 중요한 문제가 되었다. 단순히 여러 플레이어가 같은 공간에 접속하는 것만으로는 부족하다. 이동, 전투, 피격 판정, 아이템 획득, 탈출 처리처럼 플레이 감각에 직접 영향을 주는 요소들이 모두 네트워크 위에서 안정적으로 동작해야 한다.

처음에는 Unity에서 제공하는 Netcode 계열을 우선 검토했다. Unity 공식 생태계 안에 있고, GameObject 기반 워크플로우와도 잘 맞을 것이라는 기대가 있었기 때문이다. 하지만 조금 더 살펴보니 현재 만들려는 게임의 요구사항과는 맞지 않는 부분이 꽤 있었다.

NGO와 NGE의 이중화

Unity의 Netcode는 크게 Netcode for GameObjects(NGO)Netcode for Entities(NGE)로 나누어 볼 수 있다. 문제는 두 프레임워크가 같은 목표를 향해 자연스럽게 이어지는 느낌보다는, 서로 다른 전제와 워크플로우를 가진 선택지처럼 보인다는 점이다.

NGO는 GameObject 기반 프로젝트에 붙이기 쉽고 Unity의 일반적인 개발 방식과 잘 맞는다. 하지만 실시간 액션 게임에서 중요하게 다뤄야 하는 기능들이 기본적으로 충분하지 않다.

이런 기능은 플레이어 입력과 서버 판정 사이의 지연을 다루기 위해 필요하다. 특히 이동과 전투가 중요한 게임에서는 네트워크 지연이 그대로 조작감 문제로 이어질 수 있다. NGO만으로 이 부분을 직접 구현하려면 프레임워크를 사용하는 장점이 줄어들고, 오히려 핵심 네트워크 구조를 많이 직접 만들어야 할 가능성이 있다.

반대로 NGE는 예측, 재시뮬레이션, 렉 보정 같은 기능을 제공한다. 네트워크 액션 게임의 기술적 요구사항만 보면 NGO보다 더 가까워 보인다. 하지만 NGE는 Entities 기반이기 때문에 기존 GameObject 중심의 워크플로우와 차이가 크다.

내가 우려한 부분은 다음과 같다.

즉 NGO는 익숙하지만 필요한 기능이 부족하고, NGE는 필요한 기능은 있지만 제작 방식 자체가 크게 달라진다. 이 지점이 Unity Netcode 계열을 그대로 선택하기 어렵게 만든 가장 큰 이유였다.

다른 프레임워크 검토

그래서 Unity 공식 Netcode만 고집하지 않고 다른 멀티플레이 프레임워크도 함께 살펴봤다. 목표는 명확했다. 포트폴리오 프로젝트에서 너무 많은 기반 기술을 직접 만들지 않으면서도, 실시간 액션 게임에 필요한 네트워크 기능을 확보하는 것이다.

그중 가장 적절해 보인 후보는 Photon Fusion이었다.

Photon Fusion은 방 만들기와 세션 관리 같은 멀티플레이 기본 기능을 제공한다. 포트폴리오 프로젝트에서는 매치메이킹이나 서버 인프라를 처음부터 크게 만들기보다, 작은 규모의 플레이 세션을 빠르게 구성하는 것이 더 중요하다. 그런 점에서 방 생성과 입장 흐름을 비교적 빠르게 구성할 수 있다는 점이 장점으로 보였다.

또 하나 중요한 점은 Photon Fusion이 GameObject 기반 워크플로우를 사용할 수 있다는 것이다. NGE처럼 프로젝트 구조를 Entities 중심으로 크게 바꾸지 않아도 되고, Unity에서 익숙하게 사용하던 GameObject, MonoBehaviour, Prefab 중심의 제작 흐름을 유지할 수 있다. 포트폴리오 프로젝트에서는 네트워크 기술을 보여주는 것도 중요하지만, 실제 게임을 끝까지 만드는 속도 역시 중요하다. 그런 점에서 기존 Unity 작업 방식과 잘 이어진다는 점은 큰 장점이다.

또한 Fusion은 실시간 액션 게임에서 필요한 기능들을 프레임워크 차원에서 다룬다.

이 기능들은 단순히 기술적으로 좋아 보이는 항목이 아니라, 실제 플레이 감각을 유지하기 위한 기반이다. 플레이어가 입력한 행동이 즉시 반응하는 것처럼 보이고, 서버 판정과 어긋났을 때 자연스럽게 보정되며, 지연이 있는 상황에서도 판정이 납득 가능해야 한다. 이런 부분을 직접 구현하기보다 검증된 프레임워크 위에서 시작하는 편이 이번 프로젝트의 목적에 더 맞다고 판단했다.

비용과 규모

Photon Fusion을 검토하면서 비용도 함께 확인했다. 포트폴리오 프로젝트는 처음부터 큰 규모의 서비스를 목표로 하는 것이 아니기 때문에, 일정 CCU까지 무료로 사용할 수 있다는 점은 중요한 장점이다.

초기 개발 단계에서는 기능 검증과 플레이 흐름 제작이 우선이다. 이 단계에서 서버 비용이나 인프라 운영 부담이 너무 커지면, 정작 게임의 핵심을 만드는 데 집중하기 어렵다. 일정 규모까지 무료로 테스트하고 개발할 수 있다면, 개인 프로젝트로 시작하기에 부담이 훨씬 줄어든다.

현재 결론

이번 검토의 결론은 Unity Netcode 계열을 바로 선택하기보다는, Photon Fusion을 중심으로 프로토타입을 진행해보는 것이다.

NGO는 GameObject 기반이라는 장점이 있지만 예측, 재시뮬레이션, 렉 보정 같은 기능이 부족하다. NGE는 그런 기능을 제공하지만 GameObject 중심 워크플로우와 거리가 있고, 포트폴리오 프로젝트에서 감당해야 할 학습 비용과 제약이 커 보인다.

Photon Fusion은 GameObject 기반 워크플로우를 유지하면서도 방 생성, 클라이언트 예측, 재시뮬레이션, 렉 보정 등을 제공하고, 일정 규모까지 무료로 사용할 수 있다. 그래서 지금 단계에서는 가장 현실적인 선택지로 보인다.

다음 단계에서는 Photon Fusion을 실제 프로젝트에 붙여보고, 작은 방을 만든 뒤 여러 플레이어가 입장해서 이동과 기본 상호작용이 안정적으로 동기화되는지 확인해볼 예정이다.