크리스탈 툴즈

크리스탈 툴즈(Crystal Tools)는 일본 회사 스퀘어 에닉스가 사내에서 제작하고 사용한 게임 엔진이다. 그래픽, 사운드, 인공지능과 같은 요소에 대한 표준 라이브러리를 결합하면서 게임 개발자에게 다양한 저작 도구를 제공한다. 크리스탈 툴즈의 목표 시스템은 플레이스테이션 3, 엑스박스 360, 마이크로소프트 윈도우, Wii이다. 이는 크로스 플랫폼 제작을 더욱 실현 가능하게 만들려는 의도로 결정되었다. 이 엔진에 대한 아이디어는 회사의 개별 팀의 기술과 노하우를 효과적으로 공유하기 위해 통합된 게임 개발 환경을 가지려는 스퀘어 에닉스의 바람에서 나왔다.

크리스탈 툴즈는 2005년 8월 화이트 엔진이라는 코드명으로 개발에 들어갔다. 플레이스테이션 3 전용 롤플레잉 게임 파이널 판타지 XIII을 위해 만들어졌지만, 처음에는 플레이스테이션 3용 파이널 판타지 VII 기술 데모에서 시연되었다. 크리스탈 툴즈의 호환성을 다른 게임 프로젝트 및 시스템으로 확장하기로 한 결정은 전사적 엔진의 공식 프로젝트 시작을 알렸다. 개발은 이를 위해 특별히 설립된 다쿠 무라타가 이끄는 연구 개발 부서에서 수행되었다. 스퀘어 에닉스의 현재까지 가장 큰 프로젝트로서, 크리스탈 툴즈의 제작은 여러 주력 타이틀의 동시 생산에 상당한 문제를 야기했다. 다양한 비평가들은 이 엔진이 파이널 판타지 XIII 출시의 상당한 지연의 주요 원인이라고 지적했다.

특징
크리스탈 툴즈는 일본 개발사이자 퍼블리셔인 스퀘어 에닉스의 통합 게임 엔진으로, 그래픽 렌더링, 물리 처리, 모션 제어, 시네마틱, 시각 효과, 사운드, 인공지능, 네트워킹을 위한 표준 라이브러리를 결합한다. 이 엔진의 목표 시스템은 플레이스테이션 3, 엑스박스 360, 마이크로소프트 윈도우, Wii이다. 개발 측면에서 이 엔진은 대규모 게임 프로젝트에 중점을 둔 다양한 저작 도구의 형태를 취한다. 여기에는 3D 모델용 캐릭터 뷰어, 효과 및 컷신 편집기, 프리비주얼라이제이션 도구, 사운드 메이커가 포함된다. 어도비 포토샵, 오토데스크 마야, 오토데스크 소프트이미지와 같은 타사 프로그램의 사용은 플러그인을 통해 지원된다. 개별 저작 도구는 GRAPE2라는 통신 서버를 통해 연결되며, 이 서버는 모든 다른 데이터 형식을 읽고 처리하며 최종 게임의 즉각적인 미리보기를 제공한다. 이 엔진은 고도로 사용자 정의가 가능하며 필요할 경우 새로운 기능과 도구를 추가하여 확장할 수 있다. 크리스탈 툴즈는 더 쉬운 크로스 플랫폼 개발을 허용하지만, 대상 시스템의 비디오 메모리 및 마이크로아키텍처의 차이로 인해 여전히 텍스처 크기와 같은 게임 내 미세 조정이 필요하다.

