본문 바로가기

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

[ 루아 ] 왜 루아인가?

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


스크립팅 언어는 소프트웨어 언제니어가 작성한, 컴파일된 코드 위의 한 계층에 놓인다.
그러한 스크립팅 언어는 실행시점에서 컴파일되는 경우가 많으며, 또한 프로그래머나 게임 디자이너가 자료를 조작, 처리하기 쉬운
단순한 언어인 경우가 일반적이다.

○ 스크립팅 언어를 사용하는 이유??

디자이너 관점에서 볼 때, 스크립팅 언어로 게임을 개발한다는 것은 기술과 게임플레이 코드 사이의 매우 명확한 경계를 만드는 것이라
할수 있다. 스크립트를 사용하는 프로젝트에서는 저 수준의 실제 작동부를 C++ 같은 핵심 언어가 담당하고 인터페이스 처리, 자료 관리,
인공지능, 사건 처리 등의 고수준 작업은 스크립팅 언어가 담당하는 경우가 많다. 이러한 책임의 분리에 의해 게임이 좀 더 견고해지게 되고,
병렬적인 개발도 가능해진다.

또한 스크립팅 언어는 개발팀 내의 덜 기술적인 팀원들도 핵심 개발 공정에 참여 할 수 있게 한다. 인터페이스가 게임 안에서 작동하게 하는
스크립트 프레임웍을 만들어 둔다면, 인터페이스 아티스트는 인터페이스 그래픽만을 만드는 역할에서 벗어나서 프로그래머의 도움 없이도
인터페이스의 실제 작동 방식에 관여 할 수 있게 된다. 또한  디자이너는 자신의 생각을 프로그래머가 구현해 줄 때까지 기다릴 필요 없이
AI나 자료 조작, 시나리오 스크립팅 등을 직접 다룰 수 있게 된다.

게임 개발(C++)에 좋은 스크립팅(C++ 기반 바로 위에 놓이는 중간 언어로 적합한) 언어는   파이썬과 루아를 꼽을 수 있다.

○ 왜 루아인가?

게임에 적합한  한가지 이유는 확장성 (extensibility)이다. 확장성은 루아 언어의 설계 목표 중 하나이다.
루아는 애초부터 좀 더 큰 응용 프로그램에 내장 시킬 것을 목적으로 고안된 언어이다. ==> 응용프로그램에 집어넣는 것이 매우 쉽게 되어 있다.
이러한 루아의 내장성은 또한 호스트 응용 프로그램과 루아 사이의 통신을 쉽게 만드는 효과도 낸다.

루아는 자유롭고, 작고 빠르며, 이식성이 좋다.  => 소스 코드는 작고 실행 시점 자원 사용도 경제적이다.
 이 덕분에 컴파일 시간이나 실행 시점 메모리 사용량 측면에서 부담이 적다.

루아의 가장 매력적인 측면은 실행 속도이다.
어떤 스크립팅 시스템이든, 게임 프로그래머의 첫 반응은 "스크립팅은 느리다. 이미 프레임률은 한계에 달했는데..." 정도 반응인데,
이런 변명은 적어도 루아에서는 통하지 않는다.

루아는 배우기가 매우 간단한 언어이다


ps. 참고 및 출처 :  " 루아를 이용한 민첩하고 효과적인 게임 개발 "