메뉴 건너뛰기

정보/뉴스
2015.10.09 14:46

쯔꾸르 MV를 해킹하여 알아낸 정보

조회 수 2474 추천 수 1 댓글 7
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
나무위키에 기재된 내용에 따르면 ( https://namu.wiki/w/RPG%20%EC%AF%94%EA%BE%B8%EB%A5%B4%20MV )
최근 한 일본인이 MV 공식 사이트에 기재된 데모 게임을 해킹하여 분석하였다 합니다.
저도 직접 들어가서 정보를 확인하였으며, 상당히 흥미로운 몇 가지 정보를 알 수 있었습니다.

 

해킹한 일본인이 분석한 글 : http://tomotaka.tk/tkoolmv-hack-01/

 

01 알아낸 사실들.

 

1. 데모 파일은 Amazon Web Services S3 북부 캘리포니아 서버에 파일을 두고 있음. 직접 URL을 wget하면 다운로드 가능

 

2, HTML5 버전은 Pixi.js 기반

 

3. Audio API의 사정으로 예전 스마트 폰 · 태블릿과 PS4, WiiU에서는 동작하지 않음.

 

4. 하지만 해킹하면 기존 브라우저에서도 움직일 가능성 있음. 물론 속도는 보장 불가 (게임 자체가 힘들 거라고 하네요)

 

5. Android/iOS는 HTML5판도 움직일 수 있지만 정식 버전에서는 apk/ipa도 지원

 

6. 모든 화상의 사이즈는 VX ACE보다 1.5배 늘어남

 

7. RGSS3의 확장판이라 할 수 있을 정도로 그 구조가 비슷함

 

8. 게임 시작시 로딩 순서

- 1.지도 정보

- 2.맵칩

- 3.캐릭터 칩

- 4.음악

 

9. 페이스칩 그래픽과 전투시의 적 캐릭터 소재는 이벤트가 발생할 때 마다 로드함

 

10. JavaScript는 압축되어 있지만 읽기 쉽고 모던한 글쓰기 (번역이 잘 되지 않았습니다)

 

11. "M + 1m Regular" 폰트 를 사용하고 있기 때문에, 일본어 읽고 쓰기도 가능

M + 1m Regular 폰트 사이트 바로가기 (클릭)

 

12. 한국어/중국어/아랍어 등 대략 생각할 수 있는 문자/언어는 표시 가능

 

13. 외부 폰트 로드로 특수 문자나 기호를 대화에 표시시키는 일도 가능

 

14. 지도 정보 · 회화 정보 · 이벤트 정보는 Map00x.json에 서술되어있음

 

15. json을 쓰면, 스테이터스, 아이템, 메뉴, 회화 등 모든 정보를 쓸 수 있음 (?)

 

16. 전투 시스템은 영어 샘플 게임에 구현되어 있지 않지만, json에서 호출하여 이미지를 준비하면 움직임

 

17. 모든 명령이 API 화되어 있으며, JavaScript를 읽기 → jsonN 호출에 상당한 것이 실현 될 수 있음

 

 

 

02 개조하여 확인한 부분.

 

현재 이 분은 해킹한 MV를 개조하여 실험하는 프로젝트를 진행중입니다.

 

ver 1.0

- 일본 서버에 둔 것만으로 속도가 4.4 배 속도. 7.34 초에서 1.66 초로
- 전 회화문. 메뉴를 일본어나 번역이 어렵고 귀찮게 된 것으로 의역과 재료에 치우치다

- ogg 파일을 변경합니다. (링크)에서 음악을 빌렸습니다
- 무거운 이미지 파일의 경량화를 함 (타이틀 화면 등)
- PLiCy에서 뿌리시유 짱 과 네코바 을まぎれこま하기 (뭔 소린지 모르겠네요..)
- Google Analytics를 게임에 삽입 할 수도있다 (웹로그 분석 툴입니다)
- 전투 시스템 해킹 사카모토昌一郎씨 에게 물어보고 받고 구현 (전투 이미지를 외부에서 구한 것으로 보입니다)

 

ver 1.1

-또한 전투 시스템을 개선하고 사이드 뷰 전투를 실현
-글꼴을 개조 자체 언어를 표시
-게임 화면 하단에 광고 강제 삽입
-음악을 ogg 파일에 추가 m4a 파일 추가

 

폰트는 라이선스 문제로 인터넷상에 올리지 않습니다.

권리 관계를 깨끗하게 만들면 나중에 추가합니다. Glyphs를 이용하고 폰트를 편집·추가했습니다.
게임 화면 하부의 광고도 너무 짜증 나서 인터넷상에 올리지 않습니다.

 

caption_151004_twitter_tkoolmv_battle.gif

 

도중에 멈춰 있던 전투 시스템을 정상 동작까지 개선했습니다

 

전투 시스템은 ver1.1으로 개선 상당히 움직이게되었습니다.
종료하기 위해 [도망]를 선택해야하지만, 완벽하게 조립까지 한걸음 상황입니다.
배틀러 소재는 PLiCy 씨 와 vibrato 씨 ( P3X-774 )에서 빌렸습니다. 이 자리를 빌어 감사드립니다.

 

광고 기능도 추가 되었습니다만, 너무 방해됩니다....
HTML부분에 광고 태그를 추가하며 JavaScript로 표시 계층을 제어합니다.
실제 게임에 구현할 때는 좀 더 꼼꼼하게 만들 필요가 있습니다.
가령 게임 오버의 때만 표시하거나 표시 부분이 방해가 되지 않게(혹은 오류 탭 하게?)조정하거나
광고 서버의 구축도 필요하겠지요.
하지만 간편한 내용이면, 손쉽게 추가할 수 있습니다.
광고가 없어도 제작자로부터 소식이나 게임의 갱신 정보를 표시하는 것에도 쓸 수 있겠습니다.

 

 

03 모든 기능의 API화.

우선 좋은 점은 모든 기능이 JavaScript (rpg_core.js 등)을 통해 API 화되고있는 점입니다.
json 파일에서 명령을 호출하기 만하면 모든 것이 가능합니다.
예를 들어

 

caption_151004_tkoolmv-hack-01_001.png

 

{ "code": 101, "indent": 0, "parameters": "Package1", 0,0,2]},
{ "code": 401, "indent": 0, "parameters": "댓글 표시 "]}

 

