지속형 세이브 포인트의 이해
지속형 체크포인트는 전략적인 배치와 로직 설정을 통해 게임 진행 상황을 보존합니다. 시작 지점으로 초기화되는 기본 리스폰과 달리, 지속형 시스템은 변수 저장 기능을 통해 마지막으로 활성화된 체크포인트를 유지합니다.
2030초 간격으로 체크포인트가 배치된 맵은 체크포인트가 없는 맵(2040%)에 비해 6080%의 높은 완공률을 보입니다. 플레이어는 체크포인트가 없는 맵에서 812번 시도해야 하는 구간을 단 3~5번의 시도만으로 통과할 수 있습니다.
워크숍 리소스를 위해, BitTopup에서 에기 파티 코인 충전을 이용하면 경쟁력 있는 가격과 안전한 거래로 프리미엄 기능을 잠금 해제할 수 있습니다.
세이브 포인트가 지속되는 원리
'지속성'이란 캐릭터가 사망하더라도 체크포인트 데이터를 유지하는 것을 의미합니다. 이를 위해서는 세 가지 구성 요소가 필요합니다:
- 체크포인트 도달을 식별하는 감지 메커니즘
- 에기 코드(Eggy Code) 변수를 사용하여 위치 데이터를 저장하는 시스템
- 사망 시 저장된 위치를 불러오는 리스폰 로직
표준 리스폰 vs 고급 체크포인트
표준 리스폰은 보편적으로 활성화되는 고정된 리스폰 지점을 사용합니다. 조건부 로직이 부족하여 개별 플레이어의 진행 상황을 구분할 수 없습니다.
고급 시스템은 샌드박스 모드의 '체크포인트 영역(Checkpoint Volumes)'을 트리거 존으로 활용하여 플레이어별 리스폰 위치를 업데이트합니다. 체크포인트 영역의 화살표를 프리팹(Prefabs)에 동기화하면 진행 상황에 따라 변하는 동적 리스폰 지점을 구축할 수 있습니다.
기본 로직이 실패하는 이유
기본 메커니즘은 플레이어별 상태 추적 없이 전역적으로 작동합니다. 체크포인트 데이터를 저장하거나 불러오는 로직이 없기 때문에, 사망 시 초기 스폰 지점으로 하드 리셋됩니다.
특히 플레이 시간이 60초를 초과하는 맵에서 이러한 문제는 치명적이며, 반복되는 전체 재시작은 플레이어의 이탈을 유발합니다.
핵심 설계 원칙
세 가지 원칙: 이벤트 기반 활성화, 상태 지속성, 조건부 리스폰.
워크숍 부하 제한을 고려해야 합니다: 기본 18,000, 장인 포인트 1,000점 시 21,000, 장인 포인트 10,000점 시 25,000까지 지원됩니다.
필수 로직 구성 요소
필수 컴포넌트 체크리스트

- 체크포인트 영역(Checkpoint Volumes): 공간 감지 구역
- 이벤트 트리거 영역: 플레이어 상호작용 모니터링
- 에기 코드 변수: 데이터 저장소
- 리스폰 장치: 30초 재사용 대기시간 제한
- 결승선 오브젝트: 영역 조준을 통해 편집 가능
원뿔형 트리거는 방향성 체크포인트에 적합하며, 반구형 트리거는 180도 범위를 제공합니다. 감지 범위를 '플레이어' 엔티티 유형으로 설정하세요.
변수 시스템 개요
여섯 가지 변수 유형:
- 위치(Position): 좌표 데이터
- 정수(Integer): 체크포인트 번호
- 실수(Float): 정밀한 타이밍
- 불리언(Boolean): 상태 플래그(참/거짓)
- 문자열(String): 식별자
- 벡터3(Vector3): 방향 데이터
전역 변수는 모든 트리거에서 사용할 수 있습니다. 기본적인 시스템의 경우, 체크포인트 번호를 추적하는 정수 변수가 가장 효과적입니다.
이벤트 트리거 유형
진입 감지 이벤트는 플레이어가 트리거 영역에 들어갈 때 발생합니다. 사망 감지 이벤트는 플레이어가 실패했을 때 활성화됩니다.
에기 코드 접속 방법: 더 보기 메뉴 > 유닛 선택 > 에기 코드 편집. 진입 이벤트는 체크포인트 변수를 설정하고, 사망 이벤트는 스폰 위치를 위해 이 변수를 읽습니다.
조건 로직 설정
조건문은 현재 체크포인트 변수를 임계값과 비교합니다. 불리언 조건은 참/거짓을 판별하며, 정수 비교는 다중 체크포인트 순서를 제어합니다.
inputLocked 불리언 변수(기본값 거짓, 활성화 시 0.5초 동안 참으로 변경)를 사용하면 체크포인트 활성화 중 입력을 방지할 수 있습니다.
첫 번째 지속형 세이브 포인트 만들기
1단계: 트리거 존 생성

