4. 서버 구축을 위한 삽질

개발 일지|2024. 9. 2. 23:01

서버구축.. 쉽지않다.

 

원래는 호스트를 맡은 클라이언트에게 리슨 서버를 짬때려서 데디케이트 서버를 클라우드나 내 로컬에 띄워놓는 비용을 줄이고 싶었다.

그래서 방법을 알아봤는데, 호스트 유저의 고정 IP 사용, 포트포워딩, NAT우회 같은 이슈가 발생했다.

내가 기술적으로 추후 사용할 유저가 이런 문제에 대해 아예 신경쓰지 않고 플레이 하도록 코드를 작성해놓고 배포하는건 쉽지 않을것 같았다.

 

그래서 배포계획도 없고 만약 배포한다 해도 몇명이나 쓸까 싶은 내 프로젝트에는 비용을 아끼기위한 꼼수보다 이미 많은 게임들이 사용하고 있는 방식으로 연습하는 셈 치고 구현하는게 맞는것 같아서 데디케이트 서버를 구축해서 개발하기로 결정했다.

 

하지만 데디케이트 서버를 만들기 위해 서버용 UE5 에디터 환경을 만드는것도 쉽지않았다.

 

토목공사를 삽질로만 만들어준 고마운 분

https://velog.io/@singery00/UE5-Dedicate-%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95

 

[UE5] 🌐 Dedicated 서버 구축

🌐 Dedicated 서버를 구축하고 멀티 플레이 게임을 만들어보자.

velog.io

 

 

 

우선 깃헙의 에픽게임즈 -> 언리얼엔진으로 들어가 계정을 연결한다.

https://www.unrealengine.com/ko/ue-on-github

공식 페이지에 잘 정리되어있다.

 

그리고 release 페이지를 확인하는데, 버전이 정확하게 일치해야한다.

나같은경우 5.3.2를 써서 개발하는 중인데, 5.3도 되겠지? 하는 안일한 마인드로 처음부터 다시 했다.

굉장히 오래 걸리는 과정이기 때문에 버전 잘못되서 기존 프로젝트 못열면 기분이 상당히 안좋다..

왼쪽 상단 릴리즈 대신 우측의 릴리즈 페이지로 들어가서 정확한 버전을 체크하자.

 

zip파일을 다운받고 압축 해제 -> setup.bat 파일 실행 (좀 오래걸림. 씻고 저녁 만들어서 먹고 설거지 하고 오면 대충 다 된다.) -> generateprojectfiles.bat 실행 (이건 금방함) 까지 하면 UE5.sln이라고 프로젝트 파일이 생긴다. 이거 열자.

솔루션 Development Editor, Win64 맞는지 확인

 

UE5를 빌드 해보자. (진짜진짜 오래걸림)

나는 거의 8시간 걸렸다.

 

빌드가 다되면 UE5를 시작프로젝트로 설정하고 ctrl+f5로 실행해준다.

 

셰이더 컴파일도 오래걸린다. 체감상 한 30분?

에디터가 잘 열리면 이제부터 이걸로 개발해야한다.

 

아 에픽게임즈 런처에서 다운받은 언리얼 엔진으로는 데디케이트 서버 구축이 안된다고 한다.

깃헙에서 다운받은 엔진으로만 한다고 한다.

에픽게임즈 런처에서 다운받은 언리얼 엔진과 깃허브에서 다운받은 언리얼 엔진은 버전 숫자는 같아도 내부 API같은게 조금씩 다를수 있어 서로 호환이 안될수도 있다고 한다.

어이가 없네...

그래서 런처에서 다운받은 엔진으로 개발했던 프로젝트가 깃헙에서 다운받은 엔진으로는 안열렸던것.

 

요새 날이 좀 시원해졌는데 머리가 뜨거워진다.

 

대충 해결한것 같다.

에픽게임즈 런처에서 다운받았던 에디터로 개발한 프로젝트는 살린것 같다.

먼저 지형을 그려주는 브러시를 플러그인으로 다운받아 썻었는데 그 플러그인을 지우고 그 플러그인으로 생성했던 더미맵도 지웠다.

그리고 프로젝트 폴더의 Binary 폴더와 immediate 폴더를 지웠다.

 

그다음 일반적인 데디케이트 서버 구축의 과정을 진행했다.

1. source 폴더의 Target.cs 파일을 복붙해 프로젝트명Server.Target.cs로 고쳐주고 vs를 킨다.

2. 프로젝트에 복붙한 파일 추가해주고 내부 프로젝트 이름으로 된 클래스 이름 같은것들을 프로젝트ServerTarget으로 수정해준다.

요런느낌

3. 저장해주고 uproject 우클릭해서 언리얼 엔진 버전을 깃헙에서 받은 엔진으로 설정해준다.

4. uprojecct 파일 우클릭해서 generate visual studio project files 실행해준다.

5. Development Editor, Win64 설정으로 프로젝트 빌드 한번 해준다.

6. Development Server, Win64 설정으로 프로젝트 빌드 한번 해준다.

 

이렇게 하니 정상적으로 열린다.

이제 멀티플레이를 위해 세션 생성, 세션 참가 같은걸 만들어 보자.

'개발 일지' 카테고리의 다른 글

6. UMG 디자인  (0) 2024.11.09
5. 멀티플레이 개발  (0) 2024.11.08
3. 플레이어 랜덤 스폰 구현  (0) 2024.08.31
2. 움직이는 플레이어 캐릭터 만들기  (0) 2024.08.26
1. 메인메뉴 구성  (0) 2024.08.26

댓글()