나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-10-09 15:02:51

피니엔진

피니엔진
파일:piniengine-logo.png
개발사 Nooslab
유형 게임 엔진
최신 버전 2018년 3월 27일[1]
기반 엔진 Cocos2D-X
기반 언어 C#[2] Python[3], Lua, LNX
라이센스 MIT 허가서
공식 홈페이지[4]]
1. 소개2. 재정난3. 개발4. 기능
4.1. 크로스 플랫폼4.2. 확장 모듈4.3. LNX 스크립트4.4. FAL
5. 문제점
5.1. 부족한 레퍼런스 위키5.2. 빈약한 암호화5.3. 텀블벅 후원 완료 후 업데이트 부재5.4. 조금의 도움을 주는 방법
6. 피니엔진으로 개발된 게임7. 외부 링크

1. 소개

국내 온라인 게임 쉽팜 인 슈가랜드의 개발사로 알려진 누스랩이 개발해 2015년 1월 11일 정식 공개된 무료 크로스 플랫폼 비주얼 노벨 엔진이다. 자체 한글 스크립트인 LNX 스크립트를 사용하며 에디터 내의 미리보기와 자동 완성 등 개발 편의성이 뛰어나다. 복잡한 기능을 적용하기 위해 Cocos2d-x가 바인딩된 Lua 확장 모듈도 지원하며 추후 파티클 툴를 지원할 예정이라고 한다. 이러한 기능으로 주 장르인 비주얼 노벨 뿐만 아니라 틀린그림찾기와 같은 아케이드 게임부터 검은방 같은 어드벤처 게임까지 소화할 수 있다. 리듬 게임도 가능하다. 노가다가 필요하지만

개발사 측에선 피니엔진의 제공 뿐만 아니라 국내 소규모 또는 동인 게임 개발을 장려하기 위해 상업적 사용도 무료이며 개인이나 소규모 팀이 도움을 요청하면 채널링을 도와준다는 의사를 밝혔다.

여기까지만 읽으면 국내 초보 개발자를 위해 하늘에서 내려온 한 줄기의 빛처럼 느껴지겠지만...

2. 재정난

3. 개발


파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
개발하는 방법에 대한 내용은 피니엔진/개발 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.

4. 기능

4.1. 크로스 플랫폼

윈도우즈는 개발 환경, 인스톨러를 통한 배포를 지원하고 안드로이드는 애플리케이션 배포, 확장 파일, In-App 결제, 광고 등을 지원한다. iOS 지원을 계획중이였지만 재정난으로 버그마저 고치기 힘들어진 상황으로 빠른 시간 내에 지원하기엔 힘들 것으로 보인다. 하지만 크로스 플랫폼이 비교적 자유로운 Cocos2d-xQt를 사용하고 있기 때문에 가능성이 아예 없는 것은 아니다.

4.2. 확장 모듈

개발자가 엔진 본래 스크립트 외에도 Lua 언어로 확장 모듈을 제작해 게임에 직접 적용할 수 있다. 엔진의 외각을 조작하는 Pini API 를 모듈에서도 사용할 수 있기 때문에 엔진의 본래 장르를 벗어날 수 있을 수준으로 수정할 수 있다. 다시 말해 코딩할 수 있는 능력만 있다면 엔진을 처음부터 끝까지 갈아엎는 등 마개조가 가능하다는 뜻이다.

4.3. LNX 스크립트

#!syntax cpp
[이미지 아이디="피니" 파일명="피니.png"]

[대화 이름="피니"]
;안녕 난 피니라고 해!

[대화]
;피니엔진을 다운받아줘서 고마워!<클릭>
;더 좋은 엔진이 되도록 늘 노력할게!

[대기 시간=1]

[대화]
;아! <색상 255 0 0 0>이제 가봐야할 시간이야!
;미안! 나중에 다시 봐!

LNX 스크립트는 피니엔진에서 주로 사용되는 스크립트이다. 개발 경험이 전무한 사용자도 쉽게 배울 수 있는 스크립트를 목표로 만들어졌기 때문에 배우는 시간은 겨우 1시간 수준이라고 한다. 국가별 언어를 사용해 개발할 수 있도록 계획 중인 스크립트이기에 이미 지원중인 한국어 외에도 일본어, 중국어, 영어가 계획되어있다고 한다.

전체적인 문법은 키리키리 엔진에서 사용하던 KAG 를 계승하는 것으로 보인다. 물론 어디까지나 모습만 비슷하게 만들었을 뿐 KAG 스크립트에 익숙해진 개발자를 배려해 이쪽 문법을 선택한 것으로 보인다. 스크립트와 관련된 파일인 LXVM.lua 와 PiniAPI.lua 을 열어보면 처음부터 끝까지 피니엔진을 위해 새로 만들었다는 것을 알 수 있다.