하면, 캐릭터의 얼굴 그래픽을 호출하면서 댓글을 볼 수 있습니다.
code : 101이 얼굴 그래픽 및 메시지 창 호출에서 code : 401 문자 표시를 호출합니다.

 

caption_151004_tkoolmv-hack-01_002.png

 

{ "code": 102, "indent": 0, "parameters": [["いいね","やだよ", 1,0,1,0]}

 

code102은 조건분기 명령입니다.

 

{ "code"129 "indent": 0, "parameters": 2,0, true]}

 

code : 129 동료를 추가합니다. 이 경우 id2 니나가 동료에 참가합니다. 니나의 정보는 ./data/Actors.json에 저장되어 있습니다.

화면 효과 (페이드 아웃과 비를 내리게하는) 라든지, NPC 캐릭터의 이동, 전투 시작, 맵 이동 온갖 명령이 API 화되어 간결 명료합니다.
RGSS3에 익숙한 사용자라면 취급 수준이 아주 비슷합니다.
사실 저는 쯔꾸르 VX와 VX Ace에서 게임을 만든 것이 아닙니다. RGSS 초반의 지식 밖에 없지만 그래도 취급이 쉬웠습니다.
원래 이번 해킹에서는 JavaScript를 거의 설명하지 않습니다.
쓰기 만 익히면, json파일 덮어쓰기에서 모든 것이 충분하다 버립니다.
물론 현재는 아무런 명령이 어떤 행동인지 rpg_core.js 등을 해독 할 필요가 있지만.

어디 까지나 기술적 관점에 한해서 말하자면 RPG 만들기 MV 프레임 워크가 OSS의 JavaScript 게임 엔진으로 사용하게됩니다.
물론 RPG 만들기 MV 제작 팀의 공식 발표 · 이용 약관이 없으면 정말 말할 수 없습니다만,
그만큼 활용하기 쉬운 게임 제작 프레임 워크라고 할 수 있습니다.

 

 

04 로드 최적화.

caption_151004_tkoolmv-hack-01_003.png

(Firefox Developer에서의 통신 로그)

 

다음 주목하고 싶은 것은 로드 최적화에 대해서입니다.


최근의 개발 상황을 모르기 때문에 나의 지식이 부족 할지도 모르지만..
일반적인 게임은 시작할 때 많은 이미지 / 음악 등을 다운로드 및 캐시 해 두고, 호출 한다고 생각합니다.
그러나 쯔 꾸르 MV는 이벤트 시작시 필요한 파일을 다운로드하여 호출합니다.

 

쯔꾸르 공식 영문 샘플 게임을 플레이하면 음악이나 메시지 창의 표시가 느린 것을 알 수 있습니다.
이것은 서버에서 필요한 데이터를 호출하고 있기 때문입니다.
지리적으로 가까운 서버에 데이터를 두면, 속​​도 문제는 개선됩니다.


내 서버에 게임을 둔 결과 읽기 속도가 4.4 배 빨라지며, 우둔한 느낌이 없어졌습니다.

이것에는 각각 장점과 단점이 있는데,
장점은 데이터 분할을 통해 게임을 시작할 때로드가 빠른 점.
단점은 저속 회선자에게는 플레이시의 체감 속도가 떨어진다는 겁니다.


