로블록스 공포 게임 제작: 몬스터 추적 AI, 점프스케어 스크립트 & 공포 연출

DopaBrain 게임 개발 연구팀 • 업데이트: 2026년 9월 • 읽는 시간: 8분

빠른 인지 및 스트레스 테스트

도어즈(Doors), 프레셔(Pressure), 더 미믹(The Mimic)에 이르기까지, 공포 장르는 현재 로블록스에서 가장 높은 유저 몰입도와 바이럴 파급력을 자랑하는 핵심 분야입니다. 로블록스 엔진은 인디 스탠드얼론 호러 게임을 능가하는 고품질의 심리적 서스펜스를 완벽히 구현해 냅니다.

하지만 플레이어의 뇌리에 각인되는 공포를 만들려면 단순한 괴성이나 어두운 복장만으로는 부족합니다. 정교한 길찾기(PathfindingService) 인공지능, 레이캐스팅 기반 시야 탐지, 심리적 긴장감을 고조시키는 Future 라이팅과 안개 설정, 박진감 넘치는 점프스케어 카메라 연출이 필수적입니다. 2026년 최신 개발 비결을 코드로 확인하세요.

1. 공포 분위기 연출: Future 라이팅과 입체 안개(Fog)

시각적 분위기는 공포 게임 몰입도의 70%를 결정합니다:

2. 끈질긴 추적 몬스터 AI 코딩 (PathfindingService)

문과 장애물을 똑똑하게 우회하여 플레이어를 쫓는 서버 스크립트:

몬스터 길찾기 추적 스크립트 (Server Script)
local PathfindingService = game:GetService("PathfindingService")
local monster = script.Parent
local humanoid = monster:WaitForChild("Humanoid")
local root = monster:WaitForChild("HumanoidRootPart")

local function findNearestPlayer()
    local nearestTorso, maxDist = nil, 80
    for _, player in ipairs(game.Players:GetPlayers()) do
        local char = player.Character
        if char and char:FindFirstChild("HumanoidRootPart") and char.Humanoid.Health > 0 then
            local dist = (char.HumanoidRootPart.Position - root.Position).Magnitude
            if dist < maxDist then
                nearestTorso = char.HumanoidRootPart
                maxDist = dist
            end
        end
    end
    return nearestTorso
end

while task.wait(0.5) do
    local target = findNearestPlayer()
    if target then
        local path = PathfindingService:CreatePath({
            AgentRadius = 3,
            AgentHeight = 6,
            AgentCanJump = false
        })
        path:ComputeAsync(root.Position, target.Position)
        if path.Status == Enum.PathStatus.Success then
            local waypoints = path:GetWaypoints()
            if waypoints[2] then
                humanoid:MoveTo(waypoints[2].Position)
            end
        end
    end
end

동작 원리: 0.5초마다 반경 80스터드 내에서 가장 가까운 생존 플레이어를 탐색하고, PathfindingService를 통해 벽과 문을 우회하는 최적의 경로 웨이포인트를 계산하여 순차 이동시킵니다.

3. 시야 레이캐스팅(Raycast)과 옷장 숨기 시스템

도어즈처럼 벽 뒤나 옷장(Locker)에 숨어 몬스터를 따돌리는 핵심 로직:

4. 뇌리에 박히는 강렬한 점프스케어 연출법

불쾌한 소음 폭탄이 아닌, 전율을 주는 점프스케어 테크닉:

5. 멀티플레이 협동 공포: 인원수 비례 공포 스케일링

프레셔처럼 다수가 함께 플레이할 때 공포를 극대화하는 멀티플레이 장치:

나의 심리적 침착도와 반사신경 측정하기

공포와 긴장감 속에서 나는 침착함을 유지할 수 있을까요? 밀리초 반응속도 테스트와 스트레스 진단으로 내면의 통제력을 시험해 보세요.

무료 스트레스 및 반응속도 테스트

자주 묻는 질문 (FAQ)

몬스터가 벽을 뚫고 지나가는 버그는 어떻게 고치나요?

모든 벽 오브젝트의 CanCollide가 true인지 확인하고, PathfindingService의 AgentRadius를 몬스터의 실제 히트박스보다 약간 크게 설정하여 경로가 벽에 너무 붙지 않게 합니다.

1인 개발자도 도어즈 같은 퀄리티의 공포 게임을 만들 수 있나요?

충분히 가능합니다! 도어즈 역시 소규모 팀에서 시작되었습니다. 방 생성의 모듈화와 조명 연출이 핵심입니다.

플레이어 손전등을 렉 없이 최적화하려면 어떻게 해야 하나요?

서버가 아닌 클라이언트(LocalScript)에서 손전등 SpotLight를 장착하고, 각도를 60도, 밝기를 2.5 안팎으로 맞춰 프레임 저하를 방지합니다.

도어즈처럼 무한히 방이 랜덤 생성되는 원리는 무엇인가요?

ServerStorage에 템플릿 방들을 저장해 두고, 플레이어가 N번 문을 열 때 다음 방을 복제하여 입구 CFrame을 이전 문의 출구 CFrame에 맞춘 뒤, 지나온 방을 순차 삭제(Destroy)하는 방식입니다.