개발
기원
다른 제작 팀을 가진 비디오 게임 회사로서 스퀘어는 경쟁사 에닉스와의 합병 전부터 직원들이 노하우와 기술을 효율적으로 공유하기를 바랐다. 공통 개발 인프라와 엔진에 대한 열망은 2D에서 3D 게임 제작으로 전환하던 시기에 만들어진 1997년 롤플레잉 비디오 게임 파이널 판타지 택틱스로 거슬러 올라간다. 당시 게임 작업을 하던 아티스트들은 프로그래머 다쿠 무라타에게 자신들의 작업이 최종 게임에서 어떻게 보일지 빠르게 확인할 수 있는 방법을 요청했다. 개발이 개인용 컴퓨터에서 이루어졌기 때문에 그래픽은 컴퓨터 모니터에 표시되었다. 이는 텔레비전 화면에 표시되는 플레이스테이션 콘솔의 실제 그래픽과는 매우 달랐다. 처음에는 모든 데이터를 PC에서 콘솔로 먼저 전송해야 했기 때문에 게임 비주얼의 충실한 미리보기는 너무 시간이 많이 걸렸다. 이 단계를 피하기 위해 무라타는 즉석 미리보기 도구를 만들었다. 이 도구를 통해 그는 곧 아티스트의 생산성과 작업 품질 향상을 목격했다. 2000년의 베이그랜트 스토리의 경우, 개발자들은 새 도구를 처음부터 프로그래밍하는 대신 이 즉석 미리보기 도구를 재사용하기로 결정했다. 무라타와 그의 동료들은 게임의 완전한 다각형 3D 그래픽에 맞춰 통합된 미리보기 및 컷신 도구를 만들기 위해 새로운 기능을 추가했다. 2001년의 플레이온라인 서비스를 통해 회사는 모든 부서에 공통 소프트웨어를 도입하려는 첫 시도를 했다.

하지만 스퀘어 에닉스 합병 이후에도 개별 팀은 각 게임에 맞춰 자체 도구를 계속 프로그래밍하고 맞춤화했으며, 이는 해당 제작자만이 사용할 줄 알았기 때문에 결국 낭비되었다. 개발 중인 파이널 판타지 XII에 필요한 자산 및 도구의 양과 7세대 콘솔의 임박한 도래로 인해, 2004년에 회사 전체의 공통 데이터 형식이 제안되었다. 이는 사내에서 개발되어 FBX 및 COLLADA와 같은 범용 형식을 대체할 예정이었다. 공통 도구 세트를 가진 엔진이라는 목표를 실현하는 것은 많은 제작 팀이 회사 전체의 이익보다는 자신들의 이익을 추구하기를 원했기 때문에 어려운 것으로 판명되었다. 다른 회사 부서의 일부 직원이 자발적으로 프로젝트에 참여했지만, 그들의 느슨한 조직 구조는 결과를 낳지 못했다. 그럼에도 불구하고 무라타는 이러한 공동 노력을 올바른 방향으로 나아가는 첫걸음이라고 생각했다. 2005년, 그는 새로 설립된 기술 부서의 총책임자로 임명되었다. 비록 이로 인해 무라타와 그의 부하직원들이 회사 전체의 엔진에 대해 더 광범위하게 논의할 수 있었지만, 인력 부족으로 인해 다시 의미 있는 성과를 거두지 못했다.

버전 1.0
2005년 일렉트로닉 엔터테인먼트 엑스포에서 공개된 PS3용 파이널 판타지 VII 기술 데모의 그래픽에 대한 대중의 긍정적인 반응에 따라, 파이널 판타지 XIII은 당초 계획했던 플레이스테이션 2 대신 플레이스테이션 3로 출시하기로 결정되었다. 같은 해 8월, 기술 부서는 XIII 전용으로 사용될 예정인 플레이스테이션 3 엔진인 화이트 엔진 개발을 시작했다. 그러나 8개월 후, 이 엔진을 액션 RPG 파이널 판타지 버서스 XIII (이후 파이널 판타지 XV로 리브랜딩 및 재활용) 및 MMORPG 파이널 판타지 XIV와 같은 다른 프로젝트와 호환되도록 용도를 변경하기로 결정되었다. 회사가 멀티 플랫폼 환경에서 경쟁력을 유지하기 위해 엔진 지원은 플레이스테이션 3에서 서양 시장에서 성공한 엑스박스 360과 마이크로소프트 윈도우로 확장되었다. 이는 전사적 엔진의 공식 개발 시작을 알렸으며, 이를 위해 기술 부서는 2006년 9월 연구 개발 부서로 확장되었다. 무라타는 정규 직원을 거느리고 이 부서의 총책임자로 남았다.

