본문 바로가기

렌파이/개발 편의

지속 데이터 Persistent Data

렌파이에서 지속 데이터란 렌파이 게임의 흐름과는 별개로 저장하거나 이용할 수 있는 데이터입니다. 
예를 들어 어떤 엔딩을 봤다면 이야기 진행을 처음서부터 아예 바꿔버린다거나, 게임의 현재 진행상태와 관계 없이 특정 조건에 따라 열리는 메뉴같은 것을 만들 때 지속 데이터를 이용해야 합니다.

persistent

지속 데이터는 persistent 라는 변수를 이용해 관리할 수 있습니다. 말이 굉장히 거창해보이는데 그런 거 없고 그냥 보통 변수 쓰듯 쓰면 됩니다. 다만 아래와같은 모양을 갖추고 사용해야 합니다.
persistent.사용하고싶은 이름 = 값
보통 변수처럼 init 블록에서 먼저 지정하지 않아도 됩니다. 만들어지지 않은 persistent변수는 언제나 False값을 가집니다. 미리 지정해도 별 상관은 없으니 편리하신대로 써먹으시면 되겠습니다.



MultiPersistent

렌파이에서는 MultiPersistent 라는 기능을 이용하면 여러 개의 렌파이 게임에서 공통으로 사용할 수 있는 데이터를 만들 수 있습니다. 전작을 플레이한 적이 있다면 새로운 이야기를 볼 수 있다던가 하는 데에 써먹으면 유용하겠죠.

우선 렌파이 게임에서 MultiPersistent를 써먹겠다는 의미로 init 블록에 다음처럼 적어줍니다.


괄호 안에 적은 것은 MultiPersistent의 이름같은 것입니다. 뒤에 적은 블로그 주소는 블로그에 데이터가 저장된다는 뜻이 아니라, 다른사람이 만든 렌파이 게임의 Multipersistent 데이터와 혹시라도 겹칠 우려가 있어 덧붙여준 것입니다. 여러분 나름의 주소나 표식같은 것을 적어주면 됩니다''

어쨌든 이렇게 만든 mp를 게임에서 써먹으려면 다음처럼 해주어야 합니다.
우선 예를 들면 1편에서는 아래처럼 적어줍니다.

그리고 이 1편에서 저장한 데이터를 2편에서 이용하려면 다음처럼 적어주면 됩니다.


기타

persistent 가 붙은 변수는 각 게임의 세이브 파일 저장 위치에 있는 persistent라는 파일에 저장됩니다. MultiPersistent의기본 저장위치는 OS별로 다음과 같습니다. 

Windows: %APPDATA%/RenPy/persistent
Mac OS X: ~/Library/RenPy/persistent
Linux/Other: ~/.renpy/persistent

렌파이 위키에 나와있는 내용입니다만 블로그에서 설명한 적이 없어서 다시 한 번 풀어서 적었습니다.