지면 위에 체크포인트 영역 1개를 배치합니다. 지상 트리거의 경우 지름을 23 에기 유닛으로, 벽면 설치형은 1.52 유닛으로 설정하세요. 트리거 간 간격은 최소 2 에기 유닛을 유지해야 합니다.
시각적인 체크포인트 표시를 위해 화살표를 프리팹에 동기화하세요.
2단계: 플레이어 감지 이벤트
감지 범위를 플레이어 엔티티 유형으로 설정합니다. 체크포인트 추적 변수를 업데이트하고 피드백을 제공하는 진입 이벤트를 만듭니다.
정수 변수 CurrentCheckpoint를 해당 체크포인트 위치의 고유 식별자로 설정합니다.
빠른 배송과 고급 워크숍 컴포넌트 활용을 위해 BitTopup에서 에기 코인 저렴하게 구매하기를 확인해 보세요.
3단계: 변수 저장
기본값이 0인 정수 변수 CurrentCheckpoint를 생성합니다. 각 체크포인트는 서로 다른 정수(1, 2, 3 등)를 할당받습니다.
위치 기반 리스폰을 원한다면 플레이어 좌표를 저장하는 위치 변수 LastCheckpointPosition을 생성하세요.
트리거 간 접근이 가능하도록 범위를 '전역(Global)'으로 설정합니다.
4단계: 리스폰 위치 로직

