이전 회사에서 만들었던 게임은 작년말까지는 UI 부분을 Lua 스크립트로 제어하였습니다.

(최종적으로는 Lua 스크립트를 덜어내고 다른 UI 미들웨어를 사용하게 되었습니다)


WOW에서 LuaUI에 사용한 것이 많이 알려지면서 여러 회사에서 고려하고 있는 것으로 알고 있습니다.

저희의 경우도 WOW의 영향 및 요즘 트랜드가 UI에 스크립트를 사용하는 것이라서 제작 초기에 별 고민 없이 UI 사용에 Lua를 사용하기로 했습니다(이것이 결국 개발 도중 큰 문제가 되었습니다, -_- ).


저는 예전에 MMORPG 게임을 만들 때 퀘스트 부분을 Lua 스크립트를 사용했을 때 스크립트 작성자가

비 프로그래머라서 코딩 실수로 고생하는 것을 본 경험이 있어서 초기에 제가 경험 했던 것에 대한 이야기를 기획자와 클라이언트 프로그래머에게 했습니다. 그러나 UI 스크립트와 관련된 사람들은 한귀로 듣고 흘려버렸고, 저는 제가 주 담당자가 아니고 알아서 잘 하겠지 라는 생각에 이후 주의 깊게 살피지 않았습니다. ( 여러 이유는 있었지만 안일하게 제가 꼼꼼하게 확인하지 않고 너무 맡겨 놓은 것이 지금도 가장 큰 후회가 되는 것입니다. )

 

개발하면서 이 스크립트에 발목이 잡혀서 개발 속도가 제대로 나오지 않아서 꽤 애를 먹었고 여러 부작용이 있었습니다.( 정확하게 말하자면 Lua라는 스크립트 언어보다는 개발 시스템쪽 문제입니다 ).

 


제가 경험했던 문제는 다음과 같습니다.


1. 개발 기간이 긴 프로젝트가 아닌데 스크립트 개발까지 같이 해야 된다.

 - 캐주얼 게임으로 개발 기간이 긴 게임이 아니고 경험이 부족한 개발자가 개발하기 때문에 게임 자체 구현에도 생각 이상으로 시간이 많이 걸렸는데 스크립트 부분까지 초기 완성 이후 계속 추가 작업을 하게 되어 부족한 시간이 더 부족하게 되었음.

2. 스크립트 사용에 대한 가이드 라인을 만들지 않고 무턱대고 개발을 시작했다.

- UI 스크립트에 어떤한 기능이 필요한지 명확하게 정하지 않고 큰 윤곽만 잡은 후 개발. 초기 개발 이후 스크립트를 사용할 사람이 피드백을 제대로 전달하지 않음. UI 스크립트 개발자는 바쁘다는 핑계로 편의성이 극히 나쁜 스크립트 사용 방법을 개선해 주지 않음.

3. 스크립트 코드의 품질이 떨어지고, 디버깅이 어렵다.

- 스크립트 코딩을 비 프로그래머가 하다보니 구조가 엉망이 코드가 만들어져서 유지보수에 아주 좋지 않았음. 스크립트 사용 편의성이 거의 고려되어 있지 않아서 UI 구현에 꽤 많은 코딩을 해야되고 까다로움.  Lua로 만들어져서 스크립트 코드에 버그가 있을 때 화면이나 파일에 로그를 찍고 그것으로 버그를 찾고 수정하려고 하니 버그가 발생하면 잡는데까지 C++ 코드를 사용한 것보다 훨씬 더 많은 시간이 소요 되었음.

4. 개발 도중 테스트를 대충한다.
- 이유는 클라이언트에서 게임 콘텐츠 구현 후 이것을 기획으로 넘겨서 UI 스크립팅을 하 여 최종적으로 끝나는 형태가 되다보니 클라이언트에서 테스트 할때 게임 내에 로그를 찍는 것으로 테스트 확인하여 결과를 제대로 확인하지 않았음( 이런 문제와 더딘 개발 속도 문제 때문에 후반에는 클라이언트 파트에서 스크립트까지 다 하는 것으로 변경되었음 ).

5. 구현 완료 기간을 지키기가 힘들다.

- 게임 콘테츠 구현 시 클라이언트 파트에서는 UI 스크립트에서 호출할 기능을 만든 후 테스트 하고 기획에 넘기면 기획자가 UI 스크립팅을 하는 것으로 하나의 구현이 끝나는 방식이었음. 그래서 클라이언트에서 UI 스크립트에서 호출해서 사용할 기능을 제대로 구현하지 못하면 클라이언트 <-> 기획자간에 여러번 주고 받아야 되고, 도중에 어느 한쪽이 갑자기 다른 일이 생기면 딜레이가 생겨 버림.

6. 기획서가 나오지 않음.
- 기획자 한명이고 이 사람이 UI 스크립팅 작업을 하면 이것을 하느라 정작 기획서를 작성하지 못함.
또 기획서를 제대로 만들지 못했을 때 UI 스크립팅 작업이 많아서라고 핑계를 되고 넘어가버림.




UI를 스크립트로 뽑아서 게임을 개발하는 것이 처음이라면 아래의 것을 주의했으면 합니다.

1. UI에서 어느 범위까지 스크립트가 관여할 것인지 명확하게 정해야합니다.
2. UI 표현에 어떤한 기능이 필요한지 세세하게 정한다.
3. UI 스크립트 개발자와 코딩을 하는 사람은 초기 완성 이후 긴민할게 협조하여 계속 개선해 나가야한다.
4. 기획자가 한 명이고 이 사람이 UI 스크립팅을 해야 되는 상황은 절대 피해야한다(기획서가 안나온다).
5. Lua 코딩이 쉽다고 하더라도 비 프로그래머의 코딩 실력을 절대 믿으면 안된다(구현을 못하던가 버그를 만드는 것보다 구조를 엄청나게 복잡하고 만들고 구현에 급급한 코딩을 해서 유지보수가 어려워진다).



ps :
생각 이상으로 UI를 코드에 하드코딩하는 것이 더 좋을 수 있습니다. -_-
요즘 유행하는 스케일폼에 대하여 너무 환상을 가지는 분들이 적지 않은데 이것도 잘 계획하여 사용하지 않으면 아주 피곤해집니다.
저작자 표시
신고
by 흥배 2009.04.06 00:38
| 1 |

티스토리 툴바