TIL_078 : 프로젝트 패키징, 스택 메모리

김펭귄·2025년 12월 10일

Today What I Learned (TIL)

목록 보기
78/113

오늘 학습 키워드

  • 프로젝트 패키징

  • 스택 메모리

1. 프로젝트 패키징

  • 다른 사람도 내 게임을 하려면, 패키징이 필요

  • 게임 패키지 = 실행 파일 + 변환된 컨텐츠 에셋 아래 사진처럼, 실행파일과 엔진, 다른 파일들이 같이 있게 패키징해야함

  • 패키징에 여유 저장공간으로 500GB는 필요, Storgae를 :C같은 하나의 파티션에서 해야 에러 안 남.

  • 먼저 에픽계정과 깃허브 계정을 연동해야함

  • 에픽 깃허브
    여기서 현재 엔진버젼으로 code를 zip으로 다운받기

  • Windows SDK 여기서도 SDK 다운받고 해주기

  • visual studio installer에서도 아래와 같이 다운받기

  • visual studio 개별구성요소에서도 체크한 빌드 도구 다운
    (5.5.4버젼 기준이고, 만약 다른 버젼이라면 구글링해서 다른 빌드 도구 다운해야함)

  • 다운받은 엔진 소스코드 폴더에서 Setup.bat를 관리자로 실행하기.
    끝나면 GenerateProjectFiles.bat 파일도 관리자로 실행하기

  • UE5.sln 솔루션 파일 열고, UE5를 시작프로젝트로 설정 후, 아래 사진처럼 설정하고 빌드하기

  • 빌드 끝나면, 패키징 할 프로젝트에서 필수파일 빼고 지우고 .uproject 우클릭해서 엔진 버젼을 다운받았던 source build로 바꾸기

4개 빼고 다 지우기
  • 그리고 패키징 할 프로젝트의 솔루션 들어가 해당 프로젝트를 시작프로젝트로 하고, 아래처럼 똑같이 다시 하고 프로젝트 실행하기

  • source파일에 있는 프로젝트명Editor.Target.cs 복사하여 프로젝트명Client.Target.cs, 프로젝트명Server.Target.cs 2개를 생성

  • -Server.Target.cs 파일 열어서 “Editor”라는 글자를 모두 “Server”로 변경,
    -Client.Target.cs 파일 열어서 “Editor”라는 글자를 모두 “Client”로 변경 후 저장

  • 빌드 후, 프로젝트 세팅에서 List of maps to ... 검색 후 아래 그림처럼 게임에서 사용할 모든 맵들을 copy objectpath로 포함시키기
    (\Game으로 시작하고 마지막을 레벨명으로 끝나게 해야함)

  • Tools에서 Project Launcher 키고, 아래 사진처럼 먼저 클라이언트 패키징
    (Show Advanced 버튼 좌측 Default Build Target이 보이면 DedicatedClient로 지정. 안보이면 스킵.)
    (에러나면, 불필요한 파일 다 지우고 Generate 다시 하고 빌드 다시 해서 해보기)

  • Saved\StagedBuilds\WindowsClient로 패키징 된 것 존재.
    .exe파일 바로가기로 새로 만들고, 속성-대상 뒤에다가 -windowed resx=800 resy=600 추가하면 창화면으로 실행됨 (한 칸 뛰고 적기)

  • 서버는 아래와 같이 하고 똑같이 패키징 시작

  • Saved\StagedBuilds\WindowsServer로 패키징 된 것 존재. 똑같이 바로가기 만들고, 속성-대상 뒤에다가 (LevelName)?listen -log 추가 (한 칸 뛰고 적기)

  • 서버 실행하면, pNetDriver listening on port XXXX로 포트번호 등장. 클라에서 이 포트번호로 접속하면 된다.

  • 클라버젼을 다른 사람할테 줄때는 패키징했던 WindowsClient 폴더 전체를 주고, 해당 폴더에서 .exe파일이나 바로가기를 켜서 실행하면 된다

2. 스택 메모리

  • 스택 메모리에는 아래의 정보들이 사용됨
    1. 함수 매개변수
    2. 함수 지역변수
    3. 함수 리턴값(크기가 클 경우)
    4. 함수 종료 후 다시 돌아가야하는 PC값
      (PC값 저장하는 레지스터는 하나라서 돌아가야하는 위치를 스택에 따로 저장해야함)
profile
반갑습니다

0개의 댓글