Neko:Lua

1부. 루아(LUA)가 무엇인가요?

by Mania posted Jan 10, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제

1. 루아(LUA)가 무엇인가요?

루아는 C/C++ 프로그램에 내장되어서 실행되는 스크립트 엔진이다. 현재 TEAM pixels 에서 개발중인 PAGE(Pixelz Accessible Game Engine) 엔진에서 게임 내부를 기술하는 스크립트 언어로서 사용하고 있다.


특징은 아래와 같다.


- C/C++ 의 코드를 이식하기 쉽다. 이것은 엔진 작업 및 스크립트 작업의 분업화를 가능하게 해준다.
- 루아 코드를 C/C++ 상에서 실행할 수 있다.
- 루아와 동종한 스크립트 언어 중에서는 최고의 속도와 효율을 자랑한다.
- table 이라는 강력한 연관배열을 지원한다. 이것은 스크립트 제작시 자료의 정리를 상당히 이롭게 해준다.
- 문법이 간단하다. 데이터 타입이 존재하나 사용시에는 숫자, 문자열 정도만 구분하면 되며 왠만한 경우는 자동으로 변환해준다.


반면에 아래와 같은 단점도 있다.


- 스크립트 언어라면 모두가 가지고 있는 개비지 콜렉션이 존재한다.
 즉, 사용되지 않는 메모리가 일정 정도 차게 된다면 자동으로 해제시켜 버린다.
 (이것은 성능 저하, 직접적인 메모리 관리의 어려움등의 단점을 만든다.)
 다행히, 루아 5.0 이후 버전에서는 이 개비지 컬렉션 처리의 한도를 조정할 수가 있어서 이 현상이 일어나지 않도록 할 수 있다.
- PAGE 에서는 가급적 대용량의 메모리를 사용하는 경우(ex. 비트맵 데이터 로딩)는 C/C++ 쪽으로 빼버렸다.
 즉, 메모리 사용한도는 루아상에서 선언한 변수들만 고려하면 된다.
- 간단하고 심플하지만 지원되는 함수가 너무 기본적인 것밖에 없다.


본 글은 redwiki 에서 발췌하여 매니아가 쉽게 풀이하였습니다.
[출처] 아방스 ( http://avangs.info/zbxe/S_gameXP/ ) by Mania(Necrosen).