研發過程90%靠策劃自主完成,這款接地氣的國產引擎怎麼創造20億流水的?

研发过程90%靠策划自主完成,这款接地气的国产引擎怎么创造20亿流水的?

在國內,想要開發一款好的遊戲,對於從業者而言並不是件容易的事情。一個需求對接不到位,就會導致程序不爽、美術苦逼、策劃夾在中間無比頭疼的情況,有時甚至會為此讓整個團隊開上一整天的會。

一個好的開發環境,如果能大幅度減少這種情況的發生,遊戲開發或許會更加順利。葡萄君去年曾經報道過妙趣橫生CEO左拉的一篇分享內容,為了讓自己的團隊更順利的開發,他們自研了Saturn引擎,加入了很多接地氣的功能。

對內他們梳理了一套清晰的項目管理流程,捋順了不同工種之間的對接標準,讓策劃、美術、程序的分工更明確;對外他們開發了很多便於運營使用的輔助工具,來提升運營問題的處理效率。這套工作流程也引起了很多從業者的共鳴。

研发过程90%靠策划自主完成,这款接地气的国产引擎怎么创造20亿流水的?

受惠於這套引擎與項目管理流程,妙趣在去年就已經實現了全流水線20億的收入。其中和藍港互動合作的《黎明之光》全球總流水已經達到10億人民幣,《十萬個冷笑話》全球總流水也達到了1億美金(約6億4000萬人民幣)。

研发过程90%靠策划自主完成,这款接地气的国产引擎怎么创造20亿流水的?

在當時,左拉希望能做到最大限度優化協作流程,儘可能地減少不同部門間調配的環節,讓策劃能專注到開發上,並且承擔起最多的開發內容。今年,妙趣研發的Saturn引擎迭代到了2.0版本,算上一代的開發耗時,左拉和他的團隊在這款引擎上投入了整整10年的時間。

左拉在採訪中告訴葡萄君,新版本的引擎對他們的團隊來說意義重大,除了美術品質、光影渲染、圖形計算能力的提升,更重要的是在管理流程方面的效率提升,以及底層計算能力提升等方面。妙趣從今年開始的產品,也將全線採用新引擎來製作。此外,左拉與合作多年的藍港互動,也已就Saturn 2.0引擎達成全面戰略合作,並將首次基於新引擎聯合研發《伊蘇8》手遊。

關於引擎本身,首先,2.0引擎已經基本上可以做到80~90%的開發工作,全由策劃來完成,妙趣的程序團隊已經開始平臺化,成為項目之間的共有資源,通過矩陣管理的方式介入項目。

其次,項目管理流程進一步功能化,除了能夠更清晰地橫向推進項目進度,還可以實現個人項目分支、打包、測試的豎向管理。同時還支持了多個工作人員的實時協作,兩個工作人員在同一個遊戲場景中的建模、擺放物件等操作可以實時顯示到對方的遊戲場景中,並可以通過語音溝通配合。

第三,妙趣團隊還花3個月的時間研究出一套新的底層計算框架,來解決實現服務器之間、線程之間、運算核心之間,使用效率難以平衡的問題,避免出現負載失衡的情況。

基於這個計算框架,他們實現了更高效處理全球同服、無縫大地圖數據匹配的功能。

最後,二代引擎還將此前的數據分析模式更加細化,將用戶數據打散為更細的標籤,來支持大數據索引和跨時間段數據篩選、分析的功能。

研发过程90%靠策划自主完成,这款接地气的国产引擎怎么创造20亿流水的?

在左拉的觀念裡,他之所以如此渴望優化工作流程和開發效率,是因為希望策劃能把時間集中在遊戲設計等更有價值的地方,而不是在應對工作的瑣事上耽擱時間。他甚至還考慮推出個人版引擎,開放給獨立開發者,像RPG Maker那樣幫助好的創意簡單且快速落地。

而從葡萄君的角度來看,Saturn 2.0或許是最符合國內特殊開發環境的引擎。儘管在美術表現上它還有可提升的空間,正如左拉坦言,它相比國外主流引擎會有些許的差距,但在外圍系統以及項目管理流程等方面,對於技術實力不算拔尖的團隊來說,Saturn 2.0實用價值要高得多。具體來看葡萄君近期對左拉的採訪,以下為採訪內容整理。