또한 해외 플레이어가 게임을 받기 플레이하기 위해 해외 서버 및 CDN 을 준비 할 필요가 있음을 의미합니다.

어쩌면 RPG 만들기 MV 측의 옵션에서 일괄 호출도 설정 가능 할지도 모릅니다.
향후의 발표에 기대하고 싶습니다.


개인적으로 수시 호출 기능이 탑재 된 저가 게임 제작 도구는 처음 접한 때문에 신선하게 느꼈습니다.
(Unity 등으로도 동일한 것을 할 수있는 것일까? 내 지식 부족, 미안 해요. 아시는 분이 있으시면 연락주세요.)

 

 

05 2D 렌더링 엔진은 Pixi.js를 채용.

이미지 1.png

(링크)

 

Pixi.js 는 지금까지 몰랐습니다. 그러나 살펴보면 분명히 RPG 만들기 MV에 딱 맞는 프레임 워크라 생각합니다.

대략적인 기능을 정리하면,

 

-멀티 플랫폼
-2D 렌더링 속도가 빠름
-이미지와 글꼴의 취급이 간편
-WebGL 필터를 탑재. 이펙트 기능 사용
-이미지 혼합 및 이미지 스프라이트 기능 탑재
-자산 로더 탑재
-멀티 터치 지원
-API 구성은 ActionScript3 라이크
-최신 브라우저에서는 WebGL을 이전 세대에서는 Canvas에 자동 대체
-MIT 라이센스

 

한마디로 요약한다면 그리기에 특화된 그래픽 라이브러리 입니다.
렌더링 속도의 고속 및 API 디자인의 아름다움이 특징입니다.
RPG 만들기 MV가 게임 제작 엔진을 주관하고 Pixi.js가 그리는 부분을 담당합니다.
RPG 만들기 MV의 표준 기능에 만족하지 못한다면 Pixi.js의 API를 호출하면,
모든 그래픽 표현이 가능 되겠지요.


예를 들어 3D 디스플레이와 고리 고리에 사용자 지정 메뉴 등도 실현 가능하다고 생각됩니다.
뭐, 거기까지한다면, 쯔꾸르MV 가 아니라 Unity 를 사용하는 것이 좋을지도 모르지만......

 

 

06 Pixi.js을 사용한 사례.

이미지 2.png

(링크)

소스 코드와 함께 다양한 구현 예를 볼 수 있습니다.

 이미지 3.png

(링크)

 

일부러 소스 코드의 125행째에 "Androidify의 애니메이션을 근저에서 지탱하는 것이 Pixi.js입니다.
이 고속으로 범용성 높은 2D렌더링 엔진은 WebGL과 Canvas양쪽에서 쾌적하게 동작합니다."라고 코멘트하고 있습니다.

 

이미지 4.png

(링크)

Pixi.js 개발원의 goodbody 사의 공식 데모 사이트입니다.
3D 표현 · 그리기 효과 물리 연산을 고리 고리 사용하면서도 고속으로 동작하고있는 것을 알 수 있습니다.

 

 

07 보안 문제에 대하여.

아마 여기까지 읽고, 가장 걱정되는 것은 "너무 쉽게 해킹 할 수 버린다면 어떤 게임도 분석 지난 것은 아닌지?"라는 우려입니다.
특히 유료 게임의 제작을 생각하는 사람에게는 골치 아픈 문제입니다.

모든 HTML5 / CSS / JavaScript  게임이 안고있는 공통의 과제라고 할 수 있지만..

 

현재 공개되어있는 샘플 게임이기 때문에 보안에 대해 확실하게 말할 수 없습니다.
그러나 개조 난이도는 매우 낮은 불안이 남는 것은 확실 하겠지요.

 

하지만 여기까지 데이터 액세스가 용이하다하면 자작 방어 수단을 물려시키는 방식도 상상할 수 있습니다.
예를 들어, 특정 플랫폼에 특화시켜 암호화 / 복호화 소프트웨어 추가 구현하고 게임 시작시 정품 인증을 하던가,
또는 HTML5 버전에서는 사용자 등록 시스템을 제공하고 사용자 ID를 ImageMagick 이미지 워터 마크로 묻어 버린 다든가.
Windows 플랫폼에서는 이미 히카루 씨 가 도전하고 있으며, 앞으로의 전개가 기대됩니다.

 

1.png

 

2.png

 

3.png

 

나는, 결제 시스템 + 사용자 등록 시스템 + ImageMagick연결, 이미지 워터 마크를 탑재하는 방향으로 도전하고 싶습니다.
이미지 워터 마크 (디지털 워터 마킹, 스테가노그라화ー이라고도 불린다)는

화상 속에 인간에게는 보이지 않는 정도의 글자를 심는 기술입니다.
영화나 전자 서적의 유출 방지 기술로서 사용되고 있습니다.


