Slay the Spire 2, 예측 가능한 난수 생성의 비밀 파헤치기
Slay the Spire 2에서 예측 가능한 난수 생성(Correlated Randomness) 문제가 발견되어 게임 밸런스에 영향을 미치고 있음
C#의 `System.Random` 클래스 선형성(Linearity)으로 인해 여러 난수 생성기(RNG) 간 상관관계가 발생하며, 이는 의도치 않은 결과 초래
Rebound 카드 획득 불가 등 게임 내 특정 이벤트 및 아이템 획득 확률 왜곡이 커뮤니티에서 논란 중
개발팀의 빠른 RNG 알고리즘 개선 및 패치가 필요하다는 의견이 지배적임
C# System.Random의 선형성(Linearity)과 CRNG 발생 원인
본문에서는 C#의 `System.Random` 클래스가 사용하는 선형 합동 생성기(Linear Congruential Generator, LCG)의 근본적인 문제점을 지적합니다. 각기 다른 시드(seed)로 초기화된 여러 RNG 인스턴스 간에도 시드 값의 고정된 차이(Fixed Offset)로 인해 출력 값 사이에 예측 가능한 상관관계가 발생한다고 설명합니다. 이는 게임 내 다양한 이벤트에서 발생하는 난수 결과에 영향을 미쳐, 플레이어가 특정 패턴을 파악하면 미래의 결과를 예측할 수 있게 만듭니다. 특히, `seed + hash(...)` 형태로 시드를 생성하는 방식이 이러한 선형성을 증폭시키는 요인으로 작용합니다.
게임 플레이에 미치는 구체적인 영향 분석
상관관계 있는 난수 생성(CRNG)은 'Slay the Spire 2'의 게임 밸런스에 직접적인 영향을 미칩니다. 예를 들어, 'Neow's Bones' 선택 시 특정 저주(Curse)의 출현 확률이 비정상적으로 높아지거나, 'Trash Heap' 이벤트에서는 'Rebound' 카드를 획득하는 것이 불가능하다는 사실이 밝혀졌습니다. 또한, 첫 전투에서의 물약(Potion) 드롭 확률이나 특정 유물(Relic)의 희귀도 분포 역시 예측 가능한 패턴을 보입니다. 이러한 현상은 플레이어들이 게임의 무작위성에 대한 직관과 다른 결과를 경험하게 만들며, 심지어 게임의 컴필레이션(Compendium) 완료를 불가능하게 만들 수도 있습니다.
개발자 커뮤니티의 반응 및 해결 방안 논의
커뮤니티에서는 이 문제가 게임의 핵심 메커니즘에 대한 신뢰도를 떨어뜨릴 수 있다는 우려를 표합니다. 일부 사용자는 'Slay the Spire 1'에서도 유사한 문제가 보고되었음에도 해결되지 않은 점을 지적하며 개발팀의 조치에 대한 기대와 회의론을 동시에 보입니다. 해결 방안으로는 `System.Random` 대신 PCG32(Permuted Congruential Generator)와 같은 비선형 PRNG(Pseudorandom Number Generator)로 교체하거나, 암호학적 해시 함수(Cryptographic Hash Function)를 사용하는 방안이 제시되었습니다. 이는 플랫폼 간 시드 호환성 문제까지 해결할 수 있는 장점이 있다고 언급됩니다.
Hyrum's Law와 PRNG의 안정성 문제
한 사용자는 Hyrum's Law를 언급하며, 한번 공개된 난수 생성기의 동작 방식은 API처럼 간주되어 변경이 어렵다는 점을 지적합니다. 이는 `System.Random`이 시드(seed)를 허용하는 한, 향후 구현 변경 시 기존 게임과의 호환성 문제가 발생할 수 있음을 시사합니다. 따라서 사용자가 시드를 지정할 수 없도록 하여 내부 구현을 자유롭게 개선할 수 있도록 하는 것이 장기적으로 더 나은 접근 방식일 수 있다는 의견이 제시되었습니다. 이는 게임 개발 시 난수 생성기의 선택과 관리에 대한 중요한 고려 사항을 보여줍니다.
상관관계 있는 난수(Correlated RNG)의 게임 디자인적 활용 가능성
일부에서는 의도치 않은 상관관계가 오히려 게임에 새로운 탐험 요소나 고차원적 플레이(High-level Techs)를 제공할 수 있다는 관점을 제시합니다. 'Hades 1'이나 'Super Mario Bros. 3'의 스피드러닝 사례처럼, 플레이어가 RNG 패턴을 이해하고 조작하여 특정 결과를 유도하는 것이 게임의 스킬 캡(Skill Cap)을 높일 수 있다는 주장입니다. 비록 'Slay the Spire 2'의 경우는 의도되지 않은 버그이지만, 이러한 '숨겨진 메커니즘'으로서의 RNG 조작 가능성은 게임 디자인에 대한 흥미로운 통찰을 제공합니다.