어떤 경우 스크립팅 언어가 다른 언어보다 낫습니까?
모든 답변에 감사 드리며, 설명을 제공하고 언어가 어떤 경우에 탁월한 지 설명하십시오.
(답변 당 하나의 언어를 기억하십시오)
어떤 경우 스크립팅 언어가 다른 언어보다 낫습니까?
모든 답변에 감사 드리며, 설명을 제공하고 언어가 어떤 경우에 탁월한 지 설명하십시오.
(답변 당 하나의 언어를 기억하십시오)
답변:
루아는 게임 산업에서 널리 사용됩니다 . 독립 게임 ( Aquaria )에서 AAA 타이틀 (Civilization)까지.
핵심 이유는? 배우기 쉽고 게임에 쉽게 통합 할 수 있기 때문에 저는 말할 것입니다. 그러나 파이썬에 대해서도 마찬가지입니다. 일반적으로 스크립팅은 어렵지 않습니다. 루아와 함께 가야 할 진짜 이유는 그것이 증명할 수 있기 때문에 당신이 배울 수있는 훨씬 더 많은 자원을 얻을 수 있기 때문이라고 생각합니다. 표준 밖에서 무언가를 실험하고 싶다면 다른 언어를 엉망으로 만들기 시작합니다.
다람쥐는 흥미로운 역사를 가지고 있습니다. 게임 아키텍트가 Lua의 예측할 수없는 가비지 콜렉션에 문제가 발생한 이후에 만들어졌으며 존재하지 않더라도 모든 것이 null 입니다.
다람쥐는 Left 4 Dead 2 에서 사용되는 습격 언어 입니다. API는 매우 루아와 비슷합니다 (Squirrel의 저자 는 Lua의 디자인을 좋아합니다 ).
다람쥐는 2 세대 루아처럼 멋진 언어입니다. 그것은 좋은 아이디어를 취하고 성가신 편심을 제거했습니다.
루아와 동일 :
다람쥐에 새로운 :
다람쥐의 주요 단점은 루아가 아니라는 것입니다. 루아가 훨씬 더 널리 사용됩니다. 그러나 그것이 문제가 아니라면 다람쥐는 쉬운 승리입니다. 그러나 종종 언어의 인기는 그 자체로 유용한 기능이므로 결정이 명확하지 않습니다.
Google의 V8 Javascript
프로 :
사용하기 매우 쉽다
지속적으로 향상
강력하고 유연한
다른 사람은 많은 사람들이 언급 한 바와 같이, 자바 스크립트는 일반적인 프로그래머 도구입니다. 내 게임에 추가하면 다른 언어보다 유능하다고 느끼는 사람들이 훨씬 많아졌습니다. 또한 프로그래머의 작업을 절약하기 위해 대량의 캐스팅 및 변환을 지원하며 사용하기가 쉽고 STL과 잘 작동합니다.
가능한 CON :
문서가 혼란 스러울 수 있습니다 . 실제로 최고는 아닙니다.
예 종종 이상한 웹. 탄탄한 단순성이 결여되어있는 것보다 더 높은 수준으로 제공됩니다.
템플릿 때때로 이들은 싫어하거나 피합니다.
SDK 코드베이스 크기 생성 된 코드 크기는 부풀려 질 수 있습니다.
게임과 대상 플랫폼에 따라 다릅니다.
비 플레이어 캐릭터 100 명 (RTS 게임)을 운영하는 게임은 2 명 (Street Fighter)을 운영하는 게임과는 다른 요구가 있습니다. PC에서 실행되는 게임은 콘솔에서 실행되는 게임과는 다른 요구 사항이 있습니다.
루아가 인기
GameMonkey 는 여러 팀에서 사용합니다. 루아보다 빠르며 스레딩에 더 좋습니다.
파이썬은 여러 게임에서 사용되었습니다.
JavaScript 엔진을 다운로드 할 수 있으므로 JavaScript가 가능한 옵션입니다. 다른 유형의 프로그래머보다 JavaScript 프로그래머가 더 많습니다.
특수 언어도 있습니다.
SCUMM은 여러 어드벤처 게임에서 사용되었으며 특히 해당 게임에 적합합니다.
완벽을 기하기 위해 또 다른 옵션은 mono-script 이며,이를 통해 .NET 프레임 워크의 Novell 구현을 스크립팅에 사용할 수 있습니다. 그것은 무엇 유니티 사용합니다. 다음 은 애플리케이션에 모노 를 임베드하는 방법 에 대한 다른 페이지 입니다.
Mono 프레임 워크는 해석되지 않기 때문에 대부분의 스크립트 언어 (아마도?)보다 빠르며, 컴파일러와 명령어 세트 사이에 계층이 있으므로 C # 및 방언을 포함한 다양한 언어로 프로그래밍 할 수 있습니다. 파이썬, 루아 및 자바 스크립트.
그러나 모든 플랫폼에서 무료인지 확실하지 않습니다.
개인적으로, 내 프로젝트에 스크립팅 언어를 선택할 때 AngelScript (아래 링크 참조)가 Lua보다 C ++에 바인딩하기가 훨씬 쉽다는 것을 알았습니다. (실제로 약간의 유연성을 희생시키면서보다 사용하기 쉽도록 작은 래퍼 라이브러리를 작성했습니다.)
http://www.angelcode.com/angelscript/
그러나 Lua는 상업용 게임 개발자에게 매력적인 몇 가지 장점이 있다고 생각합니다.
(a) AngelScript보다 더 성숙하고 널리 퍼져 있습니다.
(b) 문법은 프로그래머가 아닌 사람에게는 쉽다 (AngelScript는 C ++과 매우 유사하다)
(c) AngelScript보다 발자국이 작습니다 (적어도 내가 기억하는 한)
그러나 취미 프로젝트를 작성하고 있다면 AngelScript는 적어도 가치가 있다고 말할 것입니다.
게임의 기본 개발 언어에 안정적으로 잘 지원되는 스크립팅 언어를 선택해야합니다. C 또는 C ++로 게임을 작성하는 경우 Python 및 Lua에 사용할 수있는 견고한 바인딩이 있습니다. C # 또는 다른 언어를 사용하여 .NET 플랫폼 용 게임을 작성하는 경우 IronPython 또는 IronRuby를 사용하는 것이 좋습니다. 둘 다 Microsoft의 DLR (Dynamic Language Runtime)을 활용하는 완벽한 언어 구현으로, 뛰어난 성능과 .NET Framework와의 긴밀한 통합을 제공합니다. C #과 IronPython / IronRuby 간의 상호 운용성은 요즘 매우 부드럽습니다. 특히 C # 4.0에 동적 콜 사이트 바인딩이 도입되었습니다.
하나의 스크립트 언어를 다른 언어로 선택하는 것은 특정 요구 사항에 따라 다릅니다.
선택해야 할 옵션 중 일부는 다음과 같습니다.
인터프리터 속도 – 개발자가 정적 동작을 스크립트하기 위해 스크립팅 기능 만 사용하는 경우 속도와 본격적이고 확장 가능한 API가 가장 중요한 측면 일 수 있습니다. 나는 LUA와 함께 좋은 경험을했습니다.
배우기 쉽고 접근성-컨텐츠 / 레벨 디자이너의 경우 동적 동작을 생성하기 위해보다 복잡한 스크립팅 언어 (배경에 따라 다름)를 배우기가 어려울 수 있습니다. 이 경우, 배우기 쉽고 (즉, 일반적으로 사용되는) 잘 문서화 된 언어를 사용하는 것이 더 적절할 수 있습니다. JavaScript 또는 Python이 좋은 해결책이 될 수 있습니다.
워크 플로 통합-기존 도구가있는 특정 생산 파이프 라인이있는 경우 다른 도구가 완전히 다른 도구를 사용하는 경우 해당 사례에 가장 적합한 언어를 사용하는 것이 좋지 않을 수 있습니다. 여러 도구를 사용하는 여러 프로그래머가있는 경우 특히 유효합니다. 이 경우 "잘 맞지 않는"언어를 사용하는 것이 더 효율적일 수 있습니다.
Windows 제목을 작업하고 CLR (Common Language Runtime)을 기반으로 실행되는 관리 코드를 작성하는 경우 (예 : C #)-(Iron) Python을 스크립팅 언어로 통합하는 방법을 제안합니다.
내 경험상, 파이썬은 비 프로그래머 / 디자이너에게 가르치기 매우 쉽습니다. 본질적으로 의사 코드처럼 읽으므로 개발자가 더 쉽게 선택할 수 있습니다. 동적으로 입력하는 것은 사전 코딩 경험이 거의 없거나 전혀없는 사람들이 언어를 빠르게 사용할 수 있도록하는 측면 중 하나 일뿐입니다.
배우기 쉽고 강력한 언어 외에도 Microsoft의 CLR 및 언어 팀 (Anders Hejlsberg, Eric Lippert, Mads Torgersen, Jim Hugunin 등)은 새로운 Dynamic을 통해 컴파일러 및 런타임 기능을 노출하는 데 큰 노력을 기울였습니다. .NET 4의 DLR (언어 런타임)은 정적 형식 코드와 동적 형식 코드 간의 상호 운용성을 훨씬 더 간단하게 만듭니다. 지금까지 보았고 시도한 것에서 상용구 코드가 최소로 줄었습니다. 코드베이스를 깨끗하고 유지 관리 할 수 있습니다.
이것을 사용하여 게임의 스크립트 부분과 엔진 사이의 마찰을 매우 낮게 유지할 수 있습니다. 동일한 VM 내에서 두 가지를 모두 실행하면 런타임 중에 런타임에서 더 많은 코드를 최적화 할 수 있습니다.
스크립팅 언어를 사용하는 기존 팀이나 스크립팅을 사용할 리드 (레벨) 디자이너가있는 경우 원하는 언어를 선택하십시오. 그들은 그것으로 그들의 시간을 보낼 것이므로, 그들은 수용해야합니다.
[소금 한 알] 누군가가 없거나 장기 계획이 없다면 자신의 롤 을 만드십시오 . 예, 스크립팅 언어에 대한 컴파일러 및 / 또는 인터프리터를 작성하는 데 1 ~ 2 주가 소요될 수 있지만 장기적으로 유연성은 여러 번 지불됩니다. 너무 망쳐 서 머리를 재발견하지 마십시오. [/ 곡물 소금]