맨위로가기

NScripter

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

NScripter는 비주얼 노벨 및 사운드 노벨 제작에 특화된 스크립트 엔진으로, 간단한 스크립트 언어를 사용하여 텍스트, 스프라이트, CG, 음악, 선택지 처리 등 필요한 기능을 제공한다. '시스템 사용자 지정' 기능을 통해 엔진 동작을 변경하거나 Lua를 사용하여 기능을 확장할 수 있으며, 상업적 사용 시에는 사용료를 지불해야 한다. Windows에서 주로 사용되었으며, NScripter2, Scripter3과 같은 후속 엔진 및 ONScripter와 같은 비공식 호환 엔진이 존재한다. 한국어는 공식적으로 지원하지 않지만, 수정된 버전을 통해 한국어 번역판 제작에 활용되었다.

더 읽어볼만한 페이지

  • 비주얼 노벨 엔진 - 언더 나이트 인버스
    언더 나이트 인버스는 프랑스빵과 멜티 블러드 개발진이 제작한 2D 격투 게임 시리즈로, 2012년 아케이드로 처음 출시되어 여러 버전 업을 거쳤으며, 보이드, 인-버스, 야토 등의 세력 간 갈등을 다루는 스토리를 특징으로 한다.
  • 비주얼 노벨 엔진 - 키리키리
    키리키리는 W.Dee가 개발한 TJS 스크립트 언어 기반의 비주얼 노벨 및 어드벤처 게임 제작 엔진으로, KAG 시스템과 TJS의 장점을 결합하여 1998년부터 개발되었으며 PIA소프트웨어와의 협력 및 크로스 플랫폼을 지원하는 키리키리Z로 발전했다.
  • 프리웨어 - 구글 크롬
    구글 크롬은 구글이 개발한 웹 브라우저로, 크로미엄 프로젝트를 기반으로 오픈 소스 코드를 활용하여 개발되었으며, 다양한 기능과 운영체제 지원을 통해 세계 시장 점유율 1위를 기록하지만 개인 정보 보호 정책으로 비판을 받기도 한다.
  • 프리웨어 - 다음 마이피플
    다음 마이피플은 카카오에서 제공한 모바일 메신저 서비스로, 데이터 네트워크를 이용해 무료 음성 및 영상 통화, 문자 대화 기능을 제공하고 파일 전송, 음성 쪽지, SMS 기능, 지도 및 로드뷰 연동, 다음 클라우드 연동을 통한 파일 공유, 친구 검색, 즐겨찾기 등록, 연락처 기반 자동 친구 추가, 채팅방 배경 설정 등 다양한 부가 기능을 지원했다.
NScripter - [IT 관련 정보]에 관한 문서
기본 정보
이름NScripter
로마자 표기Enusukuriputā
개발
개발자다카하시 나오키
최종 버전최종판
최종 버전 발표일2018년 2월 23일
지원 환경
운영 체제Windows 98/Me/2000/XP/Vista/7
기타
종류게임 스크립트 엔진
라이선스프로프라이어리한 프리웨어 (상업 유통 작품만 유료)
공식 웹사이트nscripter.com
호환Windows 8부터 Windows 10까지 동작상에 문제는 확인되지 않음 (2021년 8월 기준)
언어일본어
플랫폼x86

2. 특징

NScripter는 Windows 환경에서 작동하는 스크립트 엔진으로, 특히 어드벤처 게임이나 비주얼 노벨처럼 텍스트 표현을 중심으로 하는 게임 제작에 특화되어 있다. 베이직과 유사한 간단한 문법 구조를 가지고 있으며, 텍스트 표시, CG 및 스프라이트 출력, 음악 재생, 선택지 처리 등 게임 제작에 필요한 기본적인 기능들이 내장 API 형태로 제공되어 개발 과정을 간소화한다.

높은 연출 능력과 함께, 일본상용동인계를 막론하고 폭넓게 사용되면서 엔진 자체의 신뢰성과 안정성 또한 높이 평가받았다. 개발 컨셉트 중 하나는 전문 프로그래머가 없는 중소 규모 개발 환경에서도 게임 시나리오 작가가 직접 연출과 스크립팅을 담당하여 게임을 완성할 수 있도록 지원하는 것이었다. 이러한 간편함과 아마추어 제작자들에게 무료로 제공된 점 덕분에 2000년대 일본에서 큰 인기를 얻었다.

기본 기능 외에도 '시스템 사용자 지정'이나 외부 DLL을 통해 기능을 확장하거나 엔진의 동작 방식을 변경할 수 있다. 특히 Ver 2.93부터는 Lua 스크립트 언어를 도입하여 복잡한 연산 처리, 병렬 처리, 파일 조작 등 더욱 유연하고 강력한 기능 확장이 가능해졌다.

이전 엔진인 Scripter3과는 기본적인 명령어 구조 등에서 유사성을 가져 어느 정도 호환성을 가지지만, 명령어 이름 변경(예: `bp` -> `background`)이나 기능 추가 등 차이점도 존재한다. Scripter3은 Shift-JIS 인코딩의 텍스트 파일을 사용하고 오디오 CD 직접 재생 기능을 지원하는 등의 특징이 있었다.

NScripter는 지속적인 업데이트를 통해 기능을 개선하고 지원 환경을 넓혀왔다. Ver 2.95는 Windows 98/Me/2000을 지원하는 마지막 버전이었으며, Ver 2.96부터는 Windows XP 이후 환경 전용으로 개발되었다. 또한, 기존 버전에 존재하던 보안 취약점 문제를 해결하기 위해 2015년 Ver 3.00 및 버그 수정판인 3.03이 공개되기도 했다.[6]

2. 1. 기본 기능