做自研引擎是為了什麼?

在成立妙趣橫生的時候,我們的團隊已經做了7、8年遊戲,對引擎日常使用所面臨的問題非常瞭解,如果要持續開發出好的產品,必須解決工程化的問題,解決因溝通成本、流程繁雜帶來的低效問題。

遊戲雖然是創意產品,但其中至少30%~40%的內容是可以工程化處理的,就像電影行業那樣。當時我們認為,要支撐上層策劃、美術的創意,沒有好的底層工程化工具,是不可能實現大規模生產的。

於是我們的切入點就是去做底層的技術支持,做更接地氣且符合我們實際使用需求的引擎。

在開發過程中,我們會遇到大量棘手的問題,比如程序有版本管理系統,但是美術沒有。那外包的美術資源怎麼管理?100人的美術團隊產生出來的PSD、3DMAX文件和已經導入引擎的文件,少則1G、2G,多則十幾G,該怎麼管理?此外,還有集中打包版本的優化,硬盤的資源恢復,都是問題。

於是我們在一代引擎裡就開發了美術版本管理功能,來解決資源壓縮、版本更迭、儲存等問題。

又比如缺乏有效的管理手段時怎麼辦?多個項目並行的時候怎麼處理?國外引擎的單機屬性更強,協同性相對弱一些,因為國外研發團隊大多有自己的內部管理手段,但國內很需要這種系統。即便現在很多主流引擎也在集成外圍功能,但主要還是依賴與第三方工具的商業合作,而非引擎內置。那麼如果我們的引擎內,策劃、美術可以協同,來推動項目進程,就能更高效。

所以我們把這一部分也工程化了,例如測試打包等已經全部實現自動化。後端程序不僅能看到團隊和資源的綁定情況,也能看到統一的版本情況,SDK接入也支持自動化處理。

別人用一週的時間打包,我們可能一天不到就搞定了。

值得一提的還有服務器更新。以往人工管理的階段,500臺服務器需要5、6個人更新4到6個小時,而且在上傳、解壓、更新的過程中,手動操作很容易出錯。現在我們實現自動化以後,系統自動分發、停服、更新、啟動,僅需一個人花費半小時就可以處理完成。

以上種種都是為了把團隊的時間騰出來給創作,只有簡化了底層的流程,才能讓人聚焦在業務層面。比如一小時裡用10分鐘去實踐想法、45分鐘可以拿來想創意,而不是一個BUG找一天,最後發現代碼裡多了一個空格。

所以按我們的角度來定義,Saturn是提供整套開發流程的工具集,是一個工作引擎。

整整耗費10年,做引擎到底有多難?

一代Saturn引擎我們研發了接近8年,二代又做了整整2年,期間我們經歷了非常多的困難。

起初,因為我們

一代做了8年,積累了150~160萬行代碼,中間有大概60~70%可以複用,理論上大多數只需要梳理一遍填入新的引擎框架中就好了,但實際上並沒有想象的那麼輕鬆。光是引擎的設計文檔,我們就花了1年的時間,大量的細節堆積起來之後,工作量非常可怕

第一個難點在於技術上的突破。我們重新設計了底層的計算框架,光這一部分就折騰了近三個月,期間我們選用了很多計算模型,不僅要考慮底層的運算處理,還需要考慮上層開發者的實際使用。如果一旦底層設計不到位,把不容易理解的概念暴露給了上層,那麼對開發者來說便會造成困擾。

比如網絡遊戲中有很多高頻率的運算量,但是每個包體的運算量並不大,有時只佔用十幾毫秒的時間。而這類運算在底層分發速度雖然很快,但因為計算量很小,其實是浪費了分發的效率,所以我們在底層邏輯上做了更為整合、高效的分發方式來提升總體效率。同類的數據儲存結構、版本系統也都做了相應的優化。

第二個難點在於匹配開發者使用習慣。

一代引擎注重界面簡潔,而二代我們考慮讓開發者使用起來更為順手。比如美術會用到大量的軟件,如PS、貼圖製作、建模製作、電影剪輯等等,UI、UE的前端設計需要和這些軟件匹配,由於需要反覆測試,後端的製作也會有難度。

