더 많은 빌드 방법
이러한 접근 방식은 일반적으로 더 느리고 Unreal Engine에 대한 더 깊은 이해가 필요합니다.
를 참조하세요 Unreal Engine Edgegap에서 Unreal Engine 게임 서버 호스팅을 처음 시작할 때.
더 고급 Unreal Engine 및 Edgegap 사용자를 위한 대체 빌드 방법을 살펴보세요:
더 많은 빌드 방법 는 지속적 통합에 적합한 빠르고 자동화된 방법입니다.
⚡ 플러그인으로 빌드 는 Unreal Engine을 소스에서 빌드해야 하는 기존 빌드 방법입니다.
⚡ 스크립트로 빌드
스크립트를 사용한 빌드는 지속적 통합에 적합한 빠르고 완전 자동화된 쉬운 방법입니다.
준비
시작하기 전에 반드시 Edgegap에 무료 계정을 생성하세요 (신용카드 불필요).
개발 머신에서 몇 가지 필수 항목을 구성하세요:
Docker Desktop(또는 Docker CLI) 설치
공식 소스에서 Docker Desktop을 설치하세요 (계정이 필요하지 않습니다).
설치를 완료한 후 컴퓨터를 다시 시작하세요.
GitHub에서 언리얼 엔진 리소스에 접근하기
다음 위치로 이동하세요 언리얼 엔진 연결된 계정 대시보드 페이지.
GitHub 계정을 에픽 계정에 연결하세요.
에픽 게임즈가 귀하의 GitHub 계정에 접근하도록 허용하세요.
GitHub에서 에픽 게임즈 조직에 가입하라는 이메일 초대를 수락하세요.
GitHub 개인 액세스 토큰(클래식) 생성
권한만 활성화
[read:packages],토큰 생성 - 이 값을 안전하게 보관하세요. 다시는 볼 수 없습니다.
1. 프로젝트 구성
Windows, Mac 또는 Linux 기기를 사용하든 상관없이, 당신은 서버를 Linux 런타임용으로 빌드해야 합니다., 대부분의 클라우드 제공업체(Edgegap 포함)가 현재 Linux에서 실행되기 때문입니다. 걱정하지 마세요, Linux 지식은 필요하지 않습니다.
☑️ Unreal Engine 버전 호환성 검사 비활성화 전용 서버용 및 설정 IpNetDriver 기본 드라이버 또는 대체 드라이버로 복제 네트워킹용:
확인하세요 입력하십시오 DefaultServerTarget 이 스니펫 끝에!
☑️ Unreal Engine 재시작 최신 변경 사항을 다시 불러오려면.
☑️ 전용 서버 타겟 스크립트 생성 다음을 복사하여 <PROJECT>Editor.Target.cs 프로젝트 루트 폴더의 파일을 복사하고 복사본의 이름을 <PROJECT>Server.Target.cs.
☑️ 다음에 대한 참조를 바꾸세요 단어 Editor 로 Server 서버 타겟 스크립트에서.
☑️ 서버 빌드 기본값 수정 서버 타겟 스크립트를 편집하여:
✅ 이제 다음 단계로 진행할 수 있습니다.
선택 사항: 스팀 통합
다음으로 스팀 통합사용하려면 IpNetDriver 를 기본 네트 드라이버로 설정하고 다음을 확인하세요 리눅스용 64비트 steamclient.so 파일이 이미지의 경로에 복사되어 있는지 /home/ubuntu/.steam/sdk64/ .
추가 steamclient.so 리눅스 라이브러리를 우리의 단일 클릭으로 도커 확장 기능을 사용해.
스팀 릴레이를 통해 패킷을 전송하여 연결 문제나 지연 급증을 일으킬 수 있으므로 스팀 네트워킹을 비활성화했는지 확인하세요. 이는 리더보드, 업적, 음성 기능 또는 스팀 스토어에 게임을 게시하는 등 다른 Steamworks 기능 사용을 막지 않습니다.
2. 빌드 및 게시
개발자 팀과 함께 작업하면 코드를 공유해야 합니다. 문제가 발생했을 때 듣고 싶은 마지막 말은 “내 환경에서는 잘 돼”일 것입니다. 게임 서버는 전 세계 수천 대의 서버 머신에서 안정적으로 실행되어야 합니다.
서버를 안정적으로 만들기 위해 Docker를 사용합니다 - 운영 체제 수준까지 서버 코드의 모든 종속성이 어디서 어떻게 서버가 시작되든 항상 정확히 동일하도록 보장하는 가상화 소프트웨어입니다.
시청을 권장합니다 "로컬에 설치하지 마세요" (비디오). Docker를 사용할 때 Dockerhub를 사용할 필요는 없습니다Docker ≠ Dockerhub. Docker를 프로그래밍 엔진으로 보고 Dockerhub를 앱 스토어로 생각하세요.
☑️ Docker가 설치되어 실행 중인지 확인하세요.
☑️ 저희 Edgegap Build Utils를 다운로드하세요 다음을 포함하여:
플랫폼별 빌드 스크립트:
BuildAndUpload.ps1Windows용,BuildAndUpload.shmacOS 및 Linux용,
Dockerfile- Docker 이미지 빌드를 위한 레시피,dockerignore- 빌드를 제거하고 속도를 높이기 위한 비핵심 파일 목록,StartServer.sh- 런타임에서 Unreal Engine 수명 주기를 관리하는 유틸리티 스크립트.
☑️ 다음을 이동하세요 edgegap-unreal-buildutils 폴더를 프로젝트 루트 디렉터리로.
☑️ 다음을 편집하세요 BuildAndUpload 스크립트를 플랫폼에 맞게 다음을 구성하기 위해:
Linux 서버용 사전 빌드된 Unreal Engine 이미지를 가져오는 데 사용되는 GitHub 자격 증명,
프로젝트 세부 정보 - 엔진 버전, 서버 구성, .uproject 파일 이름,
Edgegap 레지스트리 완료된 빌드를 업로드하는 데 사용되는 자격 증명.
☑️ 편집한 스크립트를 실행하세요 빌드 및 업로드 프로세스를 시작합니다. 이 단계를 완료하면 새 이미지가 다음에 추가됩니다 저장소의 Edgegap Container Registry 대시보드 페이지.
☑️ 자동으로 다음으로 리디렉션됩니다 새 항목을 생성하세요 앱 및 버전 에서 대시보드.
✅ 이제 다음 단계로 진행할 수 있습니다. 다음으로 건너뛰세요 더 많은 빌드 방법.
문제 해결 및 FAQ
오류: Build 함수를 실행하지 못했습니다: Dockerfile은 비어 있을 수 없습니다
일부 플러그인 소스가 누락되었을 수 있습니다
Dockerfile및/또는StartServer.sh, GitHub의 플러그인 소스 버전에서 이 파일들의 복사본을 로컬 플러그인으로 가져오세요.
open //./pipe/dockerDesktopLinuxEngine: 시스템에서 지정된 파일을 찾을 수 없습니다.
개발 머신에서 Docker가 실행 중인지 확인하세요.
잘못된 참조 형식 EdgegapLog: 경고: OnContainerizeCallback: 컨테이너를 생성할 수 없습니다. 메시지: 실패
애플리케이션 이름이 설정되어 있고 끝에 공백이 포함되어 있지 않은지 확인하세요.
편집을 마쳤을 때 Enter 키를 눌러 입력 값을 확인하세요.
프로젝트를 빌드할 때 대상 'ProjectName'에 대한 대상 규칙 파일을 찾을 수 없습니까?
다음에서 빌드 구성을 변경하세요
XYZServerTarget.cs파일:
403 금지됨, 컨테이너를 푸시할 수 없습니다. 메시지: 실패
Docker 자격 증명이 올바르게 설정되어 있는지 확인하세요.
Edgegap Container Registry를 사용하는 경우, 사용자 이름에
app-version-pull이 포함되지 않도록 하세요. 이는 이미지를 가져오기만 허용하는 프로필입니다. 대신 프로필은 계정 이메일과 비슷해야 합니다.계정의 Container Registry에 충분한 여유 공간이 있는지 확인하세요. 다음을 시도해 보는 것을 권장합니다. 더 많은 빌드 방법, 그리고 오래된 이미지를 삭제하기 위해 API를 사용하는 것. 이미지는 삭제될 때까지 백업용으로 로컬 머신에 저장됩니다.
⚡ 플러그인으로 빌드
저희 기존 플러그인에는 고급 유틸리티가 포함되어 있으며, Unreal Engine을 소스에서 빌드해야 합니다.
준비
시작하기 전에 반드시 Edgegap에 무료 계정을 생성하세요 (신용카드 불필요).
개발 머신에서 몇 가지 필수 항목을 구성하세요:
Docker Desktop(또는 Docker CLI) 설치
공식 소스에서 Docker Desktop을 설치하세요 (계정이 필요하지 않습니다).
설치를 완료한 후 컴퓨터를 다시 시작하세요.
GitHub에서 언리얼 엔진 리소스에 접근하기
다음 위치로 이동하세요 언리얼 엔진 연결된 계정 대시보드 페이지.
GitHub 계정을 에픽 계정에 연결하세요.
에픽 게임즈가 귀하의 GitHub 계정에 접근하도록 허용하세요.
GitHub에서 에픽 게임즈 조직에 가입하라는 이메일 초대를 수락하세요.
1. 프로젝트 구성
Windows, Mac 또는 Linux 기기를 사용하든 상관없이, 당신은 서버를 Linux 런타임용으로 빌드해야 합니다., 대부분의 클라우드 제공업체(Edgegap 포함)가 현재 Linux에서 실행되기 때문입니다. 걱정하지 마세요, Linux 지식은 필요하지 않습니다.
☑️ Unreal Engine 버전을 소스에서 빌드하세요 개발 머신에서,
설치하세요 특정 릴리스 브랜치(예:
5.5) 안정적인 기반 위에서 빌드하려면,솔리드 스테이트 드라이브(SSD)를 사용하세요 빌드 속도를 높이기 위해(~12시간 이상에서 ~2시간 이상으로),
이는 처음 한 번만 필요하며, Unreal Engine 버전을 업그레이드할 때마다 필요합니다.
git 클라이언트로 브랜치를 다운로드하세요! GitHub UI를 사용하면 항상 불안정한 릴리스 브랜치가 다운로드됩니다.
☑️ Unreal 크로스 컴파일 도구 체인 설치 Linux용 게임 서버를 빌드하기 위해.
☑️ 개발 머신을 다시 시작하세요, 그렇지 않으면 나중에 오류가 발생합니다!
☑️ Unreal Engine 버전 호환성 검사 비활성화 전용 서버용 및 설정 IpNetDriver 기본 드라이버 또는 대체 드라이버로 복제 네트워킹용:
확인하세요 입력하십시오 DefaultServerTarget 이 스니펫 끝에!
☑️ Unreal Engine 재시작 최신 변경 사항을 다시 불러오려면.
☑️ 전용 서버 타겟 스크립트 생성 다음을 복사하여 <PROJECT>Editor.Target.cs 프로젝트 루트 폴더의 파일을 복사하고 복사본의 이름을 <PROJECT>Server.Target.cs.
☑️ 다음에 대한 참조를 바꾸세요 단어 Editor 로 Server 서버 타겟 스크립트에서.
☑️ 서버 빌드 기본값 수정 서버 타겟 스크립트를 편집하여:
✅ 이제 다음 단계로 진행할 수 있습니다.
선택 사항: 스팀 통합
다음으로 스팀 통합사용하려면 IpNetDriver 를 기본 네트 드라이버로 설정하고 다음을 확인하세요 리눅스용 64비트 steamclient.so 파일이 이미지의 경로에 복사되어 있는지 /home/ubuntu/.steam/sdk64/ .
추가 steamclient.so 리눅스 라이브러리를 우리의 단일 클릭으로 도커 확장 기능을 사용해.
스팀 릴레이를 통해 패킷을 전송하여 연결 문제나 지연 급증을 일으킬 수 있으므로 스팀 네트워킹을 비활성화했는지 확인하세요. 이는 리더보드, 업적, 음성 기능 또는 스팀 스토어에 게임을 게시하는 등 다른 Steamworks 기능 사용을 막지 않습니다.
2. 빌드 및 게시
개발자 팀과 함께 작업하면 코드를 공유해야 합니다. 문제가 발생했을 때 듣고 싶은 마지막 말은 “내 환경에서는 잘 돼”일 것입니다. 게임 서버는 전 세계 수천 대의 서버 머신에서 안정적으로 실행되어야 합니다.
서버를 안정적으로 만들기 위해 Docker를 사용합니다 - 운영 체제 수준까지 서버 코드의 모든 종속성이 어디서 어떻게 서버가 시작되든 항상 정확히 동일하도록 보장하는 가상화 소프트웨어입니다.
시청을 권장합니다 "로컬에 설치하지 마세요" (비디오). Docker를 사용할 때 Dockerhub를 사용할 필요는 없습니다Docker ≠ Dockerhub. Docker를 프로그래밍 엔진으로 보고 Dockerhub를 앱 스토어로 생각하세요.
☑️ Docker가 설치되어 실행 중인지 확인하세요.
☑️ 저희 플러그인을 다시 빌드하세요 소스에서 빌드한 사용자 지정 Unreal Engine 버전에 맞게.
☑️ 컴파일된 플러그인을 복사하세요 다음으로 Plugins 폴더 Unreal 프로젝트의 루트에 있는 (엔진이 아닙니다).
☑️ 새 Unreal Engine을 실행하세요 Visual Studio에서 실행하고 툴바 항목 Edit / Plugins를 여세요.
☑️ 플러그인을 활성화하세요 섹션에서 INSTALLED / Other.
☑️ 플러그인을 구성하세요 툴바 항목을 열어 Edit / Project Settings / Edgegap:
입력 값을 편집한 후에는 항상 Enter 키를 눌러 올바르게 저장되도록 하세요.
API 토큰 은 Edgegap에 서버를 업로드하는 데 필요하며, Get Token을 클릭하여 받을 수 있습니다.
애플리케이션 이름 Edgegap의 항목 이름은 프로젝트 이름과 같게 하거나 사용자 지정할 수 있으며, 소문자, 숫자 또는 대시 문자만 사용해야 합니다
-그리고 밑줄_.이미지 경로 는 Edgegap에서 게임 서버용 사용자 지정 아이콘을 선택적으로 제공합니다. 지금은 건너뛰세요.
버전 이름 은 클라이언트/서버 호환성을 추적하고 문제가 있을 때 롤백하는 데 유용합니다.
타임스탬프는 앱 버전 이름으로 훌륭한 선택입니다. 예:
2024.01.30-16.50.20-UTC.여러 애플리케이션 버전이 동일한 이미지 태그를 가리킬 수 있습니다. 예:
v1.1.0및dev.자세히 알아보기 앱 및 버전 는 나중에.
다음을 재사용하지 마세요 최신 버전 시스템이 오래된(캐시된) 이미지를 배포하지 않도록 하기 위해.
☑️ 클릭하세요 애플리케이션 생성. 이 단계를 완료하면 다음이 생성됩니다 새 애플리케이션이 표시됩니다 에서 Edgegap 대시보드.
☑️ 지금은 사용자 지정 컨테이너 레지스트리 설정을 건너뛰세요. 나중에 원하시면 타사 레지스트리를 사용할 수 있습니다.
☑️ 구성이 마음에 들면 빌드 및 푸시, 프로세스가 끝날 때까지 기다린 후 Unreal 콘솔에 새로운 오류가 없는지 확인하세요. 이 단계를 완료하면 다음이 생성됩니다 프로젝트 루트에 새 폴더가 생성됩니다 - Saved/LinuxServer. 또한 새 이미지가 이제 다음에 표시됩니다 저장소 아래의 Edgegap Container Registry 대시보드 페이지, 그리고 새 앱 및 버전 다음에 표시됩니다 애플리케이션 아래의 대시보드.
☑️ 새 애플리케이션 버전에서 환경 변수 TARGET_FILE_NAME 을 다음과 일치하도록 설정하세요 DefaultServerTarget 이전 단계의 값 더 많은 빌드 방법.
✅ 이제 다음 단계로 진행할 수 있습니다.
문제 해결 및 FAQ
오류: Build 함수를 실행하지 못했습니다: Dockerfile은 비어 있을 수 없습니다
일부 플러그인 소스가 누락되었을 수 있습니다
Dockerfile및/또는StartServer.sh, GitHub의 플러그인 소스 버전에서 이 파일들의 복사본을 로컬 플러그인으로 가져오세요.
open //./pipe/dockerDesktopLinuxEngine: 시스템에서 지정된 파일을 찾을 수 없습니다.
개발 머신에서 Docker가 실행 중인지 확인하세요.
잘못된 참조 형식 EdgegapLog: 경고: OnContainerizeCallback: 컨테이너를 생성할 수 없습니다. 메시지: 실패
애플리케이션 이름이 설정되어 있고 끝에 공백이 포함되어 있지 않은지 확인하세요.
편집을 마쳤을 때 Enter 키를 눌러 입력 값을 확인하세요.
프로젝트를 빌드할 때 대상 'ProjectName'에 대한 대상 규칙 파일을 찾을 수 없습니까?
다음에서 빌드 구성을 변경하세요
XYZServerTarget.cs파일:
403 금지됨, 컨테이너를 푸시할 수 없습니다. 메시지: 실패
Docker 자격 증명이 올바르게 설정되어 있는지 확인하세요.
Edgegap Container Registry를 사용하는 경우, 사용자 이름에
app-version-pull이 포함되지 않도록 하세요. 이는 이미지를 가져오기만 허용하는 프로필입니다. 대신 프로필은 계정 이메일과 비슷해야 합니다.계정의 Container Registry에 충분한 여유 공간이 있는지 확인하세요. 다음을 시도해 보는 것을 권장합니다. 더 많은 빌드 방법, 그리고 오래된 이미지를 삭제하기 위해 API를 사용하는 것. 이미지는 삭제될 때까지 백업용으로 로컬 머신에 저장됩니다.
👉 다음 단계
다음으로 계속 Unreal Engine 저희의 대시보드 배포 기능을 사용하고 배포 중지, 주입된 변수와 매개변수화, 서버 검색 가능성에 대해 더 알아보세요.
마지막 업데이트
도움이 되었나요?

