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個遊戲。
讓我們關心遊戲和樂趣,否則還有什麼意義?
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3