研发过程90%靠策划自主完成,这款接地气的国产引擎怎么创造20亿流水的?

第三個難點在於行業向心力。外部商業環境、內部團隊目標都要匹配以後,才能把事情推動下去。比如我要求公司,今年所有的項目都要用新版本的引擎來製作,包括我們新的沙盒遊戲、以及和藍港合作的《伊蘇8》手遊等。

如果沒有一個商業化的遊戲做支撐,我們就很難拿到一線最實際的需求和反饋,引擎開發也就脫離實際意義了。這方面我非常敬佩Epic Games,他們除了引擎,每年也在做遊戲。

所以儘管開發引擎是更技術、更純粹的事情,但實際上它不光是影響技術層面的,對架構層面、產品層面、團隊層面的衝擊也很大。現在我們還有差不多兩個月的工期,完善一些細節就可以實際投入運用了。我是工程師出身,對我們公司來說,這十年研發引擎下來,技術方面的積累會更多一些,這是優勢,也有可能成為核心競爭力。

從技術角度怎麼優化開發效率?

從我的角度來看,Saturn 2.0引擎變化的細節實在是太多了,很難一一舉例。除了圖形計算、物理引擎、物理光照、動態採集系統、服務器集成框架等基礎層面之外,最大的革新有四個方面。

第一,項目管理的角度來說,2.0的整個流程、版本管理、業務分配、協調性都會更好。

二代的工作流會比一代更加先進。一代中我們已經做到任務分配的體系,有完整的分發、完成、提交的流程,二代在這個基礎上,可以讓每個任務下直接附加相應的資源,然後在這些完成的節點上,都可以根據需求級別提升版本、出版本包來進行自動調試。

這相當於在每個人的節點處,都設置了向下獨立的分支,來實現橫向總流程的推動和豎向獨立分支的管理功能。比如策劃調整了某個核心數值,直接提交後可能會影響到社交關係、貨幣系統等其他系統的平衡性,而有了單獨自己的工作分支以後,就能夠自行測試數值,調好之後再提交。

另外,我們還可以導出獨立的遊戲模板,比如RPG、SLG的模板,用戶將資源替換成自己的,就可以快速生成遊戲。這個功能主要是針對於未來考慮發佈的個人版引擎,方便一些遊戲愛好者快速製作遊戲。

在協同性方面,我們還有一個圖層的概念。比如將10~20個開發人員分為一層,在同一個遊戲場景中進行合作。

可以想象,一名美術在處理地表層的紋理、地形,而另一名美術就在地表上放置物件,不管是這邊刷上了地表的植被、還是那邊放置一顆樹木,這些操作都能實時顯示在對方的操作界面中。而且我們可以通過內部語音、截圖工具來溝通這些細節的製作思路。

研发过程90%靠策划自主完成,这款接地气的国产引擎怎么创造20亿流水的?

一代Saturn引擎場景搭建界面

第二,技術上變化比較大的,是我們的計算框架,影響到全球同服、服務器協同運算、開放世界大地圖實現等功能。

以往的計算框架下,服務器功能還是定製的,服務器之間的功能是綁定的,不夠靈活。未來很多遊戲,比如無縫大世界的實現,除了客戶端機能、3D圖形加載技術,最大的難點還在於服務器的融合。看似無縫的大世界,其實是由多個服務器協同運算、數據同步來實現的,如果底層運算柔性不夠,就很難實現策劃的一些個性化需求。

所以這次我們在自動化的計算框架中引入套間的概念,只要在設置中拖動功能類到服務器的套間內,服務器就能隨時切換功能,拖入聊天類,就是聊天服,拖入物理計算類,就是物理計算服。

對於無縫大世界的處理,讓兩個玩家站在地圖實際的接縫處,看不出來異樣,就是依靠引擎底層封裝好的大套間對應協議和調動機制,可以讓系統不關注對面的玩家到底在哪個服務器或是哪個進程,從而調度雙方的數據進行匹配。

運用這套技術,還能更合理的利用服務器資源。

以往服務器資源分配不均、服務期內核心負載分配不均的問題,都可以基於底層計算框架的改變,來實現動態的負載分配。

研发过程90%靠策划自主完成,这款接地气的国产引擎怎么创造20亿流水的?

