首頁>Club>
23
回覆列表
  • 1 # 智慧崽崽

    他們是用自己的開發引擎和借用別人的開發引擎混合開發的,他們自己的開發引擎也不是單純的C++也有java,lua等等,這麼多程式設計師和製作人員,根本可能統一到一個語言開發,要用什麼解決方案就用什麼辦法,重點又不是語言,基本都是最佳化問題,GTA5的製作接近一半的時間都是最佳化,聽說GTA5後期因為圖形最佳化不到位,差點涼了,後來是一個俄羅斯大佬幫他們解決了,這種公司後面都不是在乎程式語言的問題,都是演算法問題,他們的世界模型用的contextcapture,大家可以去玩一玩,看回答都是憑想象說話也是醉了。

  • 2 # 極客宇文氏

    遊戲的開發與普通系統軟體不同,主要會基於遊戲引擎,所謂遊戲引擎就相當於是遊戲的零件廠,可以基於這個零件廠進行遊戲的設計。gta5也不例外,是由RAGE引擎提供支援。

    如果說使用某種程式語言,那麼C++語言確實是遊戲開發比較常用的語言,因為這個語言有一大特點,在向量方面的處理非常優秀,畢竟有指標坐鎮,更重要的是比Java語言等中間隔著虛擬機器的語言效能好很多。

    據稱,gta5實際上差點夭折,就是因為遊戲的最佳化有問題,畢竟作為60多個GB的遊戲,效能最佳化如果做的不好,普通玩家根本買不了單。因此如果選擇程式語言,會考慮C語言,C++語言甚至融入組合語言。

  • 3 # ANAS工作室

    我正好做過一些開源引擎的小遊戲開發工作,可以分享一下。

    現如今的遊戲開發,尤其是3D遊戲開發,大多都是直接使用開發工具開發的,無論是開源閉源,引擎商會有相應的開發工具包。這個工具包在其他領域我們一般稱為框架,如spring 或者.net 等。在遊戲裡,unreal, unity 等就是我們講的引擎,同時也是開發框架。而GTA5是用rockstar advaced game engine, RAGE引擎製作的遊戲。

    遊戲由兩部分組成,圖形和指令碼。很多人會覺得遊戲引擎主要解決圖形的製作問題,其實不然,遊戲引擎大多是解決圖形的互動問題的。很多遊戲引擎支援3ds Max或者Maya的直接模型及動畫輸入,但我們無法用上述兩個軟體製作遊戲。

    當模型輸入後,開發人員就像製作動畫或電影那樣,在開始製作場景。所以幾乎所有的遊戲引擎都可以用來製作動畫或動畫電影。遊戲比動畫複雜的是,遊戲製作需要監聽使用者的輸入,需要提供互動介面,需要進行一些數值的計算和反饋。這些部分就很有意思了,正是遊戲引擎指令碼負責的部分。

    大部分遊戲引擎一開始都是直接使用現有的程式語言做指令碼語言的,但後來一些跨平臺大廠開始自己定義指令碼語言,為的是可以在跨平臺的時候,將指令碼轉譯成該平臺效率比較高的語言,當然其中一部分更多的是在動畫上的最佳化,比如win下的directx或者其他平臺的open gl。總之遊戲的編譯很複雜,就算是現在頂級的遊戲引擎的原始檔,裡面還有幾十年前寫好的程式碼,遊戲引擎真的是一點一滴積累起來的藝術品。

    基本上大多數遊戲引擎的指令碼語言都是基於C語言的語言習慣製作的,因為世界上大部分流行的語言都是C語言習慣(如果您不同意,那可以去看看C之前的那些遠古語言的書寫習慣是什麼鬼樣子),但引擎的指令碼語言並不可以簡單的就看作是C語言。引擎指令碼會預置很多元件來幫助開發人員建立程式和圖形之間的控制關係,比如監聽一個物件是否離開了場景,甚至是強制消滅(從場景中移除)一個物件等。在指令碼語言中大多都是一句話,但經過轉譯後就會是幾十行或者上百行程式碼。

    手機碼字不易,希望對題主有幫助!

  • 中秋節和大豐收的關聯?
  • 心中無愧天地寬下一句?