비주얼노벨 강좌

원문: http://cafe.naver.com/luamadang/3

 

 

LUA 란 무엇인가?

 

표현적으로 우리말로 읽으면 "루아" 라고 읽으면 된다.

 

다음 글은 www.lua.org 에서 말하는 LUA 에 대한 내용이다.

 

    What is LUA?

    Lua is a powerful, fast, lightweight, embeddable scripting language.

    Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode 
    for a register-based virtual    machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.

 

    참조: http://www.lua.org/about.html

 

위에서 설명하듯이 Lua 는 매우 강력하고, 속도가 빠르며, 가볍고, 내장 가능한 스크립팅 언어이다.

 

루아는 스크립트 언어로 처음부터 C++ 같은 저수준 언어보다 쉽게 배우고 다룰 수 있도록 만들어진 것이다. 그 덕분에 언어를 배우고 다루기가 쉬우며, 결과적으로 빠르게 만들 수 있어서 생산성이 높아진다.

스크립팅 언어는 일반적인 저수준 언어(C/C++ 등)보다 빠르게 익힐 수 있다.

 

특히 루아는 C++과의 연동이 쉽게 이루어지기 때문에, 게임 개발등에 있어서 스크립트 부분을 다루는데 종종 사용되고 있으며, 그 대표적으로 WoW 의 Addon package 가 루아로 작성 지원되고 있다.

 

루아의 기술적 특징은 다음과 같다.

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

    • 스크립트 언어라면 모두가 가지고 있는 개비지 콜렉션이 존재한다. 즉 사용되지 않는 메모리는 일정정도 차게 되면 자동으로 해제해 버린다. 이것은 성능저하, 직접적인 메모리 관리의 어려움등의 단점을 만든다.
      다행히 루아 5.0 이후버젼에는 이러한 개비지 컬렉션 처리의 한도를 조정할 수 있어 이 현상을 이러나지 않도록 만들 수 있다.
    • 간단하고 심플한대신, 지원하는 함수가 정말로 기본적인 것 밖에 없다. (이것이 단점인가 생각해본다. 간단하면서 다 할 수 있다면, 그것 역시 장점 아닐까 생각한다)
    •  

Comment '6'
  • ?
    Rainsy 2010.08.09 11:34

    c++같은 저수준 언어 : 언어가 저수준일수록 사람이 알아보기 쉽고 고급언어일수록 복잡하고 난해합니다.

    그렇다고 딱히 한쪽이 더 좋다 말할수 없어요

    오해 마시길 ㅋ

  • ?
    포인트팡팡 2010.08.09 11:34
    축하합니다. Rainsy님은 100포인트에 당첨되셨습니다
  • ?
    만능태도 2010.11.01 09:58

    반대입니다. 저수준언어가 사람이 다루기 귀찮은거[?] 고 고급언어가 다루기는 편한데 컴퓨터가 다루기 힘든거입니다 =ㅁ=

  • ?
    KMS 2011.06.06 18:19

    저급언어는 일반적으로 끄고 켜는 상태인 0,1을 이용한 기계어나 어셈블리 어(기계 중심의 언어)가 기본입니다.

    고급언어는 Java, C, C++, BASIC, 포트란 등 인간 중심의 언어입니다.

    그래서 저급언어는 사람이 컴퓨터의 언어를 직접 입력하여 따로 해석기가 필요하지 않지만, 고급언어에서는 사람이 쉽게 입력한 언어를 기계어로 처리(해석)하기 위한 컴파일러와 인터프리터 등의 해석기가 필효압니다.

    즉, C++는 사람이 이해하기 쉬운 고급언어에 속하는 게 맞겠죠?

     

  • ?
    신이치 2010.08.11 13:30

    아 그렇군요 감사합니다.

  • ?
    아리시스 2010.12.07 18:41

    감사해요


List of Articles
분류 제목 글쓴이 날짜 조회 수
Ren'Py 렌파이 관련 유용한 링크 모음 3 file 습작 2012.12.02 17603
Nekonovel 네코노벨 관련 유용한 링크 모음 1 file 습작 2012.11.19 11967
Vasilriot 바실리어트 메뉴얼(2) 하늘바라KSND 2014.12.20 700
Vasilriot 바실리어트 메뉴얼(3) 하늘바라KSND 2014.12.20 863
피니엔진 안드로이드로 배포판을 만들기 위해 필요한 것들 하늘바라KSND 2014.12.20 1523
피니엔진 텍스트, 대화, 독백 명령어 하늘바라KSND 2014.12.21 1567
VNAP 선택지 발생 3 file FNS키리토 2015.01.11 2013
기타 비주얼 노벨을 처음 제작하시는 분들께 1 file FNS키리토 2015.01.11 13766
피니엔진 피니엔진 타이틀 만들기 예제(구버전) 1 file 하늘바라KSND 2015.01.27 1770
VNAP char로 캐릭터 출력 2 FNS키리토 2015.06.01 895
피니엔진 애니메이션-스프라이트 간단한 팁 몇가지 하늘바라KSND 2015.07.11 1288
피니엔진 타이틀+클릭메뉴 예제 file 하늘바라KSND 2015.07.11 1102
피니엔진 FAL.노드이름에 관해서 알아보자. file 하늘바라KSND 2015.08.17 629
TyranoBuilder TyranoBuilder Visual Novel Studio Pro버전 한글패치 6 file 습작 2016.05.28 2182
피니엔진 기본 틀 만들기 : 타이틀화면 file 하늘바라KSND 2017.11.15 1810
Visual Novel Maker 한글 텍스트 입력 file 러닝은빛 2017.11.21 1443
Board Pagination Prev 1 2 3 Next
/ 3