개발 튜토리얼
1. 게임 루프 개념
“1. 게임 루프 개념” 섹션
게임 메인 루프 논리도
게임의 핵심 루프는 트리거와 이벤트로 구성됩니다. 트리거는 특정 조건의 모음이고, 이벤트는 실행할 명령 집합입니다.
플레이어가 행동하면 게임 시간이 흐르고, 그 과정에서 여러 트리거가 이벤트를 발생시킵니다. 이벤트 안의 명령은 순서대로 실행되며, 한 명령이 끝나야 다음 명령으로 넘어갑니다. 이벤트 끝부분에는 조건에 따른 다음 이벤트 이동 관계를 정의할 수 있습니다.

이벤트 처리 흐름
2. 프로젝트 설정
“2. 프로젝트 설정” 섹션Config/default.json
“Config/default.json” 섹션프로젝트 기본 설정 파일은 JSON 형식입니다. 주요 키는 다음과 같습니다.
| 매개변수 | 비울 수 있음 | 적용 범위 | 설명 |
|---|---|---|---|
type | 아니요 | Plugin/Story | MOD 유형입니다. Plugin은 플러그인, Story는 시나리오 캠페인입니다. |
name | 아니요 | Plugin/Story | MOD 표시 이름입니다. |
desc | 예 | Plugin/Story | MOD 소개입니다. |
tags | 예 | Plugin/Story | Steam 창작마당 검색 분류에 쓰이는 태그입니다. 여러 개는 반각 세미콜론으로 구분합니다. |
start_scene | 예 | Story | 시작 장면입니다. 비우면 캐릭터 생성 장면을 사용합니다. |
include_main_game | 예 | Story | 본편 데이터를 참조할지 지정합니다. 0은 참조 없음, 1은 전체 데이터, 2는 기본 데이터입니다. |
homepage_background | 예 | Story | 메인 메뉴 배경 교체 리소스경로입니다. |
audioControllerAdditional | 예 | Plugin/Story | 전문 프로젝트에서 사용하는 오디오 미들웨어경로입니다. |
valuebundle/default.xml
“valuebundle/default.xml” 섹션MOD가 포함할 설정표 파일 목록입니다. 여러 include 요소를 넣을 수 있습니다.
| 매개변수 | 비울 수 있음 | 설명 |
|---|---|---|
file | 아니요 | MOD 프로젝트의 Excel 디렉터리에 있는 설정표 파일명입니다. 확장자를 포함합니다. |
valuebundle/INDEX.xml
“valuebundle/INDEX.xml” 섹션Excel과 reg 매핑 규칙 목록입니다. 여러 convert 요소를 넣을 수 있습니다.
| 매개변수 | 비울 수 있음 | 설명 |
|---|---|---|
reg | 아니요 | data/regV2 아래의 매핑 규칙 reg 파일입니다. |
from | 아니요 | MOD 프로젝트 Excel 디렉터리에 있는 설정표 파일명입니다. 확장자를 포함합니다. |
Interface/overrides.txt
“Interface/overrides.txt” 섹션리소스경로 매핑 규칙 파일입니다. 줄마다 하나의 매핑 규칙을 작성합니다. 자세한 내용은 리소스 관리 항목을 참고하세요.
3. 설정표
“3. 설정표” 섹션《부락과 커브드 소드》는 설정표로 수치, 공식, 시나리오, 이동 로직과 리소스참조을 작성합니다. 설정표는 독립된 Excel 파일이며, 도구를 통해 XML 또는 실행 가능한 values 파일로 패키징됩니다.