크리스탈 툴즈 개발 중, 연구 개발 부서는 스퀘어 에닉스의 주력 타이틀을 만드는 데 필요한 도구 유형을 지속적으로 조사했다. 가장 자주 요청되는 기능 중 하나는 캐릭터 클로즈업의 광범위한 사용이었다. 이를 통해 직원들은 파이널 판타지 시리즈가 캐릭터의 "애니메이션 같은 멋짐"을 크게 강조한다는 것을 깨달았다. 결과적으로 엔진 개발자들은 정확한 물리보다는 매력적인 비주얼에 중점을 두었다. 양식화된 모습을 얻기 위해 추가 조명, 블러, 시각 효과를 위한 후처리 필터가 구현되었다. 스퀘어 에닉스의 대규모 팀은 일반적으로 업계 베테랑과 신인 게임 개발자의 혼합으로 구성되었다. 이를 수용하기 위해 엔진의 그래픽 사용자 인터페이스는 또 다른 주요 기능이 되었고 가능한 한 직관적으로 설계되었다. 기술 및 인적 자원에 대한 대규모 투자는 화이트 엔진을 현재까지 회사의 가장 큰 프로젝트로 빠르게 만들었다. 1년의 작업 끝에 2007년 9월에 엔진의 버전 1.0이 완성되었다.

버전 1.1 및 이후
버전 1.0이 완성된 후, 엔진의 코드명 화이트 엔진은 공식 명칭 크리스탈 툴즈로 변경되었다. 이는 회사와 그 작품을 더 잘 나타내기 위함일 뿐만 아니라, 엔진의 유연성을 상징하기 위한 실제 결정의 굴절 효과 때문이기도 했다. 다음 몇 달 동안 프로그래머들은 엔진을 버전 1.1로 발전시키고 Wii에 대한 예비 지원을 추가했다. 2011년 9월, 파이널 판타지 버서스 XIII 감독 노무라 테츠야와 그의 팀은 크리스탈 툴즈를 자체 액션 게임 엔진으로 교체했으며, 이 엔진은 회사의 새로운 루미너스 스튜디오 엔진의 조명 기술로 보완되었다. 파이널 판타지 XIII-2를 담당한 팀과 같은 다른 팀은 크리스탈 툴즈를 계속 사용하고 개선했다. 라이트닝 리턴즈 파이널 판타지 XIII의 경우, 엔진은 오픈 월드 디자인의 게임에 더 적합하도록 조정되었다.

문제점
파이널 판타지 XIII이 제작되는 동안 크리스탈 툴즈의 개발은 상당한 문제와 지연을 야기했다. 프로그래머들은 직원들의 모든 요구 사항을 고려하는 데 많은 시간을 보냈다. 이 피드백을 바탕으로 무라타의 팀은 엔진을 여러 게임 프로젝트의 요구 사항에 맞게 조정하려고 시도했지만, 이는 사실상 불가능한 것으로 판명되어 엔진의 사양을 확정하는 것을 막았다. 더욱이, 엔진의 개별 도구들을 별도의 그룹에서 작업했기 때문에, 사용성과 규정 준수를 보장할 수 있는 포괄적인 소프트웨어 문서화가 없었다. 더 이상 기다릴 수 없었던 파이널 판타지 XIII 팀은 게임의 제작 일정을 맞추기 위해 자산을 만들기 시작할 수밖에 없었다. 그러나 사양 부족으로 인해 이러한 자산들은 엔진과 호환되지 않았다. 결국, XIII이 크리스탈 툴즈의 주요 초점이 되어야 한다고 결정되었고, 게임 팀은 필요한 도구와 사양을 받기 위해 연구 개발 부서와 더욱 긴밀하게 협력하기 시작했다. Wii용 크리스탈 툴즈의 예비 지원이 개발되었지만, 콘솔은 모든 구성 요소를 완전히 지원하지 않았다. 2008년 무라타는 스퀘어 에닉스가 미래에 어느 시점에 다른 회사에 엔진을 라이선스할 수도 있다고 말했지만, 제한된 문서와 라이선스 사용자 지원의 비실용성 때문에 그렇게 하는 데 큰 문제가 있었다. 2년 후, 게임 프로듀서 요시노리 기타세는 새로운 게임과 함께 처음부터 엔진을 개발하는 것이 실수였을 수 있으며, 타이틀 발표와 출시 사이의 긴 기간의 주요 원인이었을 것이라고 말했다.

