2008-09-17 9 views
4

나는 Ogre3d 렌더링 엔진에서 유용한 3D 게임 엔진을 구현하여 내가 생각해 내고 교차로에 도달 한 아이디어 중 일부를 조롱하려고합니다. 사용할 수있는 스크립팅 언어가 여러 가지 있습니다. 하나 또는 두 개가 검사를 받았고 적절한 추적을했는지 궁금합니다.게임 엔진 스크립팅 언어

루아 (LUA)와 다람쥐 (Rquir)는 더 심도있는 것으로 보이지만 모든 사람에게 공개됩니다.

배포 및로드 용이성을 위해 언어 용으로 컴파일 된 양식이있는 것이 가장 좋습니다.

+0

다람쥐의 장점 중 하나는 메모리 관리입니다. GC와 결합 된 참조 계산 알고리즘을 사용합니다. 매우 안정적인 실시간 동작을 제공합니다 (CPU 버스트 없음). [Docu] (http://www.squirrel-lang.org/squirreldoc/reference/embedding/memory_management.html)를 참조하십시오. – schoetbi

답변

5

구문은 맛의 문제이지만 루아는 Javascript와 같지만 중괄호는 파스칼과 유사한 키워드로 바뀝니다. 세미콜론은 절대로 필요하지 않지만 공백은 여전히 ​​중요하지 않으므로 모든 줄 바꿈을 제거하고 여전히 작동하도록하는 훌륭한 구문 론적 기능이 있습니다. C로 시작한 누군가는 파이썬이 모든 다른 언어와 비교하여 비전 문법을 사용하는 언어라고 말하고 싶습니다.

루아 지트는 파이썬보다 약 10 배 빠르며 루아 인터프리터는 훨씬 더 작습니다 (150kb 또는 약 15k 라인의 C로 실제로 읽고 이해할 수 있습니다). 방대한 언어를 삽입하지 않고도 사용자가 게임 스크립트를 작성할 수 있습니다. 반면에 Lua에서 파서 파트를 추출하면 훨씬 작아집니다.

0

바인딩을 작성하는 것이 매우 쉽기 때문에 Lua와 함께 가고 싶습니다. 라이센스는 매우 친절하며 (MIT) 기존 라이브러리도 라이센스하에있는 경향이 있습니다. Scheme은 바인딩하기 쉽고 멋지기 때문에 Gimp 이미지 편집기에서 선택되었습니다. 그러나 루아는 단순히 위대합니다. World of Warcraft는 이것을 매우 높은 프로필 예제로 사용합니다. LuaJIT는 네이티브 컴파일 된 성능을 제공합니다. less than an order of magnitude의 순수한 C입니다.

0

LUA는 권장하지 않습니다. 고유 한 구문을 사용하므로 익숙해 지려면 약간의 시간이 걸립니다. 스크립팅을 수행 할 사람에 따라 문제가되지 않을 수도 있지만 공정하게 액세스 할 수있는 무언가를 사용하려고합니다.

아마 파이썬을 선택합니다. 일반적으로 바이트 코드로 컴파일되므로 인터프리터를 임베드해야합니다. 그러나 PyPy를 사용하여 코드를 C로 변환 한 다음 컴파일해야합니다.

0

통역사 삽입은 문제가되지 않습니다. 나는이 시점에서 기능과 성능에 더 많은 관심을 가지고 있습니다. LUA와 다람쥐는 둘 다 해석됩니다. 게임 중 에디터가있는 수정 가능한 코드를 포함하기 때문에 게임 중 하나가 생성되기 때문에 좋습니다.

전 파이썬에 대해 듣고 싶습니다. 전 전장 시리즈에서 그 사용법을 보았습니다.

6

재미있는 옵션 중 하나는 stackless-python입니다. 이 게임은 Eve-Online 게임에서 사용되었습니다.

4

Python/C API 매뉴얼이 전체 루아 (Lua/C API 포함) 설명서보다 길었습니다.

루아의 또 다른 이유는 coroutines (하나의 OS 스레드 내에서 협동 멀티 태스킹)를 지원한다는 것입니다. 이 스크립트를 사용하면 1000 개 정도의 겉으로보기에 개별 스크립트가 서로 매우 빠르게 실행됩니다. 괴물/무기 당 하나의 스크립트처럼.

는 (사람들은 왜 SO에 대문자로 너무 많은 루아를 작성하려면 어떻게해야합니까? 그것은 "루아"(here 참조).이다) 루아에 대한

1

한 번 더 투표.작고 빠르며 통합이 쉽고 현대 콘솔에서 중요한 요소입니다. 메모리 조작을 쉽게 제어 할 수 있습니다.

0

파이썬은 실제 OGRE 바인딩을 가지고 있기 때문에 멋지기도합니다. 즉, 저급 수준의 내용을 즉시 수정해야하는 경우에 대비하면됩니다. 나는 루아에 대한 동등한 바인딩을 모른다.

0

C++ 라이브러리이므로 자바 스크립트 또는 다람쥐를 제안합니다. 후자는 C/C에 더 가까운 것으로 특히 테이블/구조체 및 클래스를 처리하는 방식에 대해 두 가지 중에서 가장 좋아하는 부분입니다. 모든 유사성 때문에 C++ 코더에 익숙해지는 것이 가장 쉽습니다.

그러나 JavaScript를 사용하여 Ogre3D의 HTML5 버전을 찾으면 필요한 경우 최소한의 변경으로 게임 코드를 웹 버전으로 직접 옮길 수 있습니다.

두 가지 모두 좋은 선택이며 장단점이 있지만 모두 C++로 이미 작업하고 있기 때문에 배우기가 가장 쉽습니다. Java로 작업하는 경우에도 마찬가지입니다. Game Maker 인 경우 Game Maker 자체를 실행하지 않아도되는 실행 파일을 만들려고하지 않는 한 둘 중 하나도 필요하지 않습니다. 이 행운을 빌어 행운을 빌어 행운을 빌어.