NScripter의 스크립트는 엔진 내부의 인터프리터를 통해 실행되며, 문법은 베이직과 유사하여 매우 간단하다. 텍스트 표시, CG 및 스프라이트 표시, 음악 재생, 선택지 처리 등 어드벤처 게임이나 비주얼 노벨 제작에 필요한 기본적인 기능들이 API 형태로 엔진에 내장되어 있어, 개발자는 이 API를 호출하는 스크립트 작성만으로 게임을 비교적 쉽게 제작할 수 있다.

'시스템 사용자 지정' 기능을 통해 엔진의 기본 동작 변경도 가능하다. 이를 이용하면 게임 고유의 저장 및 불러오기 기능을 만들거나, 기본 API에서 제공하지 않는 복잡한 연출 효과 구현, 무비 재생, 스프라이트 활용 연출, 외부 DLL을 이용한 기능 확장 등이 가능하다. 이러한 확장 기능을 응용하여 시뮬레이션과 같은 다른 장르의 게임 요소도 구현할 수 있다.

Ver 2.92 이전 버전에서는 객체 지향 개념이 도입되지 않았고 병렬 처리 기능도 지원하지 않았으나, `defsub` 명령어를 통해 구조적 프로그래밍과 유사한 방식으로 스크립트를 구성할 수 있었다. 전반적으로 NScripter는 텍스트 중심의 어드벤처 게임 개발 과정을 간소화하는 데 특화되어 있다.

Ver 2.82부터는 1바이트 문자를 지원하여 영어 알파벳 등 라틴 문자 표기가 가능해졌고, Ver 2.93부터는 DLL을 통한 기능 추가 및 스크립트 언어 Lua를 사용한 엔진 프레임워크 동작 수정 기능이 도입되어 유연성이 향상되었다.[6]

2. 2. Lua 확장

2009년 4월에 공개된 NScripter Ver 2.93부터 스크립트 언어인 Lua를 사용하여 엔진 기능을 확장할 수 있게 되었다. Lua는 DLL 형태로 구현되어 NScripter 본체에서 직접 실행된다.

기존 NScripter 스크립트에서 Lua의 함수를 호출하거나, 반대로 Lua 측에서 NScripter의 함수를 호출하는 것이 모두 가능하여, 게임 스크립트 전체를 Lua로 거의 완전히 이전하는 것도 가능하다. 이를 통해 기존 NScripter에서는 어려웠던 복잡한 수치 연산뿐만 아니라, 파일 조작, 블록 및 스코프 활용, 배열(테이블) 메서드, 모듈 라이브러리 사용 등과 같은 본격적인 스크립트 언어의 기능을 이용한 개발이 가능해졌다.

특히 Lua 도입으로 NScripter는 병렬 처리를 지원하게 되어, 게임 내 여러 요소를 동시에 병렬적으로 조작할 수 있게 되었다. 예를 들어, 애니메이션이 재생되는 동안에도 NScripter가 멈추지 않고 다른 작업을 수행할 수 있다. 이는 텍스트 표시의 스프라이트화 처리 등 연출과 기능 면에서 큰 향상을 가져왔다.

또한, 이전에 '시스템 커스터마이징'이라는 방식으로 구현되던 다양한 확장 기능들을 Lua를 통해 더욱 고도화하고 단순화하여 개발할 수 있게 되었다. 게임 종료 시의 동작을 변경하는 등 엔진 자체의 동작을 수정할 수 있는 유연성도 확보되었다.

하지만 Lua의 사용이 강제되는 것은 아니며, 개발자는 필요에 따라 기존의 시스템 커스터마이징 방식을 계속 사용할 수도 있다.

2. 3. 한계

NScripter는 비주얼 노벨사운드 노벨 제작에 특화되어 있었지만 몇 가지 기술적인 한계를 가지고 있었다.

우선, 2.92 버전 이전에는 객체 지향 프로그래밍 요소가 통합되지 않았고, 병렬 처리 기능도 지원하지 않았다. 당시에는 'defsub' 명령어를 사용하여 구조적 프로그래밍 방식을 일부 구현하려는 시도가 있었다.

또한 초기 버전에서는 문자 지원에 제한이 있었다. 주로 일본어와 같은 2바이트 문자를 중심으로 지원했으며, 영어 알파벳과 같은 1바이트 문자 지원은 2.82 버전에서야 추가되었다.

더불어 NScripter의 모든 버전에는 보안 취약점이 존재했다. 이러한 보안 문제는 2015년 8월에 발표된 버전 3.00에서 대응되었으며, 같은 해 9월에는 버그 수정판인 3.03이 공개되었다.[6]

3. 문법 (스크립트 예시)

스크립트는 NScripter 엔진의 인터프리터에 의해 실행된다. 문법은 BASIC 언어와 매우 유사하여 간단하고 직관적인 것이 특징이다. 비주얼 노벨사운드 노벨 제작에 필요한 기본적인 기능들, 예를 들어 텍스트 표시, 스프라이트나 CG 출력, 음악 재생, 선택지 처리 등은 기본 API 형태로 엔진에 내장되어 있다. 따라서 개발자는 이러한 내장 함수들을 호출하는 스크립트를 작성하는 것만으로도 비교적 쉽게 게임을 만들 수 있다.

또한 '시스템 사용자 지정'이라는 기능을 통해 엔진의 기본 동작을 변경하거나 확장할 수 있다. 예를 들어, 독자적인 저장/로드 시스템을 구현하거나, 기본 API에서 제공하지 않는 복잡한 연출 효과, 동영상 재생 등을 추가할 수 있다. 이를 위해 외부 DLL 파일을 활용하여 기능을 확장하는 것도 가능하다. 이러한 확장성을 이용하면 단순한 비주얼 노벨을 넘어 시뮬레이션 게임과 같은 다른 장르의 게임 제작에도 응용할 수 있다.

