C++很久以前就成為遊戲和圖形軟體的標準語言。而且,這是有實際原因的-使用即時圖形和物理需要高效能。處理幾何圖形、管理緩衝區、矩陣計算 - 所有這些都需要時間。
但是,高級邏輯又如何呢?遊戲機制、使用者介面、儲存管理、網路請求? 穩定性和安全性在那裡比速度更需要。
我們可以用編譯語言(例如 C++)實作對效能要求較高的函數,並從用動態語言(例如 Python)編寫的程式中呼叫它們。
但是,今天我們已經有了文檔齊全且易於使用的Python 庫(pygame、pyopengl、pyassimp、pybullet、numpy),這些庫主要在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中文網其他相關文章!