Precompiled Script

Script를 실행 시 파일을 분석 시간을 줄이기 위해 캐싱 진행

ProjectName.exe -as-generate-precompiled-data

-> ProjectName/Script/PrecompiledScript.Cache

이 Cache를 배포 파일에 포함하면 게임이 .as 파일을 다시 분석하지 않고 미리 생성된 Script 데이터를 사용한다.

주의 사항

  • Cache는 생성한 실행 파일과 호환되어야 함
  • 실행 파일을 다시 빌드하면 Cache도 다시 생성해야 함
  • Cache 사용 중에는 Script Hot Reload가 동작하지 않음
  • .as를 수정해도 기존 Cache가 있으면 변경 내용이 반영되지 않을 수 있음
  • 개발 중에는 -as-development-mode로 Cache를 무시할 수 있음

일반 패키징

Precompiled Script를 사용하지 않으면 패키징된 게임이 시작할 때 프로젝트의 Script 폴더에 있는 .as 파일을 읽고 분석·컴파일해야 한다.

  • Script/ 폴더가 패키징 결과에 포함되어야 함
  • Script 컴파일 오류가 없어야 함
  • Script가 사용하는 C++ 클래스와 함수가 최종 바이너리에 존재해야 함
  • 필요한 플러그인과 모듈이 함께 패키징되어야 함

AngelScript의 일반적인 방식은 패키징 시 Script를 C++처럼 별도 실행 파일로 변환하는 것이 아니라, 게임 실행 시 Script를 로드하는 구조.

패키징 전에 다음 명령으로 Cooked 환경을 흉내 내 Script를 검사할 수 있음

UnrealEditor-Cmd.exe MyProject.uproject -as-simulate-cooked -run=AngelscriptTest

Dedicated Server 패키징

멀티플레이 서버 로직을 AngelScript로 작성한다면 별도로 확인한다.

  • Dedicated Server 실행 파일 생성
  • 서버 패키지에 AngelScript Plugin 포함
  • 서버가 필요한 Script/ 파일 포함
  • 서버에서 사용 가능한 C++ 모듈만 참조
  • 서버에서 맵과 데이터 Asset이 정상적으로 로드되는지 확인
  • Client와 Server의 RPC 및 Replication 확인
  • 실제 패키징된 Client와 Server 접속 테스트

AngelScript에서도 Server, Client, NetMulticast RPC와 Replicated 프로퍼티를 사용할 수 있습니다. Actor의 복제 설정과 RPC 신뢰성 설정까지 함께 확인해야 합니다.

JIT 코드 패키징

Precompiled Cache 외에 AS_JITTED_CODE를 생성해 AngelScript를 C++ 코드 형태로 포함할 수도 있다.

  1. 실행 파일로 Precompiled Data 생성
  2. 생성된 AS_JITTED_CODE/를 프로젝트 소스에 포함
  3. Build.csAngelscriptCode 모듈 의존성 추가
  4. 게임 실행 파일 재빌드
  5. 새 실행 파일 기준으로 Cache 재생성

프로젝트 구성

개발 단계
  UnrealEditor
  Script 직접 로드
  Hot Reload 사용

통합 테스트
  Development 패키지
  Client/Server 실제 실행
  -as-simulate-cooked 검사

배포 단계
  Shipping Client
  Shipping Dedicated Server
  PrecompiledScript.Cache
  필요 시 AS_JITTED_CODE
반응형

'TIL' 카테고리의 다른 글

Angel Script 기반 간단한 멀티플레이 게임 만들기  (0) 2026.08.12
Angel Script을 이용한 서버 로직 분리  (0) 2026.08.07
UE Angel Script 문법  (0) 2026.08.05
Unreal Engine Angel Script  (0) 2026.08.03
UE NetRole  (0) 2026.07.31