Post

[Project OnlyOne] Listen Server를 활용한 테스트 환경 구축

해당 프로젝트는 Dedicated Server를 사용할 것이기 때문에, 테스트가 필요할 때 마다 패키징을 해야 했습니다. 자동화된 패키징 환경이 구축되어 있지 않기 때문에 생산성에 큰 문제를 야기했습니다.

[Project OnlyOne] Listen Server를 활용한 테스트 환경 구축

해당 프로젝트는 Dedicated Server를 사용할 것이기 때문에, 테스트가 필요할 때 마다 패키징을 해야 했습니다. 자동화된 패키징 환경이 구축되어 있지 않기 때문에 생산성에 큰 문제를 야기했습니다. 따라서, 프로젝트의 원활한 테스트를 위한 환경을 Listen Server로 구축하였습니다.

주요 구현 내용

UI 구조 변경

  • POMainMenuWidget: 메인 메뉴에 “Host Server” 버튼이 추가됨
  • POHostServerWidget: 서버 호스팅을 위한 새로운 UI 위젯 생성
  • 사용자명 입력을 위한 EditableTextBox 컴포넌트 포함

컨트롤러 기능 확장

  • APOMainMenuPlayerController에 다음 기능들이 추가됨:
  • ShowHostServer(): 호스트 서버 UI를 표시하는 함수
  • OnHostServer(): 실제 서버 호스팅 로직을 처리하는 함수
  • FJoinServerData 구조체를 통한 서버 정보 관리

구현 방식

  • UI 플로우: MainMenu → HostServerWidget → 사용자명 입력 → 호스팅 시작
  • 레벨 전환: UGameplayStatics::OpenLevel을 통해 “listen” 옵션으로 서버 로비 레벨로 이동
  • 프로필 관리: GameInstance에 사용자 정보 저장

마치며

아직 네트워크 실패 처리나, 서버 설정 옵션이 제한적인 부분이 있습니다. 그 부분을 좀 더 보완하도록 노력해야 겠습니다.

This post is licensed under CC BY 4.0 by the author.