第三,從運營的角度來看,數據分析系統的變化也很大。

一代的時候我們可以統計遊戲中的大量數據,比如玩家在遊戲中的產出、消耗、行動,甚至是服務器宕機次數等。研發人員會從這些數據中瞭解用戶的需求,從而找到對遊戲和服務的優化方法,這可以幫助策劃更精準地找到玩家在遊戲中遇到的問題和遊戲中的BUG。

但一代所需要的數據儲存是關係需求,這樣雖然能記下每個人產生的記錄,但是這些數據沒有辦法抽選出來做類比,因為數據的關聯屬性被定死了。

研发过程90%靠策划自主完成,这款接地气的国产引擎怎么创造20亿流水的?

一代Saturn引擎玩家行為日誌

因此在二代引擎中我們將不再使用關係儲存而是使用了大數據的概念,採用hadoop的對象存儲系統。這樣一來,我們就

可以調用不同的關鍵數據,自動導出數據來進行分析。之後,還能再進入關係層數據庫,隨時查詢具體的用戶行為關聯情況。比如用戶任何一步的流失節點,廣告帶量的效果,都可以挖掘出來。

第四,我們這次在圖形圖像方面也做了很大的提升,包括支持純物理方程、光線追蹤算法、動態模糊等。現在我們與主流引擎可能會有一些差距,但不會有代差。圖形圖像的最終表現效果,依然要看團隊美術素質、製作能力以及對引擎的理解。這方面,我們也在和國外團隊合作,來拓寬自己的思路。

引擎解放了策劃與程序,之後呢?

總體來看,我們這套引擎的新功能,能更大程度釋放策劃的工作時間,然後用引擎的功能來代替程序員、美術的作用。一代中策劃可以完成接近40%的遊戲開發工作,在2.0引擎中,策劃甚至可以承擔起80%~90%的開發工作

,掌控大部分內容。

因為引擎上層我們採用了ECS實體組件系統,可以依靠拖拽圖表來實現大部分的引擎功能,所以現在我們的團隊非常精簡,單個組策劃在8~12人,程序8人左右,總體峰值在20~30人。而我們會把程序和美術分割成公用平臺,按照矩陣管理的思路,來調用到不同需求的項目組中。

這樣一來,策劃便成為我們最核心的人員。我希望策劃釋放出時間和空間以後,能更專注於鍛鍊自己的思維,花更多的時間去想創意,放飛自己的設計思路,活用到我們今後所有的產品中去。

比如即將與藍港首次聯合開發的《伊蘇8》,就是採用二代引擎來製作的第一批遊戲,主要由我們提供技術支持來配合藍港進行開發,開發團隊大概30人左右。這次藉助引擎新的性能,我們也希望拿出更好的品質,特別是在打擊感、畫質、世界觀還原等方面。這也是和藍港第一次聯合開發,且在立項之初就考慮全球化發行的IP遊戲。王峰也親自拍板拿下了《伊蘇8》全球獨家手遊改編權。這款遊戲預計在2019年Q2推出,除此之外後續我們還陸續會有Saturn2.0研發的遊戲上線。

研发过程90%靠策划自主完成,这款接地气的国产引擎怎么创造20亿流水的?

現在除了已經立項的商業化項目,我們也在嘗試改變做產品的思路。

立項時,首先團隊要對遊戲行業有熱情,其次製作人不僅要喜歡項目本身,還要拿出報告來說服我和核心管理層。接下來製作人需要找到同樣喜歡項目的成員,搭建自己的團隊,而且每個人都必須真心願意為項目付出。因為在未來,只有擁有玩家良好口碑的遊戲才會成為盈利的遊戲,商人思路做出來的產品,玩家不會再買賬。

如果這個局能組起來,我們將會擁有一幫有熱情的開發者,那創意離我們就不遠了。現在我們團隊裡就有人想做沙盒遊戲,在這個團隊裡80%的人都喜歡玩沙盒遊戲,所以他們就想做一個屬於自己的沙盒遊戲。團隊內驅力十足,開發環境才會健康。

總之在我看來,技術不是為了技術而做的,技術更應該是推動生產力的一方,要能充分地發揮這個行業的創意。


分享到:


相關文章: