렌파이에는 웹사이트에 올라온 렌파이 게임을 자동으로 다운로드하여 업데이트 파일을 설치할 수 있는 업데이터 기능이 있습니다. 이를 이용하여 용량이 큰 게임을 최신 버전으로 쉽게 유지할 수 있습니다.
렌파이 업데이터는 아래에 나와있는 작업을 자동으로 수행하여 작동합니다.:
교체한다. zsync 는 두 아카이브 파일에서 다른점을 자동으로 계산한 다음, 변경된 부분만 다운로드한다.
지운다.
이 과정에서 렌파이 업데이터는 업데이터 스크린을 띄우므로 사용자는 업데이트 과정을 지켜보거나 취소할 수도 있습니다.
업데이트를 사용하려면 제작자가 호스팅을 마련해야 합니다. URL에서 직접 업데이트 파일을 다운로드할 수 있어야 하며, 서버는 반드시 HTTP 범위 쿼리를 지원해야 합니다.
(파일 공유 사이트로는 이 기능을 이용할 수 없으므로 유료 웹 호스팅을 이용해야한다는 의미입니다.)
업데이트 파일은 배포판을 만들 때 자동으로 만들어집니다. 업데이트 파일을 만드려면 options.rpy에서 build.include_updates 를 True로 설정하시기 바랍니다. 이렇게 설정하면 런처에서 "Build Updates" 옵션을 사용할 수 있게 됩니다. Build Updates 옵션에 체크를 하면 렌파이는 업데이트 파일을 생성합니다.
업데이트 파일은 다음과 같이 구성되어있습니다:
이 파일들은 전부 웹서버의 동일한 디렉토리에 올려야합니다.
업데이트 기능을 실행하기 위해서는 updater.update 나 updater.Update 액션을 사용해야 합니다.
updater.
Update
(*args, **kwargs)¶updater.update()
함수를 호출하는 액션. 인수는
전부 이 함수에 저장하고 전달한다.
updater.
UpdateVersion
(url, check_interval=21600, simulate=None, **kwargs)¶이 함수는 url 에 있는 서버와 접촉해 지정한 주소에서 신규 버전의 소프트웨어가 존재하는지를 판단한다. 신규 버전이 존재한다면 이 함수는 새 버전을 반환한다. 그 외에는 None을 반환한다.
서버에 접촉하는 것이 시간을 다소 소요할 수 있기 때문에 이 함수는 백그라운드에 쓰레드를 실행하고, 마지막으로 서버와 접촉했을 때 얻은 버전을 반환하거나, 서버에 접촉한 적이 없다면 None을 반환한다. 서버에 접촉되었다면 백그라운드 쓰레드는 현재 인터렉션을 재시작해 이 함수를 호출하는 스크린을 갱신시킨다.
각 rul은 렌파이 세션 당 한 번 접촉될 것이며, check_interval 에 지정한 시간 당 한 번 이상은 접촉하지 않을 것이다. 서버에 접촉할 수 없다면 캐시된 데이터를 반환할 것이다.
(simulate`를 비롯한) 추가 키워드 인수는 :func:`updater.update 에 값이 지정되어 있다면 업데이트 매커니즘에 전달될 것이다.
updater.
can_update
(base=None)¶성공적으로 업데이트할 수 있다면 참을 반환한다. 업데이트가 불가능하다면 거짓을 반환한다. (예를 들어, 업데이트 경로가 삭제되었거나 하는 경우 등.)
업데이트가 실제로 가능한가를 판단하는 함수가 아니라는 점을 기억해야 한다.
업데이트 가능 여부는 updater.UpdateVersion()
을 사용해 판별해야 한다.
updater.
get_installed_packages
(base=None)¶설치된 DLC 패키지 이름을 반환한다.
updater.
update
(url, base=None, force=False, public_key=None, simulate=None, add=[], restart=True)¶렌파이 게임을 최신 버전으로 업데이트한다.
실제로 업데이트를 수행하지 않고 업데이트 GUI 테스트에 사용된다. :
업데이터 인터페이스를 바꾸려면 updater
스크린을
재작성해야합니다. 기본 updater 스크린은 common/00updater.rpy 에 정의되어있습니다.