*현재 네코노벨은 추가 지원이 없는 상태인 반면 피니엔진은 이제 알파판임을 염두에 두도록 합시다.
*본 글은 피니엔진의 더 큰 발전을 위해 작성하는 글 임을 밝힙니다.
잔인한 피니엔진과 네코노벨 비교분석 3
2014.12.17
어쩐지 지난 시간으로부터 이번 시간까지의 시간 사이의 차이가 긴 것 같지만, 그동안 바빴습니다! 논다고 말이죠.. 어쨌거나 이번에는 단순 비교를 해보겠습니다. 우선 이번 시간에 유용할 링크 두 가지를 아래에 걸어두겠습니다. 둘 다 회원가입 없이 접속 가능합니다.
네코노벨 스크립트 언어 설명서 : http://cafe.naver.com/kernyslab/219
피니엔진 언어 설명서 : http://piniengine.readthedocs.org/ko/latest/index.html
우선 네코노벨의 스크립트 언어에 대해 먼저 알아보도록 하겠습니다. 우선 네코노벨의 언어는 바실리어트 쪽에 뿌리를 두고 있고 바실리어트는 브이넵에서 영향을 받은 것 같다고 개인적으로 추측하고 있습니다. 이들 언어의 특징은 다음과 같습니다.
1. 줄 단위로 명령어를 인식한다.
2. 인수의 순서가 정해져있다.
3. 띄워쓰기로 각 요소를 구분한다.
예를 들면 다음과 같습니다. V는 스페이스 바 한 번 눌렀다는 의미입니다.
명령어V인수1값V인수2값V…
▲네코노벨의 스크립트 언어 사용 예시
여기서 우리가 생각할 수 있는 문제는 바로 이 인수들의 위치를 어떻게 외우냐는 것입니다. 사실 이 문제는 아주 큰 문제가 아닐 수 없는데, 이것을 네코노벨에서는 스크립트 편집기 바로 옆에 도움말을 넣어 해결했습니다. 따라서 스크립트를 짜다가 명령어가 어떤 인수를 어떤 순서로 갖는 지 기억이 안나면 간단히 옆에서 살펴보는 것으로 해결할 수 있습니다.
또 네코노벨 엔진은 명령어를 자신의 입맛에 맞게 커스터마이징할 수 있습니다. 이 기능은 바실리어트에서 넘어온 것인데, 아마 한글 스크립트를 구현하면서 생긴 독특한 특징인 것 같습니다. 제 생각에는 아마 이런 구조이기 때문인 것 같습니다.
한글명령어 ->영어명령어 ->컴퓨터가 명령 처리!
▲네코노벨의 명령어를 수정하려면 이 파일에서 적절하게 수정하면 된다.
다른 네코노벨 스크립트 언어의 특징은, 바실리어트에서 시작한 툴이다보니(하앙군님이 바실리어트 서드파티 편집기 만드셨던 걸로 알고 있습니다.) 필요한 기능을 다양하고 알차게 갖추고 있다는 사실입니다. 왜 이런 말을 하냐면, 현재 피니엔진의 스크립트 언어 LNX는 조금 명령어가 빈약한 기분이 들기 때문입니다. 이것은 좀 있다가 다시 언급하도록 하겠습니다. 이번엔 피니엔진의 스크립트 언어 LNX를 살펴보겠습니다.
LNX 스크립트는 조금 더 전문적인(?) 언어의 관습을 따르는 느낌입니다. 특징을 정리하자면 다음과 같습니다.
1. 명령어의 시작과 끝에는 [와 ]가 붙는다. 즉 [ ] 단위로 명령어를 인식한다.
2. 인수의 순서는 무관하다. 단, 각 인수 앞에는 인수의 이름이 필요하다.
3. 띄워쓰기로 각 요소를 구분한다.
,
예를 들면 다음과 같습니다.
[명령어V인수1이름="인수1값"V인수2이름="인수2값"…]
단, 인수를 일부 수정할 때에는 다음과 같은 형태의 명령어를 사용가능합니다.
# 대화 함수 대화창 일부 속성 수정(주석)
대화창수정.아이디 = "대화"
대화창수정.이름창색상 = "125,0,125,255"
대화창수정.이름창폰트크기 = "20"
[대화창수정]
또한 대화 명령어의 경우, 다음과 같이 사용해야 합니다. 여기서 W는 탭 키 한 번 눌렀다는 의미입니다.
[대화V이름="출력할 이름"]
W출력할 대사
▲피니엔진의 스크립트 언어 사용 예시
여기서 여전히 이 인수들을 어떻게 외우냐는 문제는 여전히 남아있습니다. 피니엔진 엔진 측에서는 '['를 입력했을 때 뜨는 자동완성 기능을 통해서 이 것을 해결하려고 했습니다만, 우선 가장 큰 문제는 어찌하여 자동완성에 뜨는 명령어 순서가 가나다 역순인가입니다. 이유는 대화와 같은 자주 쓰이는 명령어가 대화창수정 등의 자주 안쓰는 명령어보다 밑에 있어서 사용할 때마다 키보드를 눌러야 하기 때문입니다. 그리고 만일 자동완성을 안 쓰고 스크립트를 쓰다가 엔터를 치면 마음대로 자동완성이 적용되는 단점이 있습니다. 마지막으로 자동완성 기능을 사용하였을 때 나타나는 인수는 필수 인수 뿐이라서 피니엔진을 완벽하게 쓰려면 한 쪽에 인터넷 창을 켜 두고 작업하거나 완벽하게 명령어를 외워야 할 것 같습니다.
이번 시간에는 스크립트 언어에 대해 알아보았습니다. 익숙해지면 나름 괜찮겠지만, 편리성 면에서는 이번에도 피니엔진이 조금 밀리는 기분이 드는 군요. 그리고 기능 면에서도 피니엔진이 약세이고요. 다음 시간에는 부가기능에 대해 알아보도록 하겠습니다.