즉 게임이 외부에 유출되었을 때 "누가 복사했는지" 알 것입니다.
유출하지 않도록 암호화하는 것이 아니라 유출했을 때 곧바로 소송을 제기할 수 있는 타입이군요.

 

 

08 앞으로의 해킹 예정.

- 효과음을 울리는 (지연은 일어나지 않는지, 동시 재생 수는 몇 가지인지)
- 큰 사이즈 맵에서의 성능 테스트
- 전투 시스템을 완벽하게 복원, 애니메이션과 배틀러를 만들 필요가있다
- 플러그인 시스템의 동작 확인 이미 히카루 씨 가 과금 시스템 임시 구현에 성공 라는 것
- Electron 에서 랩하고 Windows / Mac OSX / Linux에서 동작하는 게임을하는
- apk 화하여 Android에서 움직여 본다. 구현 방법은 몇 가지 있다고 생각합니다
- iOS 대응시켜 iPhone에서 움직여 본다
- Windows 스토어에 대응 게임하기 Android / iOS보다 쉬운 것 같습니다
- 네트워크 지원 기능 (메시지 송수신 이라던가)의 구현
- 정품 인증
- 과금 시스템과의 연동
- 이미지 워터 마크를 통한 유출 대책
- 3D 게임의 제작
- 세이브 데이터의 클라우드 화

 

 

2015.10.09.2:49

링크 연결 문제를 수정했습니다.

?
  • ?
    ㅌㄹlove 2015.10.09 14:59
    아니 이런쩌는 자료를 가져오시다니ㅠ
  • ?
    Guestman 2015.10.09 15:28
    감사합니다. 대단한자료 추천!
  • profile
    천무 2015.10.09 18:48
    오 좋은정보 입니다. 역시 양덕들 수준.
  • ?
    CVR 2015.10.21 16:09

    오오.. ㄳㄳ

  • ?
    Napa 2015.10.22 09:28
    좋은정보 감사해용
  • profile
    찐수 2015.10.22 14:32

    이제 발매까지 1일 남았군요 기대됩니당!

  • profile
    최빛빛 2015.10.23 11:49
    리얼 굳 인포메이션! 나무위키 수정 많이됐네요. 전엔 저만큼 없던뎅...

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
155 심심해서 즉흥적으로 쓰는 스토리 5 APED 2014.06.21 864 2
154 무기, 방어구 1 심심치 2014.05.21 1100 2
153 정보/뉴스 '투더문' 제작팀의차기작 소식 6 천무 2016.01.24 2397 1
152 맞춤법을 알려주는 사이트입니다. 2 부초 2015.06.05 425 1
151 기타 폐기된 프로젝트[쿠키월드 스토리] 2 치와도라 2014.12.22 794 1
150 네코데브에는 그 흔하다는 마왕잡는 게임 찾기가 어려워서 시놉시스 올려봅니다. 만들어보실분? 4 심심치 2014.11.23 730 1
149 기타 컬러맨 1 Noram 2014.11.15 539 1
148 교역게임을 위한 교역품 2 심심치 2014.10.10 890 1
147 한글패치피드백 오역 4 file 백난화백 2015.12.07 1789 1
146 한글패치피드백 한글패치 피드백 게시판 입니다. 천무 2015.12.06 799 1
145 정보/뉴스 <비욘드 더 월드 - 개명의 날> 제작발표 14 file kaillus 2015.11.26 2222 1
144 정보/뉴스 RPG MV 이벤트 커맨드 번역본 4 file MagNesium 2015.11.07 840 1
» 정보/뉴스 쯔꾸르 MV를 해킹하여 알아낸 정보 7 file 양갱님 2015.10.09 2474 1
142 정보/뉴스 [정보] RPG만들기MV 1차정보 - 겨울발매예정 8 file 천무 2015.08.13 666 1
141 기타 [파이코인] 휴대폰으로 채굴 가능한 가상화폐! 꼭 하시길 바랍니다. file 럭키커피 2021.07.01 789 0
140 기타 질문! 네코플레이어2.0 에 UNR 이나 KnM 이 돌아가나요? (돌아가면..대박인데?) 4 훈민정음 2016.04.11 1238 0
139 정보/뉴스 2D게임 제작에 유용한 사이트 1 file 국산기름 2016.02.27 2271 0
138 한글패치피드백 번역 오류 1 드래곤규 2016.01.30 1806 0
137 정보/뉴스 베스트러시 4 체험판 출시예정 1 별광 2016.05.13 943 0
136 기타 노려라! 마왕 베스트게임 신청합니다. 2 데크크래프트 2016.01.14 729 0
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8




 주요공지보기
게시판 제목 글쓴이 날짜 조회 추천
[공지] 인디사이드 활동 규정.(ver.20160119) 10 천무 2023.04.28 8132 0
©2013 KSODESIGN.All Rights Reserved