다만, 구버전(Ver 2.92 이전)의 NScripter는 객체 지향 개념이 도입되지 않았고, 여러 작업을 동시에 처리하는 병렬 처리 기능도 지원하지 않았다. 구조적 프로그래밍을 지원하기 위해 `defsub` 명령어가 제공되었으나 기능적으로 한계가 있었다. 전체적으로는 텍스트 중심의 어드벤처 게임 개발에 특화된 구조였다.

Ver 2.82부터는 1바이트 문자(예: 영어 알파벳)를 지원하기 시작하여 일본어 외 언어로 된 게임 개발도 가능해졌다.

2009년 4월에 공개된 Ver 2.93부터는 스크립트 언어인 Lua를 이용한 프레임워크 확장이 가능해졌다. Lua는 DLL 형태로 구현되어 NScripter 본체에서 실행되며, 기존 NScripter 스크립트에서 Lua 함수를 호출하거나 반대로 Lua에서 NScripter 기능을 호출할 수 있다. 이를 통해 복잡한 수치 연산, 파일 조작, 모듈 및 라이브러리 활용 등 Lua의 강력한 기능을 게임 개발에 이용할 수 있게 되었다. Lua 도입으로 기존 NScripter의 한계였던 동시 병행 처리나 텍스트 표시 방식 등 연출과 기능 면에서 큰 발전이 이루어졌으며, 시스템 커스터마이징의 유연성도 크게 향상되었다. Lua 사용은 선택 사항이며, 기존 방식의 개발도 여전히 가능하다.

3. 1. 기본 스크립트

프랑스어 텍스트가 포함된 결과.


다음은 기본적인 매개변수를 정의하고 텍스트를 표시하는 간단한 스크립트 예시이다.



;mode800

;게임 해상도를 800x600픽셀로 정의한다. ';'는 필수이며 스크립트 파일의 첫 번째 줄이어야 한다.

;gameid Example

;엔진이 예를 들어 저장 데이터의 이름을 지정할 게임 이름을 정의한다. ';'는 필수이며 스크립트 파일의 두 번째 줄이어야 한다.

  • define ;게임 매개변수를 정의하는 블록이다. '*define'으로 명명되어야 한다.


caption "Example" ;그래픽 창의 이름이다.

versionstr "Example"," version 1.0-en" ;정보 메뉴에 게임 버전을 설명하는 데 사용되는 텍스트 문자열을 정의한다.

savename `Save`,`Load`,`File ` ;저장 및 로드 메뉴의 제목과 마우스 오른쪽 클릭 메뉴에서 저장 파일을 지정하는 텍스트 문자열을 정의한다.

;기본값은 일본어 'しおり'이며, 여기서는 « File »로 변경하여 변경하거나 번역할 수 있다.

savenumber 15 ;최대 저장 횟수를 정의한다.

rmenu `Save`,save,`Load`,load,`Erase window`,windowerase,`Quit`,end ;사용자가 마우스 오른쪽 버튼을 클릭할 때 나타나는 메뉴의 버튼 이름을 지정한다.

game ;모든 게임 매개변수를 정의하는 블록을 닫고 게임을 시작한다.

  • start ;게임 콘텐츠를 정의하는 블록이다.


`예시 텍스트...@ 그 후 사용자 상호 작용 후에 나타나는 텍스트.\ 그리고 마지막으로 텍스트의 또 다른 페이지.\

;예시 텍스트이다. '`' 문자는 1바이트 문자를 사용하는 데 사용된다 (기본 라틴 알파벳과 영어 알파벳에는 충분하지만 일본어 문자에는 충분하지 않다).

;'@' 및 '\'는 사용자 상호 작용을 기다린다. '@'는 상호 작용 후 나머지 텍스트를 스크롤하고 '\'는 현재 텍스트를 삭제하고 줄이 끝나면 다음 줄로 이동한다.

;'`' 뒤에 공백이 필요하지 않다. 명령 뒤에 주석을 포함한 모든 문자를 읽는다.

end ;게임을 종료한다.


3. 2. 선택지와 배경 이미지가 있는 스크립트

선형적이지 않거나 '키네틱 노벨'이라고 불리지 않는 비주얼 노벨에는 플레이어의 선택지가 존재한다. 아래는 NScripter를 사용하여 선택지, 배경 이미지 표시, 페이드 인 효과 등을 구현하는 스크립트 예시이다.

스크립트 실행 결과 예시 (프랑스어 텍스트).




[…] (이전 예제의 *define 블록 참조)

/!\ define 블록에 추가된 코드 라인 *define /!\

effect 2,10,1000 ;픽셀 단위 페이드 인 효과인 효과 번호 2를 정의합니다(효과 0과 1은 전환을 표시하지 않는 데 사용됨).

;여기서 정의된 대로, 이 효과는 엔진에 포함된 10번째 효과 집합에서 나오며 1000밀리초, 즉 1초 동안 지속됩니다.

game ;모든 게임 매개변수를 정의하는 블록을 닫고 게임을 시작합니다.

  • start ;게임 콘텐츠를 정의하는 블록.


bg "background-image.png",2 ;효과 번호 2를 사용하여 'background-image.png'가 나타나도록 전환합니다.

`[캐릭터 1]

`그래서…@ 책 읽는 걸 좋아하세요, 아니면 영화 보는 걸 좋아하세요?@

;예시 텍스트. '`' 문자는 1바이트 문자를 사용하는 데 사용됩니다(기본 라틴 알파벳과 영어 알파벳에는 충분하지만 일본어 문자에는 충분하지 않음).

