(+)분류 : 가져온 문서/넥스32 위키
Ren’Py (렌’파이)는 미국에서 만들어진 비주얼 노벨 개발용 엔진이다. 풀 네임은 “렌’파이 비주얼 노벨 엔진(Ren’Py Visual Novel Engine)“으로 이름 그대로 비주얼 노블을 만드는 기능을 갖추고 있는 개발툴 및 엔진 모음이다.
파이썬으로 개발된 것이 특징으로, PyGame 라이브러리를 사용하고 있다. 명칭인 렌’파이도 여기서 온 것으로, 연애(恋愛)의 일본식 발음인 ‘렌아이’와 파이썬(Python)의 앞자인 Py를 따서 합쳐 Ren’Py가 되었다.
1. 상세 ✎ ⊖
렌’파이는 파이썬 언어를 이용해서 제작된 비주얼노블 엔진으로, PyGame 모듈을 이용해서 SDL (Simple DirectMedia Layer)의 기능을 이용해 게임 라이브러리를 제공하고 있다. 이름을 포함해서 특징에 파이썬이 항상 포함되다보니 마스코트 캐릭터도 파이썬을 몸에 감고 있는 것이 특징. PyGame 모듈의 프로젝트 중 대표적인 것 중 하나로 분류되고 있다.
MIT라이센스로 오픈되어있는 프로젝트로, 2004년 첫 릴리즈 이후로 계속해서 버전업을 진행해 현재에 이르고 있다. Nscript, 바실리어트 등의 개발툴과 유사한 형태의 스크립트 엔진 형태로 이루어져 있다.
오픈소스 및 파이썬 언어의 특성 때문에 다양한 기종으로 쉽게 이식이 진행되며, 컴파일하여 바이트코드 형태로도 배포가 가능하다. SDL라이브러리가 포팅되어 파이썬과 PyGame 모듈이 작동 가능한 플랫폼에서는 대부분 작동이 가능하다. 공식적으로 윈도우, 맥OSX, 리눅스, 안드로이드 등의 기종으로 포팅되어 제공되고 있다. 단 안드로이드의 경우에는 게임 운영을 위한 기능만 포팅되어있어 개발은 진행하기 어렵다.
MIT라이센스로 오픈되어있는 프로젝트로, 2004년 첫 릴리즈 이후로 계속해서 버전업을 진행해 현재에 이르고 있다. Nscript, 바실리어트 등의 개발툴과 유사한 형태의 스크립트 엔진 형태로 이루어져 있다.
오픈소스 및 파이썬 언어의 특성 때문에 다양한 기종으로 쉽게 이식이 진행되며, 컴파일하여 바이트코드 형태로도 배포가 가능하다. SDL라이브러리가 포팅되어 파이썬과 PyGame 모듈이 작동 가능한 플랫폼에서는 대부분 작동이 가능하다. 공식적으로 윈도우, 맥OSX, 리눅스, 안드로이드 등의 기종으로 포팅되어 제공되고 있다. 단 안드로이드의 경우에는 게임 운영을 위한 기능만 포팅되어있어 개발은 진행하기 어렵다.
2. 개발 ✎ ⊖
기본적으로 파이썬으로 만들어진 인터페이스로 비주얼 노벨 형식의 인터페이스를 통해서 프로젝트 매니징 기능을 지원한다. 거기에 더해서 텍스트 에디터인 jEdit를 포함시키고 있어 간단하게 스크립트 에디트를 가능하게 하고 있다.
SDL (Simple DirectMedia Layer)을 이용하기 때문에 SDL이 지원하는 하드웨어 가속기능을 모두 사용할 수 있으며, 하드웨어 지원이 안될 경우에는 소프트웨어 렌더링으로 모든 기능을 자동으로 처리해준다. 때문에 하드웨어의 지원여부 등을 크게 고려하지 않고 각종 이펙트와 효과들을 간단한 스크립트로 제어할 수 있다.
여타 스크립트 방식의 노벨게임 엔진에 비해서 체계적인 프로그래밍적 구성을 가지고 있어 더 많은 기능을 체계적으로 구성할 수 있다는 장점이 있으나, 반대로 상대적으로 복잡해 보이는 구조적 특성과, 파이썬 특유의 까다로운 오류검출 때문에 프로그래밍에대한 기본적인 이해가 없는 사용자에게는 제어가 어려울 수 있다는 점이 단점이다.
SDL (Simple DirectMedia Layer)을 이용하기 때문에 SDL이 지원하는 하드웨어 가속기능을 모두 사용할 수 있으며, 하드웨어 지원이 안될 경우에는 소프트웨어 렌더링으로 모든 기능을 자동으로 처리해준다. 때문에 하드웨어의 지원여부 등을 크게 고려하지 않고 각종 이펙트와 효과들을 간단한 스크립트로 제어할 수 있다.
여타 스크립트 방식의 노벨게임 엔진에 비해서 체계적인 프로그래밍적 구성을 가지고 있어 더 많은 기능을 체계적으로 구성할 수 있다는 장점이 있으나, 반대로 상대적으로 복잡해 보이는 구조적 특성과, 파이썬 특유의 까다로운 오류검출 때문에 프로그래밍에대한 기본적인 이해가 없는 사용자에게는 제어가 어려울 수 있다는 점이 단점이다.