게임 개발 세계는 재밌습니다. 한편으로는 종종 새로운 아이디어를 빨리 받아들이고 다른 한편으로는 여전히 석기 시대입니다.
사실, .NET / Java / C / C ++ 이외의 다른 것으로 전환 할 때 많은 인센티브가 거의 없습니다.
대부분의 게임 회사는 다른 회사로부터 게임 엔진의 일부를 라이센스합니다. 이러한 부분은 C ++로 작성되었으며 소스에 액세스하여 이식 할 수 있지만 많은 노력이 필요합니다 (물론 라이센스가 허용해야 함).
또한 C ++에는 많은 레거시 코드가 이미 존재합니다. 이전 프로젝트의 코드를 재사용 할 수 있다면 (예를 들어, 속편을 쓰는 경우), 새로운 언어로 코드를 다시 쓰지 않고 같은 언어를 고수하는 것을 선호합니다 (더 많은 내용은 다시 소개 할 것이므로) 다림질하는 데 시간이 걸리는 수많은 버그.
마지막으로, 게임이 100 % C ++로 작성되는 경우는 거의 없습니다. 스크립트 언어를 사용하여 맞춤 언어를 사용하든 기존 언어를 통합하든 (루아는 요즘 가장 인기있는 언어 중 하나임) 많은 작업이 이루어집니다.
가비지 수집과 관련해서는 약간의 문제가 될 수 있습니다. 문제는 그다지 많지 않고 작동 방식이 더 큽니다. 가비지 수집기는 반드시 10 초 동안 게임을 정지시킬 수 없기 때문에 가비지 컬렉터는 반드시 비 차단이어야합니다. 할당 된 모든 메모리를 스캔하여 사용 가능한 메모리를 확인합니다. Java가 메모리 부족에 가까워지면 GC에서 상당히 질식하는 경향이 있다는 것을 알고 있습니다.
또한 수행 할 수있는 작업에 약간 제한이 있습니다. 런타임 오버 헤드로 인해 하드웨어를 완전히 활용할 수 없습니다. 크라이시스가 자바로 작성되었다고 상상해보십시오 ... 유일한 눈에 띄는 차이점이더라도 동일하지는 않습니다 (또한 실행하려면 Core i7이 필요하다고 확신합니다).
그렇다고해서 이러한 언어가 게임 개발에 자리를 차지하지 않는다는 것은 아닙니다. 아니요, 저는 단지 도구 프로그래밍을 언급하는 것이 아닙니다. 대부분의 게임의 경우 3D 게임을 포함하여 C ++에서 얻는 추가 성능이 필요하지 않으며 처음부터 모두 작성하는 경우 XNA와 같은 것을 사용하는 것이 좋습니다. 좋은 기회입니다.
상용 게임에 관한 한 RuneScape는 중요합니까? 그것은 가장 성공적인 Java 게임 일 것입니다.