본문 바로가기

렌파이/개발 편의

게임에서의 버벅임을 최소한으로 줄이는 법

가끔 렌파이로 제작된 게임을 플레이하다보면 미묘하게 버벅인다든지 잠깐 동안 프레임이 떨어진다든지 하는 상황을 겪을 때가 있습니다. 아래의 함수와 변수를 이용하면 이런 현상을 다소 개선할 수 있습니다.

렌파이 자체가 성능이 좋아지거나 빨라지게 하는 방법이 아닙니다. 아래에 나와있는 것들은 렌파이 게임의 부드러운 동작을 위해 필요한 작업들입니다.


방법

이미지 캐시 사이즈 늘리기

config.image_cache_size 라는 변수의 값을 조정하면 늘릴 수 있습니다. 예를 들면 이 변수는 기본값이 8인데 이는 게임 화면 크기에 8배 되는 크기만큼 이미지를 미리 복사해놓을 수 있다는 의미입니다. 게임 화면 크기가 800x600 이고 config.image_cache_size가 8이면 800x600 짜리 그림파일은 8개 캐싱하겠고, 400x600 짜리 그림 파일은 16개 캐싱하겠죠.

아무튼 이 값을 32로 수정합시다. 8은 너무 적고, 64까지는 낭비라네요.



renpy.predict

ATL의 경우 이미지를 중간에 불러오는 게 시간이 꽤 걸립니다. 이를 방지하려면 사용할 이미지를 강제로 예측하도록 합니다. 전에 엄청난 크기의 ATL이미지를 renpy.predict로 처리한 적이 있는데 시간이 엄청 걸리더군요 '' 물론 한번 강제로 예측된 이후에는 로딩이 좀 걸리더라도 부드러운 화면 움직임을 보여줍니다.



http://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=18714#p242855


renpy.cache_pin('이미지')

'이미지'를 이미지 캐시에 고정하는 함수입니다. 렌파이가 앞으로 사용될 이미지를 예측하고 캐시하는 작업을 자동으로 하기는 하지만 이미지 캐시 정리도 자동으로 하기 때문에 항상 사용하지는 않더라도 부드러운 움직임을 보여주기 위해 강제로 이미지 캐시에 고정하면 좋을 이미지들이 있습니다. 예를 들면 환경설정 화면에 쓰이는 이미지를 renpy.cache_pin으로 박아두면 환경설정 메뉴 등을 불러올 때 버벅임이 덜 할 겁니다.




다른 건 몰라도 1번은 아예 프로젝트마다 고정으로 설정해두는 게 나을 것 같네요.


참고


config.image_cache_size

renpy.predict

renpy.cache_pin