首頁 >Java >java教程 >C++:遊戲產業對速度的執著

C++:遊戲產業對速度的執著

王林
王林原創
2024-07-27 18:31:42616瀏覽

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 上有線性複雜度的函數更可取。用 15 行 Python 程式碼繪製 100 棵樹比用 300 行繪製 500 棵樹更可取C++ 程式碼。

關心遊戲,而不是語言

當你沒有製作任何遊戲時,使用什麼語言並不重要,對吧?
與在 Python 或 Ruby 上製作遊戲相比,在 C++ 上製作遊戲要求更高且更費力。當您使用 C++ 製作1 個遊戲時,您將使用Python製作10 個遊戲。當您使用 Python 製作 5 個遊戲時,將是 使用 C++ 製作 0 個遊戲

讓我們關心遊戲和樂趣,否則還有什麼意義?

以上是C++:遊戲產業對速度的執著的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn