메뉴 건너뛰기

창조도시 기록보관소

게임 범용 스크립트 '루아' 도입

2008.08.29 08:55

Zeprod 조회 수:752


 


- 멀티미디어 브라우저 'ONE' -


 


 


안녕하세요. 제프입니다.


 


오랜만에 인사드립니다. 음악, 동영상, 2D-3D 이미지를 망라하는 멀티미디어 브라우저 'ONE'을 제작중인 군인입니다.


 


이전에는 자체 스크립트였던 ODS를 사용해오던 프로젝트에 루아 스크립트를 도입했습니다.


 


자체적인 스크립트를 사용함으로써 사용자들이 자체 스크립트를 따로 공부하고,


 


나중에 또다른 언어를 사용할때 또다시 다른 공부를 해야하는 불편이 있는관계로,


 


이미 있는 언어중 하나를 연동시키는 것이 더 낫겠다는 생각에 찾아본결과 가장 합당한 언어로 루아를 선택했습니다.


 


창조도시 여러분들은 루아보단 RPG XP에서 사용중인 루비가 더 와닿는 스크립트 일지도 모르겠습니다.


 


루아는 'World of Warcraft'라는 MMORPG에서도 성공적으로 UI 및 NPC처리에 사용된 사례가 있는 믿음직한 언어로써,


 


하늘아리 같은 UI만 제작하는 팀이 따로 있을정도로 루아를 알고 있는사람들이 적지 않습니다.


 


다만 이번 'ONE'에서 사용되는 루아는 그 사용폭이 광범위해진 것이 특징이라면 특징이겠습니다.


 


기존에 사용되던 스크립트들이 각 부분에 한정된 기능만을 사용할 수 있는 작은 붓이었다고 한다면,


 


이번에 전폭적으로 사용되는 루아는 프로그램의 로직 전체를 휘두를 수 있는 마법지팡이라고 할 정도입니다.


 


 


 


이렇게 스크립트를 광범위하게 사용할 수 있게된 이유는 기존의 프로그래머들이 스크립트와 C/C++ 등의 네이티브 프로그램을 전혀 다른 개체로 보고 작업도 따로 진행했습니다.


 


'ONE'에서는 C++은 루아를 위한 전폭적인 기능지원과 실제 프로그램을 주어진 상황에 맞게 표현하는 기능을 수행하며,


 


이미 C++ 상에 마련되어있는 각각의 자원객체들에는 자신을 컨트롤 하기위한 변수들이 들어있습니다.


 


루아는 프로그램이 어떻게 실행돼어야 하는지, 방향을 정하고 C++ 객체의 변수값만 바꿔주는 역할을 하게 됩니다.


 


예를 들면 다음과 같은 방식이 되는 것이지요.


 


===================================================


C/C++ 프로그램 : 어떤 물체를 자기 위치에 맞게 그린다.


루아 : 물체의 위치를 1씩 증가한다.


결과 : 물체의 이동 애니메이션


===================================================


 


이렇게 역할 분담을 함으로써, 논리적인 부분과 하드웨어적인 코드가 분리되고, 논리적인 수정이 쉽고 빠릅니다.


 


이는 C/C++ 프로그래밍 언어와 루아간의 통신이 가능하기 때문입니다.


 



 


- C/C++ 언어와 루아의 함수가 서로 호출한 결과화면 -


(C언어에서는 lua_func함수를, 루아에서는 cpp_func함수를 호출하는 코드로 이루어져있다.)


 


 


물론 C/C++로 모두 수행할 수도 있지만, 이경우 특정 개발환경이 반드시 필요하고, 변경을 하려면 소스코드를 바꾸어 실행파일을 다시 만드는 과정을 거쳐야 합니다.


 


스크립트는 파일 자체를 메모장으로 살짝 고쳐주는 것만으로 끝납니다.


 


게다가 루아는 현재까지 나와있는 가장 빠른 (기능이 안정적으로 모두 구현된) 스크립트이며,


 


'ONE'의 전폭적인 지원으로 복잡한 부분은 모두 C++상에 구현이 완료되어 있어, 스크립트를 사용하는 것에 있어서 실행속도가 떨어지는 것을 최소화 할 수 있습니다.


 


 


루아는 기본적으로 C코드와 비슷한 모습을 가지고 있습니다. 이는 나중에 정식으로 프로그래밍 언어를 공부하실때 도움이 될 것입니다.


 


다만, 각종 복잡한 개념이나 언어적인 기능지원은 ONE에 있어서 필요하지 않습니다.


(사용하면 조금은 더 키보드를 두드릴 일이 줄어들겠지만...)


 


이번 루아 도입으로 인해, 많은 분들이 더욱 자유로운 멀티미디어 환경을 조작 할 수 있다면 좋겠습니다.


 


 


 


 


 


PS. 루아언어는 바로 차기 버전부터 사용되며, 현재 홈페이지에 공개되어있는 브라우저는 ODS라는 자체 스크립트를 사용합니다.


번호 제목 글쓴이 날짜 조회 수
9369 RPG XP RTP [2] 다시 2006.09.10 760
9368 배도환입니다 님의 도트나.. 닝구님의 서프라이시아 캐릭면상 [5] Kelf. 2006.06.06 759
9367 액션 게임 츠쿠르가 나온다면 툴 변경 후 이어서 제작할 게임. [10] 땡중 2009.03.02 759
9366 난감하고도 힘든 도트질.. [4] 땡중 2007.11.24 757
9365 전 대단한지우개 [4] 보노보노 2005.05.18 756
9364 헉...RPG 쯔꾸르 비스타 [7] 오래 2007.05.24 754
9363 서프라이시아 매드럼 오륜가.ㅡㅡ; [4] 추억에잔류중 2009.01.21 754
9362 RPGVX대~~~~~실망. [6] 에존 2008.05.25 753
9361 [ 뉴스 ] 10년의 기다림…‘창세기전4’ 나온다 !? [6] 작은영웅 2010.04.18 753
» 범용 스크립트 '루아' 도입 [5] Zeprod 2008.08.29 752
9359 거참.. 나도 바쁜 인간이네요... [ 소스 구현 성공 ] [7] Kain_Kryun 2007.04.12 749
9358 과연 누가더 강할까.. XP vs Rpg200X !!! [16] 『서큐버스♥』 2005.11.27 747
9357 RPG만들기 시리즈와 영웅전설 시리즈의 관계 [6] A. 미스릴 2007.02.09 747
9356 SRPG만들기 한번 다운로드 받아봤습니다. [9] 비창 2007.04.30 747
9355 rpgxp 칩 계열.... [1] 내마음블루 2005.06.17 745
9354 RPG만들기는 더이상 "RPG"만들기가 아님 [6] A. 미스릴 2007.09.28 745
9353 하드코어rpg [4] RM닉네임 2005.06.02 743
9352 쯔꾸르 2000급으로 제작한 게임과 NRPG만들기에 대해서... [1] Music 2005.08.13 743
9351 여기 RPG2003 [6] 똘비 2006.11.03 743
9350 님들...제발 RPG2000게임 만드는 파일좀..ㅜㅜ [3] 데몬&[엔젤] 2005.07.09 741