4.4. FAL

#!syntax cpp
@애니메이션 애님1 : # '애님1' 이름을 가진 사용자 애니메이션
	@노드 1: # 첫번째 노드를 선택
		@프레임 0: # 0프레임부터 시작해서
			&위치X 0
			&위치Y 0
		@프레임 10: # 10프레임에 끝나는 애니메이션.
			&위치X 100 # 10프레임에 걸쳐 X값을 0부터 100으로 증가시킨다.
			&위치Y 100 # 10프레임에 걸쳐 Y값을 0부터 100으로 증가시킨다.

FAL(Frame Animation Language)는 사용자가 직접 프레임 단위의 애니메이션을 만들어 노드에 적용할 수 있는 기능이다. 기존에 지원했던 애니메이션 매크로가 노드의 복잡하고 자세한 애니메이션을 소화하지 못하는 것을 보완하기 위해 추가된 기능으로 애니메이션이 모두 끝난 뒤 특정 매크로를 실행하는 등 여러 기능을 같이 사용할 수 있어 애니메이션을 많이 사용하는 게임을 만들기 편리하지만 많이 사용하면 게임이 전체적으로 느려진다.

5. 문제점

5.1. 부족한 레퍼런스 위키

사용 방법과 스크립트 레퍼런스 등 공식 위키에 형식 상으로 존재하기는 하나 내용이 굉장히 부실해 엔진을 막 접하는 초심자에게 큰 부담이 든다. 가장 최신 버전에는 이미 삭제된 매크로나 매개변수가 그대로 남아있는 등 업데이트도 허술하고 문서의 편집이 가능하긴 하나 기존 문서를 정리하는 정도만 간간히 올라오는 수준이다.

5.2. 빈약한 암호화

게임을 배포할때 이미지, 사운드를 포함한 리소스 암호화를 지원하지만 이는 리소스 파일을 압축해둔 비밀번호 걸린 ZIP 파일에서 확장자만 변경한 것이다. 실제로 이 기능을 켜면 용량이 어느정도 줄어들지만 리소스를 불러오는 속도가 느려진다. 암호화된 파일의 비밀번호는 배포 파일 중 간단한 문자열 변형[5]이 된 상태로 내장되어있기 때문에 암호화라고 하기엔 터무니없다. 그러나 소스코드를 누가 봐도 간단하게 수정하여 사용한다면 큰 문제 없는 암호화를 사용할 수 있다.

5.3. 텀블벅 후원 완료 후 업데이트 부재

텀블벅 후원이 완료된 지 1년이 되어가는 현재도 업데이트 소식은 전혀 없다. 텀블벅에서는 2017년 3월부터 업데이트가 진행된다고 공지했으나 이걸 기준으로 하더라도 2017년 9월 현재 6개월째 업데이트를 안해준 셈이 된다. 엔진이 무료로 배포되며, 회사가 재정난에 시달리고 있다는 점을 감안 하더라도 후원을 받고 업데이트가 이렇게 까지 늦어지는 것은 절대 정당화 될 수가 없다. 애초에 이렇게 늦어질 것이라면 미리 공지라도 했어야 했는데, 유저 밴드에도 개발자가 남긴 '힘들다'는 식의 글 몇 개 외에는 안내조차 없다. 그저 텀블벅에 '3월에 업데이트 된다'는 말 한 마디 뿐이다.

5.4. 조금의 도움을 주는 방법

6. 피니엔진으로 개발된 게임

6.1. 안드로이드

7. 외부 링크


[1] 공식 Github → 오픈 소스화가 도입되면서 Github 소스 리포지터리가 개발자 ho4040의 리포지터리로 이동된 뒤 가장 최근의 커밋 반영.#[2] 내부[3] 에디터[4] 재정난과 해킹으로 인해 서버와 데이터베이스가 날아가 현재는 네이버 카페로 이동된다[5] 정확히는 파일에 적혀있는 것을 변형해서 비밀번호로 사용한다.[예제] 예제 게임으로 스크립트와 리소스가 공개되어 있다.[예제] [8] 피니엔진 후원자 프로젝트 쪽에 누스랩 사측에서 전달한 공식 답변으로, 서버 폐기로 인하여 레퍼런스 위키 데이터가 유실되었다. 자료가 필요하다면, 미러위키에서 이제 찾아야 한다.