C ++로 작성된 게임이 있다고 가정 해 봅시다. 그러나 모딩 또는 스크립팅 기능을 추가하고 싶습니다. 게임에 스크립팅 기능을 추가하는 방법은 무엇입니까?
C ++로 작성된 게임이 있다고 가정 해 봅시다. 그러나 모딩 또는 스크립팅 기능을 추가하고 싶습니다. 게임에 스크립팅 기능을 추가하는 방법은 무엇입니까?
답변:
우선, 게임의 어느 부분을 스크립트할지 결정해야합니다. 한 가지 옵션은 시간이 중요한 백엔드 작업이 C ++로 코딩되지만 모든 게임 논리는 스크립팅 언어로되어 있다는 점에서 완전히 스크립팅 된 게임을하는 것입니다. 디자이너는 백엔드를 고급 스크립팅 언어에서 호출 된 API로 사용합니다. 다른 극단적 인 경우, 사용자 인터페이스 나 스크립트 시퀀스와 같은 스크립트가 사용되는 특정 장소는 거의 없으며 대부분의 게임 코드는 여전히 C ++입니다. 각 접근 방식 (속도, 유연성, 컴파일 시간, 게임 범위 등)에는 이점이 있지만 미리 결정해야합니다.
스크립팅 사용 방법을 알고 나면 기존 스크립팅 언어를 사용할지 또는 고유 한 도메인 별 언어 를 사용할지 결정해야합니다 . 오늘날 다양한 디자인 목표와 대상을 가진 많은 스크립팅 언어가 있으므로 더 이상 자신 만의 것을 만들 가치가 있는지 확실하지 않습니다. 직접 구현하기로 결정한 경우 다음 리소스가 있습니다.
Lua 는 널리 사용되는 가볍고 포함하기 쉬운 스크립팅 언어입니다. 호스트와 임베디드 언어 간의 통신을 위해 스택을 사용하며 많은 전문 게임 에서 성공적으로 사용되었습니다 . Sol2 는 Lua 및 C ++ 바인딩 프로세스를 단순화합니다. Lua의 구문을 좋아하지 않는다면 Moonscript 는 Lua로 컴파일되고 멋진 기능을 추가하는 언어입니다.
다른 옵션으로는 AngelCode 가 있으며 C 및 C ++ 함수를 직접 호출 할 수 있습니다. Python 과 Ruby 는 포함하기가 조금 더 복잡하지만 프로그래밍하기가 매우 즐겁습니다. Python을 포함하려면 Boost.Python을 살펴보십시오 . 또 다른 아이디어는 브라우저 용으로 개발 된 빠른 스크립팅 엔진을 활용하기 위해 JavaScript를 포함시키는 것입니다 ( V8 및 SpiderMonkey 참조 ).