최근 수정 시각 : 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. 재정난

  • 업데이트가 조금씩 느려지더니 결국 우려했던 일이 발생했다. 피니엔진의 개발사인 누스랩에게 재정난이 발생하고 2015년 11월 24일을 마지막으로 공지사항, 업데이트, 버그 수정 등 관련 소식이 전혀 올라오지 않고 있다. 프로젝트를 담당하던 개발자를 타 부서로 이동시켜 개발이 무기한 중단된 상황이기 때문이다. 피니엔진을 유료나 부분 유료로 변경한다는 선택도 있지만 재정난에도 불구하고 유료화에 대한 계획은 전혀 없다고 한다. 이로써 엔진을 떠나지 못하는 여러 사용자에 의해 연명하고 있는 상황이 되어버렸다.
  • 2016년 9월 19일 피니엔진 사용자가 모여 만든 비공식 후원이 텀블벅에서 시작됐다. 피니엔진의 업데이트가 목적이며 프로그래머 평균 월급인 3,200,000원이 목표로 100% 마다 한달 치 작업을 할 수 있다고 한다.#
  • 2016년 11월 8일 텀블벅 후원이 성공적으로 종료되었다. 총 기부금은 3,794,900원으로 목표보다 조금 높은 수준이다. 이 돈은 개발비용, 후원 전달에 사용하고 있다 후원 전달 중 연락 두절이 되면 후원에 큰 영향을 미친다.
  • 2016년 12월 11일 소스 전체가 GitHub에 공개되어 오픈 소스로 변경되었다. 이 오픈 소스의 발전의 환경이나 여러가지를 위해서는 기여자 분들이 꼭 필요하다.
  • 2020년 누스랩 완전 폐업

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월에 업데이트 된다'는 말 한 마디 뿐이다.
  • 2017년 10월 23일 기준 공식 업데이트 전 베타가 개발자 카페에 공개되었으며 2017년 11월 26일 공식 업데이트가 나온다고 공개되었다.(피니엔진 사용자 밴드 기준)
  • 2018년 현재 유저밴드에서 피니엔진 사용자에게 보여주는 태도나 업데이트 속도 등을 보아하면 행복회로 굴리기다. 이 문제로 유저수가 급감하고 있다.

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

  • 현재는 GitHub 이슈 등록이 있다.
  • 엔진의 기여자가 되는 방법도 도움이다.

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

6.1. 안드로이드

  • 사운드 노벨
  • 미소녀 게임

7. 외부 링크


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