잠깐 몇 주 정도 다른 프로젝트의 허드렛 일을 도와주면서 토크엔진을 잠깐 써 볼 기회가 생겼다.

토크엔진의 좋은 점, 특이한 점과 한계점을 조금씩 느꼈는데 대충 열거해 보려고 한다.
스크립트 시스템이 꽤 잘 갖춰져 있다. 그러나 완벽하진 않다.
토크엔진 고유의 스크립트 언어가 있어서 이걸로 GUI 나 컨텐츠 프로그래밍은 거의 다 할 수 있다. 언어문법 자체는 거의 C++와 유사하고 루아처럼 클래스 등록하고 다이나믹한 변수 선언과 함수 선언등 별 게 다 된다. 변수는 정수,실수,스트링... 기타 약간 복잡한 변수도 다 스트링으로 해결가능하다. 예를 들어 토크스크립트에서 C++로 x,y,z 세 값을 동시에 넘기고 싶다면, "0.0, 0.0, 0.0" 이런 식으로 문자열로 만들어서 넘겨주면 된다. 처리 속도도 꽤나 빠른 듯... GUI와 관련된 클래스에서 새로운 변수를 추가 선언하면 에디터에 자동으로 해당항목을 편집기도 추가 된다.
Torsion이라는 에디터를 구입(인디$39.95 상용$99)해야 제대로 사용가능하다. 실행파일만 있으면 스크립트 디버깅을 이 툴로 할 수 있다.

얼핏 보면 거의 비주얼 스튜디오랑 흡사하다. 인텔리 센스 같은 기능도 있을 정도로 꽤나 쓸만하다. 디버깅 도중 스크립트내 변수의 값을 보거나 변경할 수 있다. 이걸로 디버깅하는 동안 비주얼 스튜디오로 프로세서 어태치를 통해 이중(?) 디버깅도 가능하다.
Edit and Continue는 제대로 되질 않는다. 완전히 껐다가 다시 처음부터 디버깅해야 된다. 한글로 주석을 달면 에디터가 폭발한다. 무조건 영어로 써야 된다. 유니코드를 지원하기는 한다. UTF-8 형식으로 지원하기는 하는데, 노트패드등 다른 편집기로 편집하고 읽어와야 된다. 한글 디스플레이도 제대로 안된다. 폰트 문제인 거 같은데 바꿀 수 없다.
GUI 부분은 에디터에서 주로 작업하지만, 프로그래머들은 어쩔 수 없이 스크립트 텍스트를 직접 만져야 할 일도 많은데, 이때 클래스 여러개를 동시에 고쳐야 한다면 상당히 귀찮은 작업이 될 수도 있다. XML기반이라면 한 열(Column,속성)을 선택해서 한 번에 고칠 수 있는 것도, 일일이 위아래로 오르내려가며 작업해야 된다.
결론을 대충 내리자면,
비주얼 스튜디오는 강력하지만 좀 무겁다. 간단한 문제는 스크립트로 빠르고 간편하게 수정할 수 있다. 클라이언트 배포시 실행파일을 재컴파일 하려면, 빌드시간이나 패치 용량을 걱정해야 되지만 스크립트는 그런 부담이 없다.
디버깅은 스크립트 에디터보다 비주얼 스튜디오가 훨씬 낫다. 에디터 기능 및 최적화 테스트등은 비주얼 스튜디오를 전혀 따라 잡을 수 없다. 따라서, 좀 복잡한 기능은 결국 C++ 엔진쪽을 수정해서 기능을 추가하고 디버깅을 해야 된다. 스크립트는 최대한 간단한 작업만 하는 게 나은 거 같다.
PS.
마지막 문장이 약간 오해를 불러 올 수 있을 거 같아서 부연 설명. 스크립트를 최소한으로 쓰고 싶다는 생각은 지극히 개인적인 주관이다. 아마도 토크엔진 개발자는 엔진 수정보다는 최대한 스크립트 위주로 쓰기를 바랄지도 모르겠다. 일단 엔진의 제작 의도는 그렇게 보인다.
# by | 2010/05/30 11:44 | 코드 | 트랙백





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]