설정표 패키징 흐름
권장 흐름은 다음과 같습니다.
- MOD 제작자가 Excel 설정표를 수정합니다.
- 패키징 도구로 values 파일을 생성합니다.
- 게임 클라이언트에서 MOD를 테스트합니다.
설정표 수정 시에는 WPS 사용을 권장합니다. 각 필드에는 정해진 형식이 있으므로 오류 메시지를 확인하며 조금씩 수정하고 바로 테스트하는 편이 좋습니다. 저장 데이터가 설정표 ID에 의존하므로, 이미 배포된 ID는 삭제하지 말고 오래된 항목으로 표시한 뒤 새 ID를 추가하세요.
데이터 타입
“데이터 타입” 섹션reg 파일은 Excel 필드의 데이터 형식을 정의합니다. 자주 쓰는 형식은 다음과 같습니다.
int: 정수float: 소수string: 문자열
변수와 조건 표현식
“변수와 조건 표현식” 섹션스크립트의 특수 기호는 모두 반각 기호를 사용하세요.
조건 표현식은 [%condition%][=]1 같은 비교식을 | 또는 &로 연결합니다. &의 우선순위가 |보다 높습니다. 양쪽이 모두 숫자로 해석되면 수치 비교를 하고, 그렇지 않으면 문자열 비교를 수행합니다. 문자열 비교는 [=]와 [<>]를 지원합니다.
[%result_code%][=]1|[%player_money%][>=]100[%player:level%][>=]3&[%player_money%][>]100이전 형식인 [%xxxx%]와 새 형식인 [$xxxx$]는 모두 사용할 수 있습니다.
이벤트 명령 문법
“이벤트 명령 문법” 섹션명령과 매개변수는 보통 *로 구분하고, 매개변수끼리는 #로 구분합니다. 대화 명령은 자주 쓰이므로 일부 상황에서는 명령명을 생략할 수 있습니다.
이벤트 실행 시 현재 문맥 변수도 전달됩니다. 예를 들어 CUR_ROLE, [%tagrole%] 같은 형식으로 현재 문맥을 사용할 수 있습니다. 구체적인 명령은 공통 시나리오 명령 색인을 참고하세요.
MOD 설정표 동작 원리
“MOD 설정표 동작 원리” 섹션각 Excel 행에는 ID가 있습니다. 여러 MOD가 같은 ID를 정의하면 뒤에 불러온 MOD의 내용이 앞의 내용을 덮어씁니다. 이 방식으로 기존 게임 설정을 교체하거나 확장할 수 있습니다.
4. 리소스 관리
“4. 리소스 관리” 섹션리소스는 게임에서 사용하는 이미지, 음악, 모델, 동작, 특수효과 등을 뜻합니다. 게임은 전역 리소스네임스페이스을 사용하며, 각 리소스는 고유한 전체경로을 가집니다.
Interface/overrides.txt에 덮어쓰기 규칙을 정의하면 리소스를 교체하거나 새 리소스를 추가할 수 있습니다.
ABS\Audio\*>:\Buildsource\Audios\*간이 MOD 프로젝트와 전문 MOD 프로젝트 모두 RES 아래 파일을 배포 리소스로 사용할 수 있습니다. ABS 리소스는 전문 MOD 프로젝트에서 Unity 패키징을 통해 사용할 수 있습니다.
5. 오디오 관리
“5. 오디오 관리” 섹션오디오 리소스는 리소스 관리 규칙으로 가져올 수 있습니다. 간이 MOD 프로젝트는 ogg 파일을 지원하며, 전문 MOD 프로젝트는 더완전한 오디오 리소스 흐름을 사용할 수 있습니다.
6. 외형 편집 도구
“6. 외형 편집 도구” 섹션MOD 편집기의 외형 편집 도구로 NPC 외형을 조합할 수 있습니다.

외형 편집 도구 위치

외형 데이터 내보내기
텍스트 상자에 외형 데이터를 붙여 넣고 가져오면 다른 외형을 확인할 수 있습니다. 편집 후 복사한 코드는 캐릭터 외형 정보로 설정표에 붙여 넣을 수 있습니다.
7. 스킬 편집
“7. 스킬 편집” 섹션스킬은 스킬 설정표와 Assets/BuildSource/SkillData/*.txt 리소스를 통해 편집합니다. 스킬 편집기를 사용하면 실시간 편집과 테스트를 할 수 있습니다.
8. 3D 모델, 동작과 파티클
“8. 3D 모델, 동작과 파티클” 섹션3D 모델, 동작과 파티클 리소스는 전문 MOD 프로젝트와 Unity 프로젝트를 사용해 준비하고 패키징합니다.
9. 맵 편집기
“9. 맵 편집기” 섹션맵 편집기 사용법은 맵 편집기 사용 설명을 참고하세요.