내배캠_Unreal10기

[TIL] 내일배움캠프 Unreal 10기 베이스캠프 5일차

devdiary-sj 2026. 6. 15. 17:28

TIL: Unreal Engine 시드 기반 맵 생성

오늘은 Unreal Engine에서 시드 기반 맵 생성의 기본 원리에 대해 개인적으로 학습했습니다.

 

시드 기반 생성이란 무작위처럼 보이는 결과를 특정 시작값인 Seed를 기준으로 재현 가능하게 만드는 방식입니다. 일반적인 랜덤 함수는 실행할 때마다 결과가 달라지지만, RandomStream을 사용하면 같은 시드에서 같은 순서의 난수 결과를 얻을 수 있습니다.

 

간단한 예시로, Seed 값을 12345로 설정하고 RandomStream을 만든 뒤, 반복문을 통해 10개의 방 타입을 생성할 수 있습니다. 각 반복마다 Random Integer in Range from Stream을 사용해 0부터 3 사이의 값을 뽑고, 해당 값에 따라 전투 방, 엘리트 방, 상점, 이벤트 방으로 나눌 수 있습니다.

 

이 방식의 핵심은 같은 시드와 같은 호출 순서를 유지하면 항상 같은 맵 구조가 생성된다는 점입니다. 따라서 로그라이크 게임에서 맵 구조, 방 배치, 적 배치, 아이템 보상 등을 재현 가능하게 만들 때 유용합니다.

 

주의할 점은 일반 랜덤 노드가 아니라 반드시 Stream 기반 랜덤 노드를 사용해야 한다는 것입니다. 또한 같은 시드라도 난수를 호출하는 순서가 달라지면 이후 결과도 달라질 수 있으므로, 맵 생성용 RandomStream과 전투용 RandomStream을 분리하는 방식도 고려할 수 있습니다.

 

이번 학습을 통해 시드는 랜덤 결과 자체가 아니라, 랜덤 결과를 재현하기 위한 시작값이라는 점을 이해했습니다.