평가
파이널 판타지 XIII 출시 당시 크리스탈 툴즈는 비평가들로부터 찬사를 받았다. 유로게이머의 리처드 리드베터는 이를 "훌륭한 3D 엔진"이라고 묘사했다. 와이어드 UK의 네이트 랜손은 이 엔진이 엑스박스 360에서 볼 수 있었던 "가장 숨 막히는 컷신과 3D 그래픽"을 만들어냈고 "길고 긴 컷신을 이전보다 더 영화처럼" 만들었다고 느꼈다. RPGFan에 기고한 스티븐 해리스는 크리스탈 툴즈를 "파이널 판타지 XIII의 입이 떡 벌어지는 비주얼을 구현한" "인상적인 소프트웨어"라고 불렀다. 그러나 시간이 지남에 따라 여러 언론 매체는 스퀘어 에닉스가 자체 엔진을 구축한 것에 대해 비판했다. 게임존의 제임스 윈은 크리스탈 툴즈를 개발 과정에서 "돈을 태워버리는" 수단으로 보았고, 회사의 프로젝트에 사용될 만큼 성숙했을 때는 "상당히 구식"이었다고 말했다. 게임스레이더의 애슐리 리드는 크리스탈 툴즈가 회사의 출시 일정에 긴 지연을 초래하고 일부 게임의 품질을 저하시킨다고 비난했다. 그녀는 이 엔진이 파이널 판타지 XIV에 "재앙적인 붕괴"를 일으켰다고 비난했다. 리드는 또한 크리스탈 툴즈 개발에서 파이널 판타지 XIII이 우선시되었기 때문에 엔진이 버서스 XIII의 오픈 월드 환경에서 어려움을 겪었다고 언급했다. 해리스는 사람들이 크리스탈 툴즈에서 "예쁜" 그래픽을 기대했으며 파이널 판타지 XIV가 그러한 기대를 동시에 "충족시키고 완전히 산산조각 냈다"고 말했다. 그는 이 게임이 "PC 플랫폼에서 만들어진 가장 시각적으로 놀라운 MMORPG"라고 느꼈다. 그러나 그는 특정 그래픽 기능이 "리소스 잡아먹는 괴물"이라고 말했고 스퀘어 에닉스가 게임을 실행하기 위해 권장하는 "높은" 하드웨어 요구 사항에 실망했다. RPGFan의 직원 작가 데릭 힘스버겐은 라이트닝 리턴즈 파이널 판타지 XIII이 "노후화된 그래픽 엔진에서 마지막 게임을 짜내려는 절박한 시도"로 볼 수 있다고 말했다. 윈은 스퀘어 에닉스가 새로 개발된 루미너스 스튜디오 엔진을 위해 크리스탈 툴즈를 포기하기로 한 결정에 대해 동등하게 비난했다.

크리스탈 툴즈를 사용하는 게임
 제목 년도 플랫폼 파이널 판타지 XIII 2009 플레이스테이션 3, 엑스박스 360, 마이크로소프트 윈도우 파이널 판타지 XIV 2010 마이크로소프트 윈도우 파이널 판타지 XIII-2 2011 플레이스테이션 3, 엑스박스 360, 마이크로소프트 윈도우 드래곤 퀘스트 X 2012 Wii, Wii U, 마이크로소프트 윈도우, 플레이스테이션 4, 닌텐도 스위치 라이트닝 리턴즈 파이널 판타지 XIII 2013 플레이스테이션 3, 엑스박스 360, 마이크로소프트 윈도우

 각주 

분류:3차원 그래픽 소프트웨어
분류:스퀘어 에닉스
분류:2007년 소프트웨어
분류:게임 엔진