by

렌파이와 파이썬

최근에 다시 렌파이를 잠시 사용하게 되었다.

어느정도 뛰어난 프로그래머가 된 현재, 다시 렌파이를 보게 되니, 렌파이 스크립트 그 자체가 아니라 렌파이 스크립트가 호출하는 파이썬 함수들이 보이게 된다.

렌파이를 쓰면서 파이썬으로 마법을 부리는 사람은 많이 없겠지만(프로그래밍 언어 단을 몰라도 쓸 수 있게 하는게 렌파이의 목적이니까), 확실이 파이썬을 통해 렌파이를 통제하면 많은 것들이 쉬워진다.

비유하자면, C#으로 유니티 컴포넌트를 통제하듯, 파이썬으로 렌파이의 명령어들을 통제할 수 있다. 왜냐면 렌파이의 대부분의 명령어들은 거기에 즉시 대응되는 파이썬 함수가 존재하기 때문이다. 사실은 역순서로 동작한다. 렌파이 스크립트의 명령어는 파이썬 함수를 호출한다. 따라서 렌파이 스크립트를 거치지 않고, 렌파이의 동작을 파이썬만으로 통제 가능하다.

예를 들어, 렌파이의 jump "label_name"은 렌파이에 내장된 파이썬 함수 renpy.Jump("lable_name")을 실행하므로, 아예 렌파이 스크립트안에서 jump를 사용하지 않고, python: renpy.jump("label_name")으로 레이블 점프를 실행할 수 있다.

다른 말로 하면, 렌파이의 모든 구현을 그대로 쓰면서 렌파이 스크립트 없이 파이썬만으로 프로그램을 만들 수 있다. 파이썬이 자동화에 특화된 프로그래밍 언어란 것을 생각하면, 렌파이 스크립트의 한계로 길고 복잡해지는 렌파이 스크립트를 간단하게 몇줄의 파이썬 코드로 대체 가능하다.

따라서 렌파이로 게임을 만들때 렌파이 스크립트만 알아도 충분하지만, 파이썬을 제대로 알고 있다면, 매우 높은 수준의 시스템을 몇 줄의 코드로 깔끔하게 구현 가능하겠다... 는 생각이 들었다. 사실 방금도 그렇게 구현하고 있었고.