;'@' 및 '\'는 사용자 상호 작용을 기다립니다. '@'는 상호 작용 후 텍스트의 나머지 부분을 스크롤하고 '\'는 현재 텍스트를 삭제하고 줄이 끝나면 다음 줄로 이동합니다. '`' 뒤에 공백이 필요하지 않습니다. 명령어 뒤에 주석을 포함한 모든 문자를 읽습니다.

br ;선택지와 질문 사이에 공백을 두기 위한 줄 바꿈

select "책 읽기", *choice1, "영화 보기", *choice2 ;두 가지 선택지를 표시합니다.

  • choice1 ;플레이어가 선택지 1을 선택하면 시작되는 블록

`[캐릭터 2]

`저는 책 읽는 걸 더 좋아해요.@

`[캐릭터 1]

`저도요! 좋아하는 책은 뭐예요?@

br ;줄 바꿈

`그리고 대화는 2~3시간 더 이어졌습니다...\

end ;게임을 종료합니다.

  • choice2 ;플레이어가 선택지 2를 선택하면 시작되는 블록

`[캐릭터 2]

`저는 영화 보는 걸 더 좋아해요.@

`[캐릭터 1]

`저도요! 좋아하는 영화는 뭐예요?@

br ;줄 바꿈

`그리고 대화는 2~3시간 더 이어졌습니다...\

end ;게임을 종료합니다.


스크립트 설명:

  • `effect 2,10,1000`: 픽셀 단위 페이드 인 효과(효과 번호 2)를 정의한다. 엔진에 내장된 10번째 효과 세트를 사용하며, 지속 시간은 1000밀리초(1)이다. 효과 0과 1은 전환 효과 없이 즉시 표시하는 데 사용된다.
  • `game`: 이전의 정의 블록(`*define`)을 닫고 게임을 시작하는 명령어이다.
  • `*start`: 게임의 주요 내용이 시작되는 지점을 표시하는 레이블이다.
  • `bg "background-image.png",2`: 앞서 정의한 `effect 2`를 사용하여 "background-image.png" 파일을 배경 이미지로 화면에 나타낸다.
  • ```: ASCII와 같은 1바이트 문자를 사용하여 텍스트를 표시할 때 사용한다. 영어 알파벳과 같은 기본 라틴 문자 표기에는 충분하지만, 일본어 가나나 한자 등 다국어 문자 표기에는 별도의 설정이 필요하거나 지원하지 않을 수 있다.
  • `@`, `\`: 플레이어의 마우스 클릭과 같은 상호작용을 기다리는 명령어이다. `@`는 상호작용 후에도 현재 줄의 나머지 텍스트를 계속 표시하고, `\`는 상호작용 후 현재 텍스트 창의 내용을 지우고 다음 줄로 넘어간다.
  • `br`: 텍스트 출력 시 강제로 줄을 바꾼다.
  • `select "선택지 텍스트", *이동할 레이블, ...`: 플레이어에게 선택지를 보여준다. 각 선택지 텍스트와 선택했을 때 이동할 스크립트 레이블(`*choice1`, `*choice2`)을 짝지어 지정한다.
  • `*choice1`, `*choice2`: `select` 명령어에서 플레이어가 특정 선택지를 골랐을 때 이동할 스크립트 내 위치를 표시하는 레이블이다.
  • `end`: 게임 실행을 종료한다.

4. 사용 환경 및 라이선스

NScripter는 Windows 환경에서 작동하는 스크립트 엔진으로, 특히 어드벤처 게임이나 비주얼 노벨과 같이 텍스트 표현을 중심으로 하는 게임 제작에 주로 사용된다. 간단한 문법과 높은 수준의 연출 구현 능력, 그리고 오랜 기간 사용되며 검증된 안정성이 특징이다.[6] 또한, 전문 프로그래머가 없는 소규모 개발 환경에서도 게임 시나리오 작가 등이 직접 연출과 스크립팅을 담당하여 게임을 제작할 수 있도록 개발되었다.

라이선스는 기본적으로 비상업적 목적의 사용과 동인 작품 유통의 경우 무료로 제공된다. 하지만 상업적인 목적으로 작품을 판매할 경우에는 로열티 지불이 필요하다.[6] 자세한 사용 환경과 라이선스 조건은 아래 하위 섹션에서 설명한다.

4. 1. 사용 환경

PC 중급 이상의 지식이 있다면, 자원봉사자들이 운영하는 여러 강좌 사이트를 통해 수 시간 정도면 기본적인 사용법을 익힐 수 있다. 게임 제작 방법을 설명하는 여러 공식 서적도 출판되었으며, 사용자들이 만든 기능 확장용 DLL과 샘플 스크립트도 다수 공개되어 있어 이용 환경은 비교적 잘 갖춰져 있다.

그러나 엔진 사용법 자체를 안내하는 공식 사이트는 없다. 또한, 엔진 본체에 포함된 매뉴얼은 여러 기능이 추가되면서 내용이 상당히 복잡해졌다. 따라서 사용자는 필요한 정보를 스스로 적극적으로 찾아야 한다.

공식 사이트에서는 최신 버전 실행 파일과 별도로 "NScripter 문서 / 구툴"을 배포하고 있다. 최신 버전의 매뉴얼은 기능 확장에 따라 내용 정리가 미흡한 상태이므로, 처음 사용하는 경우에는 "NScripter 문서 / 구툴"도 함께 다운로드하는 것이 좋다.

NScripter 관련 공식 서적은 다음과 같다. (현재는 중고로만 구할 수 있다.)

  • NScripter 공식 가이드[11]
  • * 저자: 畔田英明, 森皿尚行 / 감수: 高橋直樹 / 발행: 秀和システム / 2004년 9월 11일 발매 / ISBN 4-7980-0867-2
  • 어드밴스드 NScripter 공식 가이드[12]
  • * 저자: 畔田英明, 森皿尚行 / 감수: 高橋直樹 / 발행: 秀和システム / 2005년 7월 9일 발매 / ISBN 4-7980-1104-5
  • 개정판 NScripter 공식 가이드[13]
  • * 저자: 畔田英明, 森皿尚行 / 감수: 高橋直樹 / 발행: 秀和システム / 2007년 12월 21일 발매 / ISBN 978-4-7980-1852-2
  • NScripter로 시작하는 노벨 게임 제작[14]
  • * 저자: 高橋直樹, 桂ともえ, 下地和彦, 株式会社ユニゾン / 일러스트: 桂ともえ / 발행: 新紀元社 / 2006년 9월 1일 발매 / ISBN 4-7753-0496-8

4. 2. 라이선스

비상업적 용도로 이용하거나 동인 작품으로 유통하는 경우에는 무료로 사용할 수 있다.[6]

2013년에 사용 조건이 간소화되어 다음과 같은 경우에도 무료 사용이 가능하다.[6]

  • 게임이나 기타 공모전에 응모한 경우, 수상 여부나 수상작의 유통 형태에 관계없이 무료이다.[6]
  • 법인이나 개인 구분 없이, 배포 방법에 관계없이 무료로 배포하는 경우 무료이다.[6]
  • 잡지부록으로 프리웨어셰어웨어 형태로 수록하는 경우에도 무료이다.[6]


단, 작품을 상업적으로 판매하여 유통하는 경우에는 사용료(로열티)를 지불해야 한다.[6] 동인 작품이나 프리웨어라도 사용료를 지불하면 상용 작품으로 취급되어 '''지원 대상'''이 된다. 이 경우, 개발자가 요청하는 소규모 기능 추가(독자적인 기능 확장이나 작품별 난독화 처리 등)는 사용료 범위 내에서 지원받을 수 있다.[6] 수수료는 협상이나 면제가 가능하며, NScripter 개발자는 특히 비영리 목적의 게임 개발자나 로열티 지불에 어려움을 겪는 개발자를 적극적으로 지원한다.

DLL 확장 기능을 만들어 GPL 라이선스로 재배포하는 것은 허용되지 않지만, LGPL 라이선스로 배포하는 것은 가능하다.

5. NScripter를 사용한 주요 작품

NScripter는 아마추어 비디오 게임뿐만 아니라 상업적으로 성공한 작품 제작에도 사용되었다. 월희, 괭이갈매기 울 적에 시리즈, 나르키소스 시리즈 등이 대표적인 예시다.

5. 1. 상용 작품

NScripter로 구동되는 게임 대부분은 아마추어 비디오 게임이지만, 아래 목록과 같이 상업적으로 성공하며 주목받은 게임들도 존재한다.

  • '''월희''': 타입문에서 초기에 NScripter를 사용하여 제작했으나, 다음 작품인 '''페이트/스테이 나이트'''부터는 키리키리 엔진으로 전환했다.
  • 07th Expansion비주얼 노벨: '''괭이갈매기 울 적에''' 시리즈 등이 대표적이다. 많은 사람들이 07th Expansion의 게임, 특히 아마추어 번역가들을 통해 NScripter와 그 파생 엔진을 접하게 되었다.
  • '''나르키소스''' 시리즈: NScripter로 구동되는 무료 키네틱 노벨 시리즈 중 가장 널리 알려진 작품 중 하나이다.
  • 은색 (네코네코소프트)
  • 미즈이로 (네코네코소프트)
  • 바이너리 포트 (오가스트)
  • 프린세스 홀리데이 〜굴러가는 링고테이 천일야화〜 (오가스트)
  • 달은 동쪽에 해는 서쪽에 〜Operation Sanctuary〜 (오가스트)
  • 누나의 3승 (마롱)
  • 네가 주인이고 집사가 나이고 (미나토소프트)
  • 여동생 역레이프 〜음란한 꽃봉오리의 유혹〜 (언더립)
  • 시크릿 게임-킬러퀸- 딥 에디션 (플랫)

5. 2. 동인 작품

NScripter는 간편하고 아마추어 비디오 게임 제작자들에게 무료로 제공되었기 때문에 2000년대 일본의 아마추어 비디오 게임 제작자들 사이에서 큰 인기를 얻었다. NScripter로 구동되는 게임 대부분은 아마추어 작품이지만, 상업적으로 성공하거나 큰 주목을 받은 작품들도 다수 존재한다.

주요 작품 목록은 다음과 같다.

NScripter 기반 주요 게임 목록
제작사주요 작품비고
타입문월희, 가월십야월희 제작에 NScripter를 사용했으나, 이후 페이트/스테이 나이트부터는 키리키리 엔진으로 전환했다.
07th Expansion괭이갈매기 울 적에 시리즈이 시리즈를 통해 많은 아마추어 번역가들이 NScripter와 그 파생 엔진을 접하게 되었다.
스테이지 나나나르키소스 시리즈NScripter로 구동되는 무료 키네틱 노벨 시리즈 중 가장 인기 있는 작품 중 하나로 평가받는다.
개와 고양이레뮤엘의 연금술사, 해양 레스토랑☆해묘정, Limit Less Bit〜왕국의 용사들〜
왕궁마법극단One Way Love〜민트짱 이야기
오류히토카타
산다-볼트마지컬 브링거 코로나 시리즈
FLAT킬러 퀸


6. 관련 엔진

2009년 4월에 출시된 2.93 버전부터 Lua를 사용하여 NScripter의 기능을 확장할 수 있게 되었다.

Lua는 DLL 형태로 구현되어 NScripter 내부에서 직접 실행된다. 기존 NScripter 스크립트에서 Lua의 모든 함수를 호출할 수 있고, 반대로 Lua 측에서도 NScripter 함수를 호출하는 것이 가능해, 게임 스크립트의 상당 부분을 Lua로 작성할 수 있다. 이를 통해 기존 NScripter만으로는 어려웠던 복잡한 수치 연산뿐만 아니라, 파일 조작, 블록 범위 지정, 배열 메서드, 모듈 라이브러리 활용 등 다양한 스크립트 언어의 기능을 이용할 수 있게 되었다. 또한 Lua 도입으로 병렬 처리가 가능해져, 게임 내 여러 요소를 동시에 병렬적으로 조작할 수 있게 되었다. 예를 들어, 애니메이션이 재생되는 동안에도 NScripter가 멈추지 않고 다른 작업을 처리할 수 있다. 이 방식은 과거 '시스템 사용자 지정'이라는 방법으로 구현했던 다양한 확장 기능의 구현을 더 쉽고 명확하게 만들었으며, 게임 종료 시의 동작 변경처럼 엔진 자체의 작동 방식을 수정하는 것도 가능하게 한다. 하지만 Lua의 사용은 필수가 아니며, 기존의 시스템 사용자 지정 방식도 여전히 사용할 수 있다.

6. 1. NScripter2

NScripter2|エヌスクリプターツー|에누스쿠리프타츠일본어개발 코드명 선데이 게임 엔진(Sunday Game Engine, SGE)으로도 알려져 있으며, 다카하시 나오키(Naoki Takahashi)가 개발한 NScripter 게임 엔진의 후속작이다. SDK는 Windows에서만 사용할 수 있다.

2009년 9월, 이 엔진의 프로토타입 버전이 선데이 게임 엔진이라는 이름으로 출시되었다. 이후 개발이 계속되어 2012년 8월 31일에 엔진의 공식 베타 버전이 공개되었다.

2022년 6월 기준으로, NScripter2는 엔진 자체와 최소한의 문서만 공개된 상태에 머물러 있다. 개발자는 NScripter2를 업데이트하고 단순화할 계획이었으나, 2017년 이후 엔진 업데이트는 이루어지지 않고 있다.

NScripter와는 문법이 다르지만, 여전히 BASIC 언어, 특히 Visual Basic과 QuickBasic에서 영향을 받았다. 예를 들어, 함수는 더 이상 별표(*)로 시작하지 않고 @ 기호로 시작하며, 시작 함수는 '\*define'이 아니라 '@start'이다. 또 다른 예로, Lua와의 일관성을 위해 프로그램을 종료하는 명령어는 BASIC에서처럼 'end'(Lua에서 'if' 조건을 끝내는 명령어)가 아니라 'quit'이다.

자유 텍스트 편집기 Atom을 위한 비공식 확장 프로그램이 있어 NScripter2용 스크립트 개발을 더 쉽게 할 수 있다.

6. 2. Scripter3

スクリプタースリー|스쿠리푸타스리일본어(Scripter3), 약칭 Scr3는 다카하시 나오키(高橋直樹|다카하시 나오키일본어)가 1998년부터 1999년 사이에 개발한 무료 독점 게임 엔진이다. 자체 스크립트 언어를 사용하며, 비주얼 노벨사운드 노벨 제작을 용이하게 한다. 소프트웨어 개발 키트(SDK)는 윈도우에서만 사용할 수 있다.

더 유연한 구문과 많은 기능을 갖춘 NScripter의 전신 엔진이다. 예를 들어, NScripter는 JPEG/JPG 형식 이미지를 기본적으로 지원하지만 Scripter3는 'jpeglib.dll'이라는 DLL 파일이 필요하다.

Scripter3은 플레인 텍스트 형식의 Shift-JIS 인코딩을 사용하며, 확장자가 TXT인 스크립트 파일을 읽는다. 엔진은 0.txt 파일부터 99.txt 파일까지 순서대로 읽는다. .scp 확장자를 가진 난독화된 스크립트(NScripter의 nscript.dat에 해당)도 읽을 수 있지만, 플레인 텍스트 파일이 우선적으로 처리된다. 기본 라틴 알파벳과 영어 알파벳 문자 또는 프랑스어 따옴표 같은 기타 문자를 표시할 수 있지만, 이 문자들은 전각 문자여야 한다.

Scripter3은 텍스트를 처리하지만 텍스트 상자의 나머지 그래픽 부분은 처리하지 않는다. 이 부분은 비주얼 노벨에서 장식과 텍스트 간의 대비를 설정하는 데 필수적이다. 개발자는 텍스트 상자 그래픽을 각 배경 이미지에 직접 통합해야 하므로, 텍스트 상자가 없는 배경 이미지와 텍스트 상자가 있는 배경 이미지가 각각 존재하는 경우가 많다. 결과적으로 플레이어가 마우스 오른쪽 버튼을 클릭하여 텍스트를 숨기더라도 텍스트 상자는 배경 이미지에 통합되어 있어 계속 표시된다.

엔진은 오디오 CD를 읽을 수 있다. 이 기능은 특히 아마추어 비디오 게임 제작자들이 다른 작품(종종 상업용)의 오디오 CD를 읽어 패러디 등에 사용할 수 있게 했다.

후속 엔진인 NScripter는 거의 동일한 명령어를 유지하므로 두 엔진 간 상호 호환성이 비교적 높다. 예를 들어 @, \와 같은 텍스트 명령어와 *시작 레이블, 자막 명령어 등은 변경되지 않아 두 엔진 모두에서 찾을 수 있다. 반면 bp 명령어는 NScripter에서 background로 이름이 바뀌는 등 일부 명령어는 변경되었다.

다카하시 나오키가 개발하던 시절에는 Scripter3가 매우 인기가 많았지만, 현재 이 엔진은 인터넷에서 거의 사라졌고 관련된 자료는 보관 웹사이트에서만 찾아볼 수 있다. 많은 사용자가 공식 인터넷 포럼에서 서로 협력했고, 개발자 본인도 매일 참여하며 자신의 프로그램이 인기를 얻는 모습을 지켜보았다. 온라인에 남아 있는 몇 안 되는 정보에 따르면, Scripter3는 전성기에 경쟁 엔진인 키리키리보다 더 인기가 많았다. 1999년 11월 27일 Scripter3 마지막 버전이 출시되고 개발자가 NScripter로 전환할 것을 권장하자, Scripter3 커뮤니티는 1999년 9월 6일부터 사용할 수 있었던 NScripter로 옮겨갔다.

6. 3. 비공식 호환 엔진

NScripter는 원래 Windows 환경에서만 작동하도록 개발된 스크립트 엔진이다.[6] 이로 인해 어드벤처 게임이나 비주얼 노벨 등 NScripter로 제작된 게임을 Windows 외 다른 운영체제나 기기에서 실행하기 위한 비공식 호환 엔진들이 개발되기 시작했다. 이러한 엔진들은 원본 NScripter 엔진을 재현하거나 복제하여 만들어졌으며, 때로는 새로운 기능을 추가하거나 독점 라이선스의 제약에서 벗어나려는 목적으로 개발되기도 했다.

대표적인 비공식 호환 엔진으로는 ONScripter와 그 파생 버전인 ONScripter-EN, PONScripter 등이 있으며, 이 외에도 특정 플랫폼이나 기술(예: HTML5)을 겨냥한 PNaCl ONScripter, 유니코드 지원 등을 강화한 ONSlaught, macOS 환경을 위한 CCScripter, 플래시 기반의 KScripter 등 다양한 호환 엔진들이 존재한다. 이러한 엔진들은 NScripter 게임을 리눅스, macOS, 안드로이드, iOS, 각종 게임 콘솔 등 다양한 환경에서 구동할 수 있게 해준다.

한편, 키리키리2처럼 다른 스크립트 엔진으로 만들어진 게임을 NScripter 호환 엔진에서 실행할 수 있도록 변환하는 소프트웨어도 존재한다. 이는 주로 Windows 전용 게임을 다른 플랫폼에서 즐기기 위한 목적으로 사용되지만, 변환 과정에서 원본 게임의 일부 특수 효과 등이 제대로 구현되지 않는 기술적 한계가 있을 수 있다.

6. 3. 1. ONScripter

ONScripter 로고


ONScripter의 뱀 게임(Snake) 클론


ONScripter는 NScripter를 대체하기 위해 개발된 자유 소프트웨어 호환 엔진이다. Studio O.G.A.가 2002년 2월 6일부터 개발을 시작했으며, 최신 버전은 2022년 8월 16일에 공개되었다.

다양한 플랫폼에서 NScripter 기반 게임을 실행할 수 있도록 SDL 소프트웨어 라이브러리를 기반으로 작동한다. 기본적으로 라틴 문자나 영어 알파벳 같은 단일 바이트 문자 표시는 가능하지만, 과거 기록 모드가 비어 있거나 불완전하게 작동하는 등의 버그가 남아있다. 이러한 문제는 영어 버전인 ONScripter-EN에서 해결되었기 때문에 영어권 번역 작업에는 ONScripter-EN 사용을 권장했다. 오픈소스로 개발되었으며, 고유한 저장 파일을 생성하지만 NScripter와 호환되는 저장 파일도 처리할 수 있다.[7]

ONScripter는 다음 플랫폼들을 지원한다.

ONScripter 지원 플랫폼
플랫폼비고
안드로이드
BrainWindows CE 6.0 기반 전자 사전
Classic Mac OS
드림캐스트
FreeBSD
하이쿠
iOS아이폰, 아이팟 터치, 아이패드
아이팟iPod Linux 설치 필요
리눅스
macOS
NetBSD
NetWalker우분투 기반
닌텐도 3DS
닌텐도 스위치ONScripter-EN 포트 존재 (SDL2 기반)
OS/2
플레이스테이션 3
PSP드림캐스트 포트 기반
솔라리스
WiiONScripter-EN 포트 존재
윈도우
Zaurus



NScripter 문서의 영어 번역본을 기반으로 한 중국어 간체 번역본이 존재하지만, 정확성은 높지 않다는 평가가 있다. 또한, 키리키리2 같은 다른 스크립트 엔진으로 만들어진 게임을 NScripter용으로 변환하는 도구도 있으나, 변환 과정에서 원본 게임의 일부 특수 효과가 사라질 수 있다. 이는 변환 도구가 해당 효과를 완벽하게 재현하지 못하기 때문이다.

6. 3. 2. ONScripter-EN

빨간 원 안에 세 개의 빨간 불꽃이 있는 이미지
ONScripter-EN 로고. 이 로고는 엔진의 애칭(온센, 온천)과 일본어온천(onsen)을 재치있게 표현한 것이다. 로고는 온천을 나타내는 일본어 그림 문자(♨)이다.


ONScripter-EN은 ONScripter의 영어 버전으로 개발된 호환 엔진이다. 원본 ONScripter의 여러 버그가 수정되어 영어권 번역가들에게 권장된다.

6. 3. 3. 기타 호환 엔진

PNaCl ONScripter는 구글의 PNaCl 샌드박스 기술을 통합하기 위해 설계된 ONScripter의 포크이다. 이를 통해 사용자는 HTML5를 통해 NScripter 게임을 실행할 수 있으며, 게임을 크롬 애플리케이션으로 내보낼 수 있어 크롬 웹 브라우저 사용자를 주 대상으로 한다. 이 포크에는 버그가 있으며, 텍스트 입력 및 마우스 휠 동작과 같은 일부 기능이 누락되어 있다.

ONSlaught는 NONS라는 이름으로도 알려져 있으며, 2009년 초 Víctor Manuel 'Helios_VMG' González가 개발한 ONScripter의 클론이다. ONScripter를 완전히 대체하거나 대안이 되는 것을 목표로 설계되었으며, 유니코드(UTF-8, Shift-JIS) 지원, 기울임꼴 또는 굵은 글씨체 텍스트 표시, 저해상도 이미지를 전체 화면으로 확장하는 기능 등 PONScripter의 일부 기능을 포함한다. 개발자가 PSP 이식을 시도했으나 성공하지 못한 것으로 보인다. 가장 널리 사용되는 NScripter 엔진을 목표로 하지만, 스크립트를 약간 수정해야 호환되는 게임은 일부에 불과하다. 이 엔진은 ''월희''의 스페인어 팬 번역에 처음 사용되었다. 실행 파일과 함께 제공되며, 최신 버전은 최소 32비트 아키텍처의 윈도우 환경을 대상으로 한다. 소스 코드와 의존하는 소프트웨어 라이브러리가 포함된 아카이브도 제공된다. 2011년 11월 26일 버전 이후 활동이 없다가 2021년 7월에 업데이트되었다.

CCScripter는 toveta가 M(Microsoft 프로그래밍 언어)으로 개발한 복제 소프트웨어이다. 사용자가 macOS에서 NScripter 게임을 플레이하고 개발할 수 있도록 지원했다. 지원과 업데이트는 2004년 10월 18일 버전 0.8.24를 마지막으로 중단되었으며, 개발자는 사용자들에게 ONScripter로 이전할 것을 제안했다.

KScripter는 ActionScript 3으로 작성된 NScripter 기반의 복제 소프트웨어이다. 플래시와 호환되는 모든 운영 체제에서 실행될 수 있다. KScripter로 제작된 소프트웨어나 게임의 실행 파일 확장자는 .SWF이다. 이 엔진은 PHP, 루비, 자바스크립트와 같은 언어를 통해 웹과 상호 작용할 수 있다.

6. 4. 경쟁 엔진

NScripter에는 Buriko General Interpreter(BGI, Ethornell이라고도 함)와 같은 경쟁 엔진이 있다. BGI 엔진은 게임 개발사 August, OVERDRIVE 등과 영어권 현지화 회사 만가가머(OVERDRIVE, Circus, NEXTON 공동 설립)에서 널리 사용된다.

또 다른 주요 경쟁 엔진으로는 키리키리(KAG로 약칭)가 있다. 키리키리는 자유 소프트웨어이며 오픈 소스 코드를 제공한다. 예를 들어 타입문은 NScripter로 개발하여 상업적으로 성공한 ''츠키히메'' 이후, ''페이트/스테이 나이트'' 제작에는 키리키리 엔진을 사용했다.

국제적으로는 4,000개 이상의 게임 제작에 사용된 렌파이 역시 경쟁 엔진으로 꼽힌다.

7. 한국어 지원 및 관련 사례

비공식적으로 수정된 NScripter를 통해 실행되는 중국어(만다린)판 ''나르키소스''. Windows 환경에서 실행 중인 게임 화면으로, 흰색 배경, 나르키소스 로고, 한자 메뉴가 보인다.


NScripter는 공식적으로는 일본어만 지원하지만, 비공식적으로 수정되어 다른 언어를 지원하는 데 사용되기도 했다. 예를 들어, 《나르키소스》의 중국어 번역에는 수정된 버전이 사용되었다. 한국에서도 한국어 지원을 위한 비공식 수정판이 제작되어 사용된 사례가 있다.

7. 1. 한국어 지원

비공식적으로 수정된 NScripter를 통해 실행되는 한국어판 ''괭이갈매기 울 적에''. Windows 환경에서 실행 중인 게임 화면으로, 검은색 배경과 한국어 메뉴가 보인다.


한국 네티즌들이 한국어 지원을 위해 NScripter 2.96 수정판을 배포했다. 예를 들어, ''괭이갈매기 울 적에''의 한국어 번역판에 수정된 버전이 사용되었다.

7. 2. 한국 내 사용 사례



NScripter 또는 비공식적으로 수정된 버전은 주로 일본 비주얼 노벨의 한국어 번역 및 배포에 사용되었다. 예를 들어, ''괭이갈매기 울적에''의 한국어판은 비공식적으로 수정된 NScripter를 통해 실행되는 사례가 있다.

참조

[1] 웹사이트 高橋直樹のホームページ http://www2.osk.3web[...]
[2] 웹사이트 nscripter.com http://www.nscripter[...] 2018-12-14
[3] 웹사이트 Ponscripter - Overview http://unclemion.com[...] 2023-08-22
[4] 웹사이트 Ponscripter Release (20111009 "Tiramisu") http://unclemion.com[...] 2023-08-22
[5] text
[6] 웹사이트 旧バージョンNScripterのセキュリティ問題について http://www.nscripter[...]
[7] 웹사이트 ONScripterのページ http://onscripter.so[...] Studio O.G.A. 2014-07-01
[8] 웹사이트 PNaCL ONScripter http://idletime.s601[...] IdelTime 2014-07-01
[9] 웹사이트 「NScripter」製ゲームをChrome Apps化する「PNaCL ONScripter」が公開 - 窓の杜 https://forest.watch[...] Impress Corporation 2014-07-01
[10] 웹사이트 PNaCL ONScripter http://homepage.mac.[...] IdelTime 2014-07-01
[11] 웹사이트 秀和システム:NScripterオフィシャルガイド http://www.shuwasyst[...] 秀和システム 2014-07-01
[12] 웹사이트 秀和システム:あどばんすどNScripter オフィシャルガイド http://www.shuwasyst[...] 秀和システム 2014-07-01
[13] 웹사이트 秀和システム:改訂版NScripterオフィシャルガイド http://www.shuwasyst[...] 秀和システム 2014-07-01
[14] 웹사이트 NScripterではじめる ノベルゲーム制作 http://w3.shinkigens[...] 新紀元社 2014-07-01



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com