문제

나는 내가 생각해낸 몇 가지 아이디어를 흉내내기 위해 Ogre3d 렌더링 엔진에서 유용한 3D 게임 엔진을 구축하려고 노력 중이며 약간의 기로에 섰습니다.사용할 수 있는 스크립팅 언어는 여러 가지가 있으며, 심사를 거쳐 적절하게 따르는 언어가 하나 또는 두 개 있는지 궁금합니다.

LUA와 Squirrel은 더 많은 심사를 받은 것 같지만 저는 누구에게나 열려 있습니다.

최적으로는 배포 및 로딩 용이성을 위해 언어에 대한 컴파일된 형식이 있는 것이 가장 좋습니다.

도움이 되었습니까?

해결책

구문은 취향의 문제입니다. Lua는 Javascript와 비슷하지만 중괄호가 Pascal과 유사한 키워드로 대체되었습니다.세미콜론은 절대 필요하지 않지만 공백은 여전히 ​​중요하지 않다는 멋진 구문 기능을 갖추고 있으므로 모든 줄 바꿈을 제거하고 계속 작동할 수도 있습니다.C로 시작한 사람으로서 나는 Python이 다른 모든 언어에 비해 난해한 구문을 가진 언어라고 말하고 싶습니다.

LuaJIT는 또한 Python보다 약 10배 빠르며 Lua 인터프리터는 훨씬 더 작습니다(150kb 또는 실제로 읽고 이해할 수 있는 C 라인 약 15,000개).대규모 언어를 삽입하지 않고도 사용자가 게임을 스크립트하도록 할 수 있습니다.반면에 Lua에서 파서 부분을 떼어내면 그 부분은 더욱 작아집니다.

다른 팁

흥미로운 옵션 중 하나는 스택리스 파이썬.이것은 Eve-Online 게임에서 사용되었습니다.

Python/C API 매뉴얼은 다음보다 깁니다. 전체 Lua 매뉴얼(Lua/C API 포함)

Lua의 또 다른 이유는 코루틴(하나의 OS 스레드 내에서 협력적인 멀티태스킹)에 대한 지원이 내장되어 있기 때문입니다.이를 통해 서로 매우 빠르게 실행되는 겉보기에 개별적인 스크립트 1000개 정도를 가질 수 있습니다.몬스터/무기당 하나의 스크립트와 같습니다.

(왜 사람들은 SO에서 Lua를 대문자로 많이 쓰는 걸까요?"루아" 입니다. 여기). )

루아에게 한 표 더 주세요.작고 빠르며 통합하기 쉬운 최신 콘솔에서 중요한 것은 메모리 작동을 쉽게 제어할 수 있다는 것입니다.

바인딩 작성이 매우 쉽고 라이센스가 매우 친숙하며(MIT) 기존 라이브러리도 해당 라이센스를 따르는 경향이 있기 때문에 Lua를 선택하겠습니다.구성표는 또한 훌륭하고 바인딩하기 쉽기 때문에 예를 들어 Gimp 이미지 편집기로 선택되었습니다.하지만 루아는 정말 훌륭해요.World of Warcraft는 이를 매우 유명한 예로 사용합니다.LuaJIT는 네이티브 컴파일된 성능을 제공합니다.그것은 한 자릿수 미만 순수 C에서

나는 LUA를 추천하지 않습니다. 독특한 구문을 가지고 있으므로 익숙해지는 데 시간이 좀 걸립니다.누가 스크립팅을 하느냐에 따라 이것은 문제가 되지 않을 수도 있지만, 저는 상당히 접근하기 쉬운 것을 사용하려고 노력할 것입니다.

나는 아마도 파이썬을 선택할 것이다.일반적으로 바이트코드로 컴파일되므로 인터프리터를 포함해야 합니다.그러나 꼭 필요한 경우에는 PyPy를 사용하여 코드를 C로 변환한 다음 컴파일할 수 있습니다.

인터프리터를 내장하는 것은 문제가 되지 않습니다.지금 시점에서는 기능과 성능에 더 관심이 갑니다.LUA와 Squirrel은 모두 해석됩니다. 제가 만들고 있는 게임 중 하나가 게임에 편집기가 있는 수정 가능한 코드를 포함하는 것이기 때문에 좋습니다.

나는 Python에 대해 듣고 싶습니다. 내가 믿는 Battlefield 시리즈에서 Python이 사용되는 것을 본 적이 있기 때문입니다.

Python에는 실제 OGRE 바인딩이 있기 때문에 즉석에서 낮은 수준의 항목을 수정해야 하는 경우에도 좋습니다.Lua에 해당하는 바인딩이 있는지 모르겠습니다.

C++ 라이브러리이기 때문에 JavaScript나 Squirrel 중 하나를 제안하고 싶습니다. 후자는 C++, 특히 테이블/구조체 및 클래스를 처리하는 방법에 더 가깝다는 점에서 제가 개인적으로 가장 좋아하는 것입니다.모든 유사성 때문에 C++ 코더에 익숙해지는 것이 가장 쉬울 것입니다.

그러나 JavaScript를 사용하고 HTML5 버전의 Ogre3D를 찾으면 최소한의 변경만으로 게임 코드를 웹 버전으로 직접 포팅할 수 있습니다.

둘 다 좋은 선택이고 장단점이 있지만 이미 C++로 작업하고 있을 가능성이 높으므로 둘 다 배우기 가장 쉬울 것입니다.Java로 작업하는 경우에도 마찬가지이며 Game Maker인 경우 사람들이 Game Maker 자체를 실행하지 않아도 되는 실행 파일을 만들려는 경우가 아니면 둘 중 하나도 필요하지 않습니다. 그렇다면 이들 중 하나를 실행하는 확장 프로그램을 찾는 행운을 빕니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top