Tempo
활용 사례

서바이버라이크

뱀서라이크(Vampire Survivors·Survivor.io·Archero) — AI 디렉터로 웨이브 강약을 자동 조절.

왜 잘 맞나: 이 장르는 사실상 Left 4 Dead 의 'AI 디렉터'를 그대로 쓰는 곳입니다. Tempo 의 긴장도 → 디렉터 → 월드 한 바퀴가 곧 '몰아치기 ↔ 숨 돌리기' 리듬입니다.

부품 매핑

Tempo서바이버라이크에서
TensionModel.Current적 스폰 밀도·난이도 게이지
SampleThreat화면 안 적 수 + 보스 근접도
SampleAround바닥 장판(독·불·전기장) 위험도
DirectorBrain 국면소강(BuildUp) → 러시/엘리트(Peak) → 숨 돌리기(Relax)
SeedActionSpawnSwarm · SpawnElite · OpenHazardZone · DropHealing
WorldReaction불바다·독구름 장판이 격자로 번짐(기본 기능 그대로)
안전장치 상한동시 적/장판 수 상한 = 모바일 발열·배터리·프레임 방어

흐름

쌓기에선 적을 줄이고 회복/아이템을 흘려 한숨 돌리게 하고, 긴장도가 낮게 깔리면 곧 러시가 옵니다. 터짐에선 엘리트 웨이브 + 바닥 장판을 동시에 깔아 화면을 조입니다. 단, 전조(웨이브 경고 링, 땅이 붉게 달아오름)를 반드시 먼저 보여줘야 '갑자기 죽었다' 가 안 됩니다.

public sealed class SurvivorDirector : DirectorBrain
{
    protected override IReadOnlyList<SeedAction> ActionPool => _actions;
    protected override int MaxActiveEvents => 60; // 모바일: 동시 위험 상한으로 발열 방어

    // 화면 안 적 수와 보스 근접으로 위협을 만든다.
    public sealed class WaveTension : TensionModel
    {
        public int OnScreenEnemies; public float BossProximity;
        protected override float SampleThreat(Vector3 p)
            => Mathf.Clamp01(OnScreenEnemies / 40f) * 0.7f + BossProximity * 0.3f;
    }
}

SpawnSwarm/SpawnElite 는 적을 직접 만드는 게 아니라 스폰 조건(스폰 게이트 열기)을 깔고, 실제 풀링·배치는 게임의 스폰 시스템이 받습니다. 디렉터는 '언제·얼마나' 만 정합니다.

모바일 체크포인트

  • 상한이 곧 성능 예산. MaxActiveEvents·동시 적 수로 저사양 기기 프레임을 지킵니다.
  • 세션이 짧다. 국면 주기를 1~2분대로 짧게 잡아 한 판 안에 쌓기→터짐→쉬기가 여러 번 돌게.
  • 전조는 크게. 작은 화면에선 경고가 묻히기 쉬우니 링·화면 가장자리 붉힘으로 분명히.

목차