2009-12-11 1 views
3

저는 C++ 게임을하고 있습니다. 하지만 Lua 나 Angelscript와 같은 임베디드 스크립팅 언어도 사용해야한다고 들었습니다.하지만 솔직히 말해서 어떻게 또는 왜인지는 알 수 없습니다. 모든 데이터를 일종의 텍스트 파일에 저장하는 것보다 어떤 장점이 있습니까? 시작하려면 어떻게해야합니까? 루아 예제를 읽으려고했으나 어떻게 작동하는지, 어떻게 사용하는지 정확히 알지 못합니다.임베디드 스크립팅을 시작하는 방법은 무엇입니까?

답변

4

먼저 ""질문 :

지금까지 합리적인 진행을했다면, 당신은 게임의 액션이 발생 풍경, 다음 볼 게임 컨트롤 GUI의 종류가 :지도, 나침반, 핫키, 채팅 상자, 뭐든간에.

구성 파일을 통해 구성 할 수있는 GUI (위치, 크기, 설정, 기본값 등)를 처음 만들 때는 괜찮습니다. 하지만 코드로 제어 할 수 있다면 많은 멋진 것들을 할 수 있습니다. 예 : 도시에 들어갈 때지도를 최소화하십시오. 다른 플레이어의 인물 사진을 그룹에 표시하십시오. 지도를 업데이트하십시오. 전투 중에 다른 바로 가기 키를 표시합니다. 그거야.

이제 C/C++ 코드에서 GUI의 코드 제어를 할 수 있지만 문제가 조금이라도 변경 되더라도 모든 dang 게임 클라이언트를 다시 컴파일해야 할 때가 있습니다. 10 억 명의 플레이어가 있다면 새로운 게임 클라이언트를 모두 선적해야합니다. 그게 끝이야. 또 다른 문제는 플레이어가 GUI를 사용자 정의 할 수있는 방법이 없다는 것입니다.

간단한 임베디드 언어가이 두 가지 문제를 해결합니다. 이런 종류의 코드를 별도의 파일에 담아 런타임에로드하고 다른 사람의 마음에 들러 보낼 수 있습니다. 약간의 방법으로 GUI를 업데이트하려면 적절한 게임과 별도로 GUI 코드의 업데이트를 제공 할 수 있습니다. 에 관해서는

어떻게 ':

가장 간단한 것은 아마도 최신 업데이트 가능한 정보 매개 변수의 무리를 전달 프레임마다 한 번 (예) 루아 "주"루틴을 호출하고, 그 메인 루틴이 필요한 모든 것을하기위한 다른 함수를 호출하게하십시오. 알고 있어야 할 것은 임베디드 코드가 단지 짧은 시간, 즉 두 번 화면 새로 고침 사이의 시간 동안 컨트롤을 얻는다는 것입니다. 그래서 조금 업데이트하고 페인팅을하면 다시 종료되고 C/C++ 메인 프로그램 루프에 제어권을 반환합니다.

기술적으로 프로그램에 Lua 인터프리터를 포함시키는 것은 매우 쉽습니다. Lua 인터프리터에는 C 소스 코드가 있거나 Windows 용 사전 컴파일 라이브러리 (DLL)가 있습니다. 프로그램에 링크를 연결하고, 한 번 초기화하고, 기본 프레임 루프의 모든 반복에서 진입 점을 호출합니다.

1

영감을 얻으려면 C2 위키에 설명 된 Alternate Hard and Soft Layers 패턴을 확인하십시오.

내 두 센트는 왜 스크립팅 언어를 포함합니까?내가 경험 한 몇 가지 이유가

  • REPL
  • 쉽게 문자열 조작 도구
  • 활용 루프, 매크로의 기능을 포함하고 데이터 내에서 재귀는
  • 가 동적으로 생성 된 콘텐츠를 만들 설정
  • 데이터가
  • 단위 테없는 경우 래퍼는 웹에서 기본값을 제공하기 위해
  • 논리를 내용을 가져올 수 sts 데이터 세트 수준에서 작성된
3

스크립트는 모든 데이터를 텍스트 파일에 저장하는 것보다 입니다. 임의의 동작을 할당하고 다른 데이터의 데이터를 구성 할 수 있습니다 (예 : orc 캡틴은 오크가 더 많음).

스크립트 빠른 개발 및 C++보다 더 쉽게 유지 보수 허용합니다. 컴파일/편집/링크주기가 없으므로 게임이 실행되는 동안 스크립트를 조정할 수 있으며 최종 사용자의 컴퓨터에서 업데이트하기가 더 쉽습니다.

은 아득히 방법으로, 하나 개의 제안은 경기가 어떻게 다른 볼 수있을 것이다. 예를 들어, C로 작성된 Roguelike RPG 인 TOME은 루아를 광범위하게 사용합니다.

+0

내 친구없이 OS와 DSP 임베디드 된 C/어셈블러 애플리케이션 루아 포팅. 그는 새로운 Lua 바이트 코드로 이미지를 업데이트하는 방법을 알아 냈습니다. 그는 편집 - 컴파일 - 링크 -로드 초기화 테스트 사이클을 약 15 분에서 1 분 사이에 얻을 수있었습니다. C++ 개발자는 loadbuild 및 초기화를 기다리는 데 많은 시간을 소비합니다. 루아를 사용하면 많은 행동을 즉시 변경할 수 있습니다. –