Ren'Py

Ren'Py는 시각적 소설과 서사 중심 게임을 제작하도록 설계된 Python 기반의 자유·오픈 소스 게임 엔진이다. 2004년부터 Tom Rothamel(PyTom)을 비롯한 개발자들이 발전시켜 왔으며, 텍스트·이미지·음향과 선택지를 조합하여 대화 및 분기형 스토리를 구현하는 전용 스크...

분류게임 엔진, 비주얼 노벨·인터랙티브 소설 엔진
개발 시작2004년
주요 개발자Tom Rothamel (PyTom) 및 공개 기여자
구현 언어Python·네이티브 하위 모듈
스크립팅Ren'Py Script, Python
핵심 기능대사·선택지·분기·저장·되감기
UIScreen Language와 스타일 시스템
그래픽스2D 이미지·레이어·전환·애니메이션
텍스트·오디오대화·현지화·음성·음악과 영상
제작 도구Ren'Py Launcher·Lint·빌드 시스템
대표 배포Windows, Linux, macOS, Android, iOS, 웹 베타
기반 미디어SDL2 계열 및 Python 런타임
게임 콘텐츠소스와 실행기를 결합한 빌드 배포
소스 라이선스주요 코드 MIT, 일부 LGPL 등
공식 사이트renpy.org
공식 문서Ren'Py Documentation
라이선스 상세Ren'Py License

Ren'Py는 시각적 소설과 서사 중심 게임을 제작하도록 설계된 Python 기반의 자유·오픈 소스 게임 엔진이다. 2004년부터 Tom Rothamel(PyTom)을 비롯한 개발자들이 발전시켜 왔으며, 텍스트·이미지·음향과 선택지를 조합하여 대화 및 분기형 스토리를 구현하는 전용 스크립트 언어를 제공한다. 동시에 Python 코드를 사용할 수 있으므로 단순한 소설형 콘텐츠를 넘어 시뮬레이션과 자체 게임 규칙을 구현할 수 있다.[1]

Ren'Py의 게임은 일반적으로 .rpy 스크립트 파일에 등장인물과 대화, 레이블, 선택지와 화면 전환을 작성한다. 엔진은 이러한 명령을 해석하여 텍스트와 스프라이트·배경을 표시하고 사용자 입력을 받아 시나리오의 진행 상태를 변경한다. 게임 진행 기록과 자동 저장, 읽은 메시지 건너뛰기·되감기(rollback)처럼 비주얼 노벨에서 반복해서 필요한 동작이 런타임에 포함되어 있다.

그래픽스와 UI는 이미지·레이어·화면(Screen)과 스타일 시스템에 의해 구성된다. Screen Language를 이용하면 메뉴·설정·대화 UI를 선언적으로 작성하고 상태에 따른 화면 표시를 제어할 수 있으며 Python 코드를 통한 사용자 정의 표시 객체와 화면 작업도 가능하다. 그림 전환과 애니메이션, 음악·대사와 영상의 재생을 결합하여 복잡한 내러티브 장면을 제작한다.[2]

Ren'Py Script는 게임의 대화·시나리오를 간결하게 기술하도록 설계됐으나 게임 개발자는 init python과 Python 블록, 사용자 정의 문법 및 .py 모듈을 이용해 더 복잡한 규칙을 추가할 수 있다. 저장·복구와 되감기를 지원하려면 변수와 일부 Python 객체가 직렬화에 적합해야 하므로 일반적인 Python 앱의 모든 코드를 그대로 적용할 수 있는 것은 아니다. 공식 문서도 파일·소켓과 반복자 등 특정 종류의 상태는 세이브나 롤백 시 특별한 처리가 필요하다고 설명한다.[3]

개발 환경에는 프로젝트 생성·실행과 오류 검사, 플랫폼별 배포를 위한 Ren'Py Launcher가 포함된다. 공식 문서는 Windows·Linux·macOS와 Android·iOS, 웹 HTML5/WebAssembly의 실행을 다루며 웹 배포는 베타 지원으로 표시된다. 브라우저와 모바일에서는 파일 시스템·미디어 및 플랫폼 SDK에 따른 별도 제한이 있으므로 데스크톱과 실행 조건이 다를 수 있다.

Ren'Py의 주요 소스 코드에는 MIT License가 적용되지만 하부 SDL·미디어·폰트·오디오 관련 컴포넌트에는 LGPL과 여러 다른 라이선스가 포함된다. 공식 배포 문서는 게임 제작자가 엔진과 제삼자 코드의 라이선스 고지 의무를 충족하도록 안내하며 상업적인 게임 제작 자체를 금지하지 않는다. 엔진과 사용자가 제작한 이야기·그림·음악의 저작권을 구분해야 한다.[4]

역사

개발 배경과 기술 계보

아키텍처와 실행 모델

프로그래밍·스크립팅

렌더링과 그래픽스

게임 세계·객체·애니메이션

입력·오디오·네트워크

콘텐츠와 제작 도구

지원 플랫폼과 배포

라이선스와 코드 공개

대표 게임과 기술적 영향

관련 문서

  1. Ren'Py 공식 소개 ↩
  2. Ren'Py 사용자 문서와 UI 언어 ↩
  3. Ren'Py: Python Statements ↩
  4. Ren'Py 공식 라이선스 안내 ↩