로그인

회원가입 | ID/PW 찾기

취재

VBA도 없이 엑셀로 '드래곤 퀘스트 3' 구현한 일본의 괴짜 화제

"다음은 테트리스다"

에 유통된 기사입니다.
김재석(우티) 2020-11-05 17:54:35

세상은 넓고 괴짜는 많습니다. 4일 일본에서는 고전 RPG <드래곤 퀘스트 3>(1988)를 엑셀로 구현한 한 유저가 나타나 화제가 됐는데요.

 

아이디 파파센세(パパセンセイ)는 자신의 블로그에 "1개월에 걸쳐 <드래곤 퀘스트 3>를 엑셀로 만들었다"며 그 기록과 영상을 공개했습니다. 

 

파파센세는 작업하면서 VBA(Visual Basic for Application)를 일절 사용하지 않았다고 이야기했습니다. VBA란 MS 오피스에 내장되는 프로그래밍 언어로 프로그램 안에서 사용자 정의 함수를 만들 때 주로 사용됩니다. 그러니까 이 개발자는 순전히 프로그램에서 지원하는 기능만 사용한 것입니다.

 

사용자 정의 함수 없이 어떻게 셀 위에서 움직임이 구현되는지 영상을 볼까요?

 


 

파파센세는 최소 2가지 내용의 데이터 사이의 관계를 마커로 나타낼 때 쓰는 분산형 차트를 사용했습니다. 엑셀 안에는 마커를 이미지로 지정하는 기능이 있는데, 이 이미지를 <드래곤 퀘스트 3> 캐릭터로 바꿔서 실제 게임의 인터페이스처럼 엑셀을 꾸민 것이죠.

 

마커를 움직일 수 있도록 값을 설정하면서 각종 상황을 구현했습니다. 전투 돌입 효과나 명령 표시도 모두 이같은 방식으로 작동한다고 하네요. 분산형 차트 마커의 이미지 크기를 확대/축소할 수 없기 때문에 몬스터의 이미지 크기는 모두 같은 크기로 통일되어야 했습니다. 그러니 이 어셋은 모두 개발자가 직접 엑셀에서 작업한 것입니다.

 

(출처: 파파센세 블로그)

 

이렇게 구현한 <드래곤 퀘스트 3>의 용량은 5.2MB. 대부분 이미지 어셋이라고 합니다. 포스트에 따르면, 전투 로직만 놓고 보면 약 660KB가 나온다고 하네요.

 

또 엑셀의 순환 참조 기능을 통해 셀의 값을 변동시켰습니다. 반복 계산을 가능하게 하면서 프로그램의 경고 메시지를 무시하게 설정한 뒤,  위에서 개별 이미지가 이용자의 조작에 따라서 움직이는 것처럼 보이게 한 것이죠.

 

이 파일은 아직 최적화가 완료되지 않았고, 저작권 문제도 해결되지 않았기 때문에 공개되지 않는다고 합니다. 파파센세는 "혹시 관심이 있는 사람은 직접 만들어보라" 권했는데요. 보통 레벨이 아니고서는 그러기 쉽지 않을 것 같습니다. 

 

<드래곤 퀘스트 3> 구현에 관한 자세한 내용은 개발자의 블로그를 보시는 게 좋을 것 같습니다.​ 개발자의 다음 목표는 엑셀로 <테트리스> 만들기라고 하네요.

 

 

(출처: 파파센세 블로그)

 

(출처: 파파센세 블로그)