비주얼노벨 강좌

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).

Comment '12'
  • ?
    낙지군♬ 2009.01.10 23:13
    어려버 어려버 ㅋㅋ
  • ?
    Mania 2009.01.11 08:43
    루아는 루비보다 배우기가 쉽기때문에 금방 익히실 수 있습니다. 하하;
  • ?
    [Dark].Angel 2009.01.11 17:53
    와... 정말 기대가 되는군요. C언어와 C++ 상에서 실행할수가있다..?
    그러면 컴파일을 해서 더욱더 오류와 경고를 줄여 완벽한 스크립트를 만들수 있다는 말이군요.
    정말 대단합니다.
  • profile
    카와이 2009.01.13 14:14
    테이블 얏호
  • ?
    후르츠파르페 2009.01.21 02:01
    어디 명령어만 쭉 적어주는데는 없나..ㅎ
  • ?
    효과음 2009.01.23 13:22
    어려워 보기인 하지만 ㄷㄷ; 루아가 무엇인지를 알 수 있었습니다. 감사합니다 ^^
  • ?
    앙앙줏매 2009.02.09 18:49
    호오 알것같기도하면서 못알겠심..
  • ?
    rpg초짜 2009.02.18 22:40
    흠흠.. 그렇군요 라고말하지만 잘 모르겠는;;;
  • ?
    고삐리친구 2009.02.21 15:56
    우웅.... 전 루아가 강좌하시는분 이름인줄 알았네용
  • ?
    꼬맹씨 2009.07.04 13:42
    호... 감사~!
  • ?
    타로카드 2009.09.06 13:37

    어..어려워

  • ?
    캣츠아이 2011.01.09 20:47

    뭐래는걸까... 영어가 들어가서 어렵군 ; ; < 어차피 RPG 라는 단어도 영어야!