본문 바로가기

[ C/ C++ 프로그래밍 ]/[ 루아 ]

[ 루아 ] 게임 개발에서 루아의 역할

[ 참고 및 출처 ] 
루아를 이용한 민첩하고 효과적인 게임 개발




'접착제'언어로 사용할 때 빛을 발한다.  루아처럼 핵심 언어의 함수와 연동함으로써 확장될 수 있는 스크립팅 언어를 그런 접착제
언어로 사용할 수 있는데, 핵심은 성능 상의 이점이 있는 C++로 속도가 중요한 함수를 작성하고, 그것을 루아에 '접착'함으로써
스크립트 프로그래머가 그런 C++함수를 사용할 수 있도록 만드는 것이다.

예)  디자이너가 3차원 물체를 게임 세계에 배치 할 있게 한다고 하면, 렌더링 시스템은 전적으로 C++로만 작성, 루아는 C++을 호출해서
      특정 3차원 모형의 객체를 생성하고, 그것을 게임 세계의 특정 위치에 배치 한다.
      그 3차원 물체의 애니메이션 역시 루아로 제어한다. 물체를 실시간으로 변환하는데 필요한 복잡한 수학은 루아가 담당하지 않는다.
      루아는 단지 저수준 렌더링 함수들에게 언제 무엇을 해야하는지 알려줄 뿐이다.
      이런 종류의 함수는 C++ 프로그래머가 스크립트 프로그래머나 디자이너에게 저수준 기능성을 제공하기 위해서 작성하는 것으로
      이책에서는 이런 함수를 루아글루(LuaGlue) 함수라고 부른다.


루아는 다음과 같은 과제들을 수행할 수 있는 강력한 도구이다.

- 게임의 사용자 인터페이스를 제작
- 필수 게임 자료를 정의, 저장, 관리
- 실시간 게임 사건들을 관리
- 개발자가 다루기 쉬운 게임 저장/불러오기 시스템의 작성과 유지
- 게임의 인공지능 시스템을 작성
- 게임의 기능과 특징을 빠르게 프로토타이핑 ( 이후 필요하다면 고성능 저수준 언로 이식)