>Java >java지도 시간 >C++: 게임 업계의 속도 집착

C++: 게임 업계의 속도 집착

王林
王林원래의
2024-07-27 18:31:42615검색

C++ : speed obsession in the game industry

속도가 정말로 필요한 때는 언제인가

C++는 오래전부터 게임과 그래픽 소프트웨어의 표준 언어가 되었습니다. 그리고 실제 이유가 있었습니다. 실시간 그래픽물리 작업에는 고성능이 필요했기 때문입니다. 형상 처리, 버퍼 관리, 행렬 계산 등 모든 작업에는 시간이 걸립니다.
그러나 고급 논리는 어떻습니까? 게임 메커니즘, 사용자 인터페이스, 스토리지 관리, 네트워크 요청? 안정성과 안전성은 속도보다 훨씬 더 요구됩니다.

책임분배

C++와 같은 컴파일된 언어로 성능이 요구되는 기능을 구현하고 Python과 같은 동적 언어로 작성된 프로그램에서 이를 호출할 수 있습니다.
그러나 오늘날 우리는 이미 잘 문서화되어 있고 사용하기 쉬운 Python용 라이브러리(pygame, pyopengl, pyassimp, pybullet, numpy)를 보유하고 있습니다. 이 라이브러리는 주로 C/C++에서 구현되고 무거운 계산을 위한 기능을 제공합니다. 또는 특히 물리학/그래픽. 우리는 그러한 라이브러리를 스스로 구현할 필요가 결코 없을 수도 있습니다.

C++만이 유일한 선택인가?

Java 또는 C#과 같은 가비지 수집 언어는 C++보다 느리고 실제로 많은 계산 요구 사항을 충족하지 못한다는 것이 일반적으로 인정됩니다. 물론 이는 사실이 아닙니다.
C++는 일부 특수한 경우 성능 면에서 Java 또는 C#을 20~30% 능가할 수 있지만, 동적 함수 디스패치, 언어 상호 작용, 비동기 작업, 텍스트 또는 추상 컬렉션 관리와 같은 런타임 추상화의 경우, Java와 C#은 C++에 비해 훨씬 높은 효율성을 보여줍니다.
또한 Jython이나 IronPython을 사용하여 Java나 C#으로 동일한 런타임에서 Python 프로그램을 실행할 수도 있습니다. 공유 가비지 수집 메모리, 유형 시스템, C# 또는 Java 라이브러리에 대한 간편한 액세스 등 많은 이점을 즉시 제공합니다. Java에서는 Clojure 및 Groovy와 같은 멋진 동적 언어가 구현되어 Java 클래스 라이브러리에 대한 완전한 액세스 권한을 갖고 이전에 언급한 이점을 공유합니다.

실제로 성능에 영향을 미치는 것은 무엇입니까?

오늘날 개인용 컴퓨터는 15~20년 전보다 훨씬 빠릅니다. 그러나 대부분의 데스크톱 프로그램이나 게임은 예상만큼 빠르게 작동하지 않습니다(아직 대부분 C/C++로 구현되어 있음에도 불구하고). 오늘날 우리에게는 언어 속도보다 좋은 알고리즘효과적인 접근 방법이 훨씬 더 필요합니다. Python에서 일정 복잡도를 갖는 함수가 C에서 선형 복잡도를 갖는 함수보다 더 바람직합니다. Python 코드 15줄로 100개의 나무를 그리는 것이 300줄로 500개의 나무를 그리는 것보다 더 바람직합니다. C++ 코드입니다.

언어가 아닌 게임에 관심을 가져라

만든 게임이 없다면 어떤 언어를 사용하는지는 별로 중요하지 않죠?
C++로 게임을 만드는 것은 Python이나 Ruby로 게임을 만드는 것보다 훨씬 더 힘들고 힘든 일입니다. C++로 게임 1개를 만들면 Python으로 게임 10개를 만들게 됩니다. Python으로 게임 5개 만들면 C++로 게임 0개가 됩니다. 게임과 재미에만 신경쓰세요. 그렇지 않으면 무슨 의미가 있나요?

위 내용은 C++: 게임 업계의 속도 집착의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.