각 체크포인트에 체크포인트 번호와 일치하는 고유 식별자를 가진 리스폰 지점을 배치합니다.
CurrentCheckpoint를 읽고 해당 리스폰 지점을 활성화하는 사망 감지 로직을 만듭니다. CurrentCheckpoint가 1이면 리스폰 지점 1을, 2이면 리스폰 지점 2를 활성화하는 방식입니다.
5단계: 테스트 및 검증
직접 플레이하며 다양한 지점에서 의도적으로 실패해 보세요. 맵 시작점이 아닌 활성화된 체크포인트에서 리스폰되는지 확인합니다.
급격한 활성화나 멀티플레이어 상황과 같은 예외 케이스를 점검하세요. 체크포인트 저장을 알리는 명확한 피드백(시각, 청각, UI)이 나오는지 확인합니다.
고급 변수 설정
변수 유형 선택하기
정수 변수: 정해진 순서가 있는 순차적 체크포인트 시스템에 적합합니다. 각 체크포인트마다 값이 증가합니다.
위치 변수: 접근 방향이 여러 개인 비선형 맵에 적합합니다. 동적 리스폰 배치를 위해 정확한 좌표를 저장합니다.
불리언 변수: 체크포인트 활성화 여부나 완료 상태를 표시할 때 사용합니다.
플레이어별 변수 vs 전역 변수
전역 변수는 모든 플레이어에게 동시에 영향을 미칩니다. 팀이 함께 진행하는 협동 맵에 적합합니다.
플레이어 식별자를 포함한 명명 규칙을 사용하는 플레이어별 변수는 경쟁 맵에서 개별적인 진행 상황을 가능하게 합니다.
맵 링크 기능을 사용하면 여러 맵으로 구성된 어드벤처에서 진행 상황을 공유할 수 있습니다.
명명 규칙
체크포인트 변수 앞에 **CP_**와 설명이 포함된 식별자를 붙이세요:
- CP_MainPath_Current
- CP_SecretArea_Unlocked
- CP_BossRoom_Attempts
버전 번호(CP_Current_v2)를 사용하면 반복적인 개발 과정이 수월해집니다.
사망 시 데이터 유지
사망 이벤트 중에 체크포인트 변수를 초기화하는 로직이 없는지 확인하여 데이터를 유지하세요. 변수는 오직 새로운 체크포인트를 활성화할 때만 업데이트되어야 합니다.
리스폰 후 변수의 무결성을 확인하는 검증 로직을 구현하세요. 잘못된 값이 감지되면 안전한 기본 위치로 돌아가도록 설정합니다.
사망 감지 및 리스폰 로직
사망 이벤트 감지
사망 트리거는 체력이 0이 되거나 플레이어가 사망 지역에 진입할 때 에기 코드를 실행합니다. 체크포인트 변수를 읽어 리스폰 동작을 결정하도록 설정하세요.
사망 지역은 플랫폼 아래, 구덩이 바닥 또는 위험 구역에 배치하되, 정상적인 게임 플레이 구역과 겹치지 않게 주의하세요.
리스폰 위치 바인딩
체크포인트 변수를 평가하고 해당 리스폰 지점을 활성화하는 조건 체인을 만듭니다: 만약 CurrentCheckpoint = 1이면, RespawnPoint_1 활성화; 만약 2이면, RespawnPoint_2 활성화.
시각적 확인을 위해 체크포인트 프리팹을 리스폰 지점에 동기화하세요.
예외 상황 처리
체크포인트 변수에 잘못된 값이 들어있을 경우 시작 스폰 지점을 활성화하는 기본 폴백(Fallback) 로직을 구현하세요.
멀티플레이어 충돌 해결을 위해 플레이어별 변수나 활성화 대기열을 사용하세요.
경계값 체크를 통해 유효 범위를 벗어난 체크포인트 값(예: 10개 체크포인트 맵에서 10 초과 또는 0 미만)을 거부하세요.
우선순위 시스템
순차적 우선순위는 플레이어가 도달한 가장 먼 체크포인트에서 리스폰되도록 보장합니다. 새 값이 현재 값보다 클 때만 체크포인트 변수를 업데이트하세요.
비선형 맵에서는 의도된 진행 흐름에 따라 우선순위 값을 할당하여 공간적 충돌을 해결합니다.
다중 체크포인트 진행 시스템
순차적 구조
체크포인트에 순서대로 번호(1, 2, 3)를 매깁니다. 3번 체크포인트가 활성화되면 1~2번은 비활성화되도록 하여 전진만 가능하게 로직을 구성합니다.
순서 검증을 통해 플레이어가 순차적으로 체크포인트를 활성화하는지 확인합니다.
분기형 구조를 통해 경로마다 별도의 체크포인트 시퀀스를 가진 여러 유효 경로를 수용할 수 있습니다.
역주행 방지
새로운 체크포인트 활성화 시 현재 값과 비교하세요. 새 번호가 현재 번호보다 클 때만 업데이트합니다.
일방통행 구역은 트리거 배치를 통해 잘못된 방향에서의 재진입을 방지합니다.
진행 표시기
체크포인트 3 / 7과 같은 시각적 표시나 진행률 바를 통해 진행 상황을 보여줍니다.
환경적 마커(불이 켜진 횃불, 활성화된 플랫폼, 열린 문)를 통해 공간적 피드백을 제공합니다.
사운드 피드백은 각 체크포인트 단계마다 고유한 소리를 사용합니다.
긴 맵 관리하기
6080%의 완공률을 위해 2030초 간격으로 체크포인트를 배치하세요.
플레이어의 명시적인 행동 없이는 체크포인트 변수가 절대 초기화되지 않도록 주의하세요.
허브 구역에 체크포인트를 모아두면 플레이어가 다양한 경로를 안전하게 실험해 볼 수 있습니다.
흔한 실수와 해결 방법
예상치 못한 초기화
체크포인트 변수를 수정하는 모든 로직을 검토하세요. 업데이트는 오직 체크포인트 활성화 이벤트 시에만 발생해야 합니다.
트리거 영역이 겹치지 않는지 확인하세요. 최소 2 에기 유닛의 간격을 유지해야 합니다.
사망 이벤트 코드가 체크포인트 변수를 읽기만 하고 수정하지 않는지 점검하세요.
변수 덮어쓰기 문제
실수로 재사용하는 것을 방지하기 위해 엄격한 명명 규칙을 적용하세요.
동시 수정을 방지하기 위해 불리언 잠금 변수를 사용하여 상호 배제를 구현하세요.
데이터 유형의 일관성을 유지하세요. 호환되지 않는 데이터 유형을 저장하지 않도록 주의합니다.
트리거 영역 중복
시각적 편집 도구를 사용하여 간격을 확인하세요. 필요한 경우 트리거 지름을 줄입니다.
수직 간격도 수평 간격 요구 사항과 동일하게 적용하세요.
여러 트리거가 동시에 감지될 경우 어떤 체크포인트를 활성화할지 결정하는 우선순위 시스템을 도입하세요.
성능 병목 현상
가장 발생 가능성이 높은 조건을 앞에 배치하여 조건 체인을 최적화하세요.
반복되는 로직을 통합하세요. 여러 시간 기반 시스템에 단일 반복 트리거를 사용합니다.
부하 제한을 준수하세요: 기본 18,000, 장인 포인트 1,000점 시 21,000, 10,000점 시 25,000.
멀티플레이어 동기화
공유 체크포인트(전역 변수)를 사용할지, 개별 체크포인트(플레이어별 변수)를 사용할지 결정하세요.
한 플레이어의 활성화를 처리한 후 다음을 수락하는 활성화 대기열을 구현하세요.
동시 리스폰을 위해 각 체크포인트 주변에 여러 위치를 가진 스폰 지점 배열을 사용하세요.
최적화 기법
컴포넌트 수 줄이기
여러 개의 단순 트리거를 분기 로직이 포함된 소수의 복잡한 트리거로 통합하세요.
값 범위를 세심하게 설계하여 여러 시스템에서 변수를 재사용하세요.
빠른 배치를 위해 프리팹 기반의 체크포인트 템플릿을 만드세요.
효율적인 이벤트 설정
매 프레임이 아니라 특정 조건이 충족될 때만 활성화되도록 트리거를 설정하세요.
연산 비용이 적은 조건을 먼저 평가하도록 순서를 정합니다.
플레이어가 진행한 후 더 이상 필요 없는 체크포인트 트리거는 비활성화하세요.
메모리 관리
맵 시작 시 체크포인트 변수를 초기화하고, 게임 플레이 중 업데이트하며, 완료 시 정리하세요.
요구 사항에 맞는 가장 단순한 변수 유형(정수 < 실수 < 위치)을 사용하세요.
개발 과정에서 더 이상 사용하지 않는 변수와 트리거를 제거하세요.
대규모 테스트
여러 명의 테스터를 모집하여 동시 플레이 시 발생하는 부하 문제를 파악하세요.
역순 활성화, 동시 사망, 급격한 활성화와 같은 예외 케이스를 테스트하세요.
워크숍 부하 표시기를 사용하여 리소스를 많이 소모하는 컴포넌트를 식별하세요.
실제 사례
파쿠르 맵 시스템

어려운 점프 구간 뒤에 20~30초마다 체크포인트를 배치합니다. 전진만 가능한 로직을 가진 순차적 구조를 사용합니다.
시각적 표시기(빛나는 플랫폼, 파티클 효과)를 통해 명확한 피드백을 제공합니다.
어드벤처 맵 저장
새로운 지역에 진입할 때 활성화되는 구역 기반 체크포인트입니다. 위치 변수를 사용하여 정확한 지점을 저장합니다.
퀘스트 기반 통합을 통해 체크포인트 활성화를 스토리 진행과 연결합니다.
중앙 안전 구역이 있는 허브 앤 스포크(Hub-and-spoke) 구조를 활용합니다.
퍼즐 맵 보존
복합 시스템 사용: 플레이어 위치를 위한 위치 변수, 스위치 상태를 위한 불리언 배열, 아이템 개수를 위한 정수 변수 등을 조합합니다.
임의의 간격이 아닌 퍼즐 섹션을 완료했을 때 체크포인트를 제공합니다.
상태 검증을 통해 퍼즐이 미완성된 상태에서 활성화되는 것을 방지합니다.
레이스 맵 통합
코스 섹션을 나타내는 체크포인트 시퀀스를 구성하고, 전체 시퀀스 완료 시 랩 카운터를 증가시킵니다.
정확한 시퀀스 활성화를 확인하여 지름길 악용을 방지합니다.
실패 지점보다 약간 뒤에서 리스폰되게 하여 불공정한 이득을 방지합니다.
고급 팁
다른 시스템과의 결합
점수 통합: 체크포인트 사이의 사망 횟수를 추적하고, 사망 없이 도달 시 보너스 점수를 부여합니다.
인벤토리 통합: 체크포인트에서 인벤토리 상태를 저장하고 리스폰 시 복구합니다.
타임 트라이얼 통합: 체크포인트 활성화 시 게임 시간을 저장하여 구간 기록을 계산합니다.
조건부 세이브 포인트
아이템 수집, 적 처치, 퍼즐 해결 등 요구 사항이 충족되었을 때만 활성화됩니다.
카운트다운 타이머를 사용하여 제한 시간이 지나면 만료되는 임시 체크포인트를 만듭니다.
난이도 설정에 따라 체크포인트 빈도를 조절합니다.
시각적 피드백 디자인
다단계 피드백: 비활성(중립/어두움), 범위 내(맥동/발광), 활성화(밝음/파티클).
시청각 동기화를 통해 활성화 사운드와 시각 효과를 결합합니다.
맵 전체에 활성화된 체크포인트를 나타내는 지속적인 마커를 표시합니다.
디버깅 네트워크
UI 텍스트 요소를 통해 실시간으로 체크포인트 변수 값을 표시하여 디버깅합니다.
활성화 로그를 생성하여 세션 후 분석을 위한 이벤트 기록을 남깁니다.
전체 통합 전 개별 체크포인트를 격리하여 테스트하고 검증합니다.
리소스 및 도구
워크숍 에셋 요구 사항
기본 시스템에는 체크포인트 영역, 리스폰 지점, 기본 트리거 영역 등 기본 컴포넌트만 필요합니다.
부하 제한에 따른 권장 체크포인트 수:
- 기본 18,000: 5~7개
- 21,000 (장인 포인트 1,000점): 8~12개
- 25,000 (장인 포인트 10,000점): 15개 이상
프리미엄 컴포넌트
장인 포인트는 맵을 게시하고 긍정적인 피드백을 받아 얻을 수 있습니다.
BitTopup은 워크숍 기능을 위한 에기 코인을 제공합니다. 경쟁력 있는 가격, 빠른 배송, 안전한 거래, 우수한 고객 서비스를 경험해 보세요.
인기 맵 연구: Fight the Principal (ID 299110), Eggy Party Massacre (ID 288583).
커뮤니티 리소스
크리에이터 커뮤니티는 포럼과 디스코드(Discord)를 통해 템플릿과 로직 패턴을 공유합니다.
튜토리얼 맵을 통해 실제 작동하는 체크포인트 로직을 확인하세요.
공식 가이드와 커뮤니티 문서는 상세한 기술 사양을 제공합니다.
자주 묻는 질문 (FAQ)
에기 파티 워크숍에서 세이브 포인트는 어떻게 작동하나요?
체크포인트 영역이 플레이어 진입을 감지하고, 데이터를 에기 코드 변수에 저장한 뒤, 사망 후 플레이어를 저장된 위치에 배치하도록 리스폰 로직을 수정하여 작동합니다.
리스폰 지점과 세이브 포인트의 차이점은 무엇인가요?
리스폰 지점은 고정된 기본 위치입니다. 세이브 포인트는 변수를 사용하여 마지막으로 활성화된 지점을 기억하고 진행 상황에 따라 동적으로 업데이트됩니다.
사망 후 세이브 포인트가 작동하지 않는 이유는 무엇인가요?
사망 이벤트 중에 변수가 초기화되었거나 리스폰 로직이 저장된 데이터를 읽지 못하기 때문일 수 있습니다. 사망 코드가 변수를 수정하지 않고 읽기만 하는지, 변수 범위가 전역인지, 리스폰 로직이 변수를 제대로 평가하는지 확인하세요.
한 맵에 여러 개의 세이브 포인트를 만들 수 있나요?
네, 부하 제한 내에서 가능합니다. 기본 18,000점에서는 5~7개, 장인 포인트 10,000점 달성 시 15개 이상 설치할 수 있습니다.
세이브 포인트 배치의 모범 사례는 무엇인가요?
6080%의 완공률을 위해 2030초 간격으로 배치하세요. 어려운 도전 과제 직후나 새로운 섹션 입구에 배치하는 것이 좋습니다. 간격은 2 에기 유닛을 유지하고, 지면에서 1 유닛 위에 2~3 유닛 지름으로 설치하세요.
세이브 포인트에서 변수는 어떻게 활용되나요?
사망 후에도 유지되는 체크포인트 데이터를 저장합니다. 정수는 번호를 추적하고, 위치는 좌표를 저장하며, 불리언은 활성화 여부를 표시합니다. 전역 변수를 생성하고 활성화 시 업데이트하며, 사망 시 리스폰 위치를 결정하기 위해 이를 읽습니다.
워크숍 창작물의 수준을 높일 준비가 되셨나요? BitTopup에서 프리미엄 에셋을 확보하고 고급 로직을 활용해 보세요. 빠르고 안전하며 크리에이터가 보증하는 서비스로 지금 바로 에기 파티 경험을 강화하세요



















