一、籌備兩年,60萬字誠意續作《騰訊游戲開發精粹Ⅱ》發布
騰訊游戲開發精髓II
#第一部分
人工智能
第一章,基于照片的角色捏臉和個性化技術
角色的個性化已經成為現今游戲的一個常見需求。根據用戶的照片,生成帶有用戶特征的游戲人臉將會提升用戶的角色代入感和游戲體驗。本方案設計了一個智能捏臉系統,可以根據用戶上傳或拍攝的人臉照片進行自動的三維人臉關鍵點檢測,將標準的人臉根據游戲風格進行相應的變化,生成保持用戶人臉特征且具備游戲風格的三維人臉模型。
第二章,強化學習在游戲 AI中的應用
通過利用深度強化學習,我們在競速類、格斗對戰類等品類的游戲上建立了快速的游戲 AI生成管線。它只需要部分的人工參與,即可以批量地生成高質量的BOT AI。這些BOT AI在競技水平上不僅能夠比肩人類頂尖玩家,也能適配各個段位的人類玩家。與此這些BOT AI在擬人性上也相比傳統方法有更佳表現。
第三章,多種機器學習方法在賽車AI中的綜合應用
第三章以研發高強度的競速賽車AI為目標,介紹遺傳算法、監督學習和強化學習在賽車AI中的研究和應用。文章首先介紹利用遺傳算法進行程序自動化調參解決人工調整AI參數的復雜問題,以得到能力較為不錯的賽車AI參數;再采用通俗易懂的語言,介紹監督學習和強化學習訓練賽車AI模型的基礎知識以及落地過程中可能面臨的挑戰,并對它們的應用做簡要分析,以便于缺少相關知識的游戲從業人員了解這兩項技術。
第四章,數字人級別的語音驅動面部動畫生成
本章論述了一種基于機器學習方法的語音驅動數字人處理框架和相關算法。與傳統的基于規則或數據驅動的Lip Sync(Lip Synchronization,唇形同步)解決方案不同,該方案分析了高保真數字人面部綁定系統的制作管線和數據特點,并從機器學習的角度對該綁定進行抽象,定義了一個語音-控制器的端到端學習框架。基于這個框架,提出了一種基于深度學習的語音驅動面部動畫模型。
#第二部分
計算機圖形
第五章,實時面光源渲染
隨著基于物理的渲染在實時渲染領域廣泛應用,面光源變得越來越重要。面光源與經典的方向光、點光源等光源的區別在于其解為一個積分式,求解方向中Linearly Transform Cosine(LTC)由于精確性、較好的性能、支持多種類型的光源成為游戲等實時渲染應用程序的首選方案。然而要將LTC在移動平臺的生產項目中使用仍然存在不少挑戰。本章將對一系列在實踐中遇到的問題展開討論。
第六章,可定制的快速自動化全局光照和可見性烘焙器
本章提供了一個可定制的快速烘焙方案,底層提供基于Voxel(體素)的快速構建和光線追蹤,上層根據需求提供若干烘焙實現。該方案具有硬件要求低、可快速迭代、全自動等優勢,如《王者榮耀》的對戰地圖可以在幾秒之內預覽烘焙效果,大大提升了項目美術迭代的效率。
第七章,物質點法在動畫特效中的應用
最近一段時間,高質量的動畫與電影中(尤其是好萊塢)開始使用一種稱為物質點法(Material Point Method)的新的物理模擬技術。我們基于物質點法開發了可以用于制作對視覺細節要求較高的CG過場動畫的Physion,可以充分發揮最新的GPU架構提供的強大計算力;與傳統的CPU模擬器相比,計算效率提高了數百倍,在PC端絕大多數場景下可以達到實時或者準實時的速度。
第八章,高自由度捏臉的表情動畫復用方案
本章所闡述的技術方案幫助游戲美術師高效制作捏臉控制器,賦予玩家更高的自定義形象的能力。面部表情捕捉方案可以生產高質量的表情動畫美術資產。表情補償技術將細膩的表情融入玩家捏出的特征臉。通過針對移動端的表情系統性能優化和LOD方案,使得更多的手機游戲玩家可以體驗到這一切。
#第三部分
動畫和物理
第九章,多足機甲運動控制解決方案
本章總結了一套以程序化動畫為核心,結合動畫序列、曲線控制及物理模擬等手段來增強表現力的解決方案。該方案不僅從根本上解決了滑步問題,還能為不同形態的機甲快速生產和迭代運動動畫,使小團隊在人力資源有限的情況下,依然能高效地打造高品質的機甲運動效果。
第十章,物理查詢介紹及玩法應用
物理引擎的應用是游戲開發的重要組成部分。本章主要介紹物理引擎中的物理查詢功能,同時附帶相關玩法的實現方法。通過閱讀本章,讀者可以了解物理查詢的作用和基本分類,以及3種查詢類別的算法和相關玩法實踐。
第十一章,基于物理的角色翻越攀爬通用解決方案
我們開發了CP(Collison Probe,碰撞探測)系統,該系統基于物理系統的場景查詢(Scene Query)功能,適用于各種不同的物理系統接口。本章介紹的算法在游戲《無限法則》中已經正式使用。開發中的難點主要來自對游戲中復雜情況的歸納和算法的復雜度控制。
#第四部分
客戶端架構和技術
第十二章,跨游戲引擎的H5渲染解決方案
本章介紹一種方法,通過實現一套精簡版本的HTML5渲染引擎來屏蔽不同游戲引擎、平臺的底層差異,同時保留游戲引擎必要的交互體驗,可以采用H5的開發方式來快速實現運營活動開發,最終做到開發和運營分離,運營部門自主開發運營活動而不依賴游戲發版節奏。
第十三章,大世界的場景復雜度管理方案
在相同的硬件平臺下,復雜度管理方案很大程度上決定了大世界場景里填充內容的數量和質量。本方案基于控制理論中的負反饋控制系統,最終可達成:1、離線檢測工具,自動分析場景各區域復雜度。2、運行時根據平臺設定,智能控制場景內容的加載卸載、顯示隱藏、LOD控制等。3、根據平臺負載能力和當前負荷,更有效的控制運行負荷,獲取平滑的fps。
第十四章,基于多級細節網格的場景動態加載
大型次世代手游在移動端極易遇到大規模場景加載導致的性能問題,Level Streaming(關卡流式加載)是用于解決大場景加載的一類技術。本章將介紹一種基于多級細節網格的Level Streaming技術,它可以提高加載速度,降低加載內存,改善加載卡頓等性能問題。
#第五部分
服務端架構和技術
第十五章,面向游戲的高性能服務網格TbusppMesh
TbusppMesh是一款騰訊自研的適合游戲微服務化的ServiceMesh(服務網格),提供了有狀態服務一致性Hash路由、選主、容災等適合游戲業務場景的核心能力,助力游戲微服務化改造上云并提高CI/CD效率。本章從數據通信、組網策略、有狀態服務3個方面介紹TbusppMesh的技術原理和實現。
第十六章,游戲配置系統設計
本章主要介紹一種便捷的游戲配置管理方式,它實現了可視化管理、版本歷史和回滾和一站式發布。本章在講述游戲配置系統的會對整個游戲配置從設計、生產到使用進行詳細介紹,并在Github上發布了一個Demo實例供讀者對照參考。讀者可以在Github上探索 configmanagedemo查看Demo具體實現細節。
第十七章,游戲敏捷運營體系技術
我們提出的一套不依賴版本的敏捷運營技術DataMore及其服務體系,基于游戲的日志以及標準化API接口,借助于實時計算能力打造的與游戲解耦的運營工具鏈,幫助游戲實現敏捷快速運營。
#第六部分
管線和工具
第十八章,從照片到模型
2019年,舉世聞名的巴黎圣母院被燒毀。所幸早年已經有學者對整個巴黎圣母院進行了完整的掃描和建模,這對后續的重建工作起到了重要的指導作用。本章搭建的Photogrammetry生產管線可以用于從普通大小物件到大地形、大型物件模型的重建,將從拍攝照片到輸出可用于實時渲染的模型的整個流程智能化、自動化,以便用較少的人力、較快的速度完成大規模室外場景的3D重建工作。這將對游戲制作、數字化展覽、數字化記錄保存歷史文化遺產、科學研究等起到很大的幫助作用。
第十九章,一種可定制的Lua代碼編輯檢測工具
Lua語法簡單、使用靈活,在游戲開發中十分流行。但其生態并不完善,各插件在對Lua項目的支持上仍存在一些不足。本章遵從微軟LSP(Language Server Protocol,語言服務協議),前端使用TypeScript語言,后端使用Go語言開發了一款跨平臺Lua工具。目前主要提供了VSCode插件的應用LuaHelper。
第二十章,安卓平臺非托管內存分析方案
安卓平臺一直缺乏簡單易用的非托管內存數據采集與分析工具。對于大型游戲項目來講,沒有合適的底層工具,內存分析就是噩夢般的存在。本章旨在通過整合安卓平臺中的相關技術,提供一種易用且高效的非托管內存數據采集和數據分析解決方案。
第二十一章,過程化河流生成方法研究與應用
目前比較有特色的河流生成方法是游戲《地平線:黎明時分》中提出的方法,考慮了階梯瀑布、山谷侵蝕、寬度變化等河流自然特征,能夠得到比較生動的效果。本章借鑒地平線方法,在此基礎上進行補充和擴展,實現一套魯棒可控的河流生成系統。
本書獲多位業界高層、行業專家力薦
騰訊公司把自己技術人才多年研發的經驗積累編篡出書,無疑是對中國游戲技術研發的巨大貢獻。
——姚勇,北京永航科技有限公司CTO
從業的開發人員或有興趣在相關技術方向發展的同學能從中獲得行業中較新的且已經落地的技術的第一手資料。
——王禰,Epic Games China首席引擎工程師
——金小剛,浙江大學-騰訊游戲智能圖形創新技術聯合實驗室主任
本書由鵝廠游戲的技術大牛出品,記錄和分享了在面對技術時代變遷時,在大型在線游戲作品中如何應用AI技術和場景落地的經驗、教訓,以及他們的思辨路徑。推薦給喜歡游戲產業,喜歡AI新科技的朋友們。
——張志東,騰訊主要創辦人
我們嘗試將項目中積累沉淀的前沿技術方案與全行業共享,希望能激發出更多的想象力和創意,不斷豐富游戲技術在不同場景、產業運用的可能,共同探索產業契合未來的可能路徑。
——馬曉軼,騰訊集團高級副總裁
作為《騰訊游戲開發精粹》的續作,本書維度更豐富、技術更前沿,希望為讀者朋友們提供更好的閱讀體驗。期待能以本書為契機,促進游戲行業更多的分享交流,推動游戲行業良性發展,助力游戲人成就游戲夢想。
——夏琳,騰訊游戲副總裁、騰訊游戲學堂院長
《騰訊游戲開發精粹Ⅱ》和時下的熱詞Metaverse(元宇宙)遙相呼應:騰訊游戲在計算機圖形學、動畫上的實踐,工業化的生產流水線,各種AI能力和應用,大世界的C/S架構……凡此種種,均有助于讀者搭建自己的虛擬世界。
——崔曉春,騰訊游戲副總裁、騰訊游戲公共研發運營體系負責人
對于正在從事游戲開發或對游戲開發好奇的讀者,本書既可以拓展知識面,又可以對照著動手實踐。
——徐成龍,騰訊互動娛樂天美工作室群技術中心副總經理
《騰訊游戲開發精粹Ⅱ》是一部技術好文集錦,囊括了當前游戲開發所必需的多種關鍵技術。
——陸遙,騰訊互動娛樂光子工作室群技術中心助理總經理
本書由騰訊游戲多位資深技術專家共同編撰,涵蓋了游戲研發各重要領域的知識,代表了騰訊游戲前沿的技術實踐。
——朱新其,騰訊互動娛樂魔方工作室群魔鏡工作室總經理
《騰訊游戲開發精粹Ⅱ》貴在實戰和實踐,除技術和算法外,我們更能看到這些技術和算法是如何應用到具體的項目中最終面見玩家的,是一個有實戰意義的完整分享。
——安柏霖,騰訊互動娛樂北極光工作室群技術總監
希望本書用心編撰的內容能給予讀者更多啟發,我們一起知行并進,持續探索前沿技術對游戲開發的內在提升。
——沈黎,騰訊互動娛樂 NExT Studios負責人
二、一個高級java工程師需要具備什么能力和技術
宏觀方面
一、 JAVA。
要想成為JAVA(高級)工程師肯定要學習JAVA。一般的程序員或許只需知道一些JAVA的語法結構就可以應付了。但要成為JAVA(高級)
工程師,您要對JAVA做比較深入的研究。您應該多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、線程。如果可能,希望您
對JAVA的所有包都瀏覽一下,知道大概的API,這樣您就發現其實您想實現的很多功能,通過JAVA的API都可以實現了,就不必自己費太多的腦經了。
二、設計模式。
其實寫代碼是很容易的事情,我相信您也有同感。但如何寫得好就比較難了。這個“好”字包括代碼可重用性,可維護性,可擴展性等。如何寫出好的代
碼往往要借助一些設計模式。當然長期的代碼經驗積累,只要您用心,會使您形成自己代碼風格。相信您的代碼也比較符合代碼的可重用性,可維護性,可擴展性。
但既然前人已經給我們總結出了經驗,我們何不踩著前人的肩膀前進?
三、 XML。
現在的系統中不使用XML幾乎是不可能的。XML的功能非常強大,它可以做數據轉換、做系統的配置、甚至可保存您的系統業務數據。因此您必須了解
XML,包括它的語法,結構。您還需要比較熟練的使用解析XML的一些API,比如JDOM,SAX等,因為在我們一般的項目中,XML往往擔當系統配置
信息的作用,您需要用這些API解析這些配置信息,開發完美的項目。
四、精通使用一種或兩種框架。
“框架都會有許多可重用的代碼,良好的層次關系和業務控制邏輯,基于框架的開
發使你可以省出很多的開發成本”。這里希望您能精通,更多的是希望您能通過框架的使用了解框架的思想。這樣您在開發一個項目時思路會開闊一些,比如您
會想到把SQL語句與您的JAVA代碼分開,再比如您會考慮把您的業務邏輯配置到XML或者數據庫中,這樣整個項目就很容易擴張了。
五、熟悉主流數據庫。其實真正比較大的項目都是有人專門做數據庫的,但往往很多項目要求作為(高級)工程師的您也參與數據庫的設計以及SQL的編寫。所以為了
更好的為國家做貢獻,建議您還是多了解一些主流數據庫,比如SQLSERVER,ORACLE,多連接SQL和存儲過程以及觸發器。如果您不是“科班”出
身,您還需要補充一些數據庫原理方面的知識。
六、精通一種或兩種WEBServer。
因為作為JAVA工程師,特別時
想成為高級JAVA工程師的您,您不可避免地要部署您的項目到WebServer上,而且只有當您精通一種WebServer,您才可能最大限度地使用它
的資源,這往往可以節省很多時間和精力。
七、 UML。
您肯定想成為高級工程師,因此您有必要了解或熟練或精通UML,這取決于您有多大決心想成為高級工程師和項目經理。在比較正規的開發團隊
中,UML是討論項目的交流工具,您要想做一個軟件工程師,您至少要能看懂,您要想做高級工程師,您要能通過它來描述您對項目的理解,盡管這不是必須,但
卻很重要。
八、站在高度分析問題:
這不是一個知識點,也不是通過書本就能學得到的。只所以提到這一點,是因為我比您還著急,我希望您更快的成為一個高級的軟件工程師,而
不是一個一般的軟件工程師。希望您在工作中多向您的系統分析員、需求分析員、系統設計員學習,多站在他們角度上去看您在開發的項目。在最好在項目之初先在
您的腦海里對項目有個大致的分析、設計,然后和他們進行比較,找找差別,想想缺點。
九、工具。
您在這個階段可能接觸到不同的工具了,盡管您還需要使用JB或者IDEA,但能可能對
ROSE,Together要多了解一些,因為您要畫UML了。不要再對Dreamweaver等HTML編輯器情有獨鐘了,那些JSP頁面讓初級程序員去寫吧
微觀方面
1.Core Java部分
這是最基礎的,對于一個java高級開發/設計人員,你需要對這一部分達到精通的水平,重點內容如下:
a.面向對象編程思想(封裝繼承多態接口)
b.字符串處理
c.java.lang包,java.util包等常用包
d.java異常處理
2.Java高級部分
a.Java I/O流
b.Java多線程技術
c.Java網絡編程
d.Java Swing
后兩項可以了解即可,如果項目需要可以深入研究
3.前端基本技能
* HTML+ CSS網頁開發
* JavaScript
* Jquery
*瀏覽器兼容性 CSS hack(了解)
4.熟練使用JSP+ Servlet進行開發
5.MVC設計模式,原理,以及相關框架,如Struts
6.SSH框架
7.緩存技術 session& cookie
8.熟練使用一種以上Java開發工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)
9.熟練使用XML
JDOM w3c.dom SAX
10.Java設計模式
工廠模式,單例模式==
11.Java反射機制
反射的各種用法
12.了解或熟悉 C, C++,.NET
13.熟悉JDK的配置,環境變量
14.數據庫oracle必學,其他最好了解一種以上(mysql,sql server,access==)
oracle:視圖,索引,存儲過程,觸發器,游標,包,常用函數==
15.數據庫原理
事務的原理,鎖機制,表連接,復雜查詢語句(工作經驗),性能調優,鎖表以及解決方案==
16.JDBC,連接池
17.Ajax,反向Ajax
18.HTTP協議,request和 response的原理,HTTP status(了解常用的),Https原理
19.熟悉Linux基本命令,使用過Linux/Unix系統,可以編寫shell腳本,可以在Linux上部署項目
20.了解windows系統批處理腳本bat
21.了解HTML5,最好學習過
22.熟悉一種JS框架,如Prototype
23.J2EE原理熟悉一種以上web容器如Tomcat,JBoss,websphere,weblogic==
24.熟悉ant或maven
25.熟悉一門腳本語言,如python,ruby
26.了解php/ asp
27.了解ftp協議及原理
28.熟練使用Junit測試,熟悉Mockito等測試工具
29,熟悉javac,javadoc,native,native2ascii等常用命令
30.熟悉常用的排序算法,如冒泡排序,快速排序等,最好自己研究過一些的算法。
31.了解Flex(不學也沒關系)
32.了解敏捷開發模式
33.工作流workflow至少用過一種,如OSworkflow,了解原理
34.使用過VPN了解其原理
35.熟悉jstl表達式和el表達式
36.熟悉webservice,WSDL,SOAP
37.圖片處理,如圖片上傳,預覽,限制大小等
38.版本控制工具,CVS VSS SVN
39,JSON技術,JSON+AJAX
40.分頁技術,最好自己實現過不僅僅是用過要知道原理
41.Java Mail
42.Java讀寫txt,excel,JXL技術
43.JVM原理,JVM內存管理,GC,Java堆棧池
44.熟練使用下面的工具:
office辦公軟件,word,excel,ppt等
plsql,sqldevelop數據庫開發工具
outlook大公司都用
ue編輯器
瀏覽器控制臺,調試
SHH/PUTTY遠程
45.UML建模工具Rational Rose等
46.使用log4j
47.使用過開放Api如百度,騰訊街景,新浪微博等
48.頁面靜態化技術(偽靜態頁面)
49.報表技術,使用過報表制作工具,如水晶易表。
50.定時任務,如Spring batch,學會自定義batch任務(不適用第三方工具)
51.了解uuid
52.b/s和 c/s架構
53.正則表達式
54.了解jndi jms
55.ERP
56.UNICODE編碼,亂碼解決
57.開源網絡編輯器,如ckEditor
58.二進制原理
59.使用過,了解過開源論壇框架,如discuzz
60.GWT,Closure框架
61.了解大數據,云計算
62.搜索引擎搜索技術
63.軟件工程,項目管理
三、騰訊工資是多少
像BATJ這樣的互聯網大廠對招聘的要求還是比較高的,當然薪資待遇也是很高的,下面以騰訊為例。
1、騰訊薪資構成
鵝廠薪資結構:一般是12+1+1= 14薪。
鵝廠的標準薪資是14薪,但是通常能拿到16-20薪。
年終獎看部門盈利情況,一般是 3個月。
雖然說鵝廠的薪資結構一般是 16薪,但實際上從 offer看不乏 18薪的團隊。
并且鵝廠作為項目眾多的大廠,內部不同事業線之間也是存在不小的薪資、股票差距的。比如鵝廠的游戲團隊薪資、年終獎一般都比較高,而騰訊云的股票份額則要高于游戲團隊。
根據去年騰訊對外發布的校招薪資,可見鵝廠對于畢業生的待遇還是不錯的:白菜價22-25w,SP級25-35w,SSP級35w+...,不少算法類崗位更是開出了50w的高薪。
而從社會招聘來看,在高校應屆生已經達到875萬人的嚴峻情況下,各互聯網大廠薪資不減反增,從各大招聘網站顯示,大廠“白菜價”Offer基本上15w起跳,騰訊、字節等頭部名企基本崗位都向20w年薪看起的。
2、鵝廠的高薪程序員具備什么要求
鵝廠工程師在去年調整了職級,取消了原有的 6級 18等(1.1-6.3級)的職級體系設計,將專業職級體系優化為14級(4-17級)。
與之相對應的是,統一置換為“專業職級+職位稱謂”。這是由于雖然T3序列的 title都是高級工程師,但每個小職級范圍之間的薪資差距并不小,T3-3級別的薪資比 T3-1級別要高出 30-60W/年,且 3-1級別幾乎沒有股票。
再按照人才需求的邏輯來看,鵝廠的程序員可以分為四個大類:
想法層:產品經理、UI設計、策劃;
實現層:Web前端、Java、C++、iOS、Android、Python;
維護層:Linux運維、Web安全、大數據開發、云計算;
推廣層:網絡營銷。
就目前來看,我們把想法層、實現層、維護層、推廣層都定義為可學習的項目的話,實現層和維護層最穩定,但是也最辛苦。
而對于想法層和推廣層來講,推廣費用是有限的情況下,如何做到推廣結果的最大化,這是一個非常難的問題。所以這也就是很多人為什么想做程序員(處于實現層和維護層)的原因,雖然辛苦,但是高薪又穩定。
3、鵝廠這樣的大廠,招聘工程師需要什么技能?
互聯網大廠招聘人才,對應聘者有什么要求?一般對于應屆畢業生的要求是畢業于名校、成績優異、面試表現好。社會招聘一般是具有多年工作經驗的高技能及項目經驗豐富的人。
以不久前發布的招聘需求為例,Switch《新超級馬力歐兄弟U豪華版》過審,而運營單位為“深圳市騰訊計算機系統有限公司”。
根據騰訊招聘網站顯示,繼此前的Switch游戲移植客戶端開發和Switch產品策劃等招聘外,日前騰訊又發布了更多關于Switch的崗位招聘。
招聘要求顯示,Web前端開發工程師的崗位主要負責Nintendo Switch國內相關的Web需求,包括官網、商城以及相關的內部運營系統開發。
而其中Node.js的技能要求卻通常是Web全棧工程師的必備技能。可見鵝廠對于人才的選擇是比較嚴苛的。
根據當前的市場需求,互聯網大廠們對于普通前端開發工程師的需求逐年銳減,大廠對于人才產生了強烈的“T”型人才需求,即在一樣精的基礎上還要“百樣通”。例如Web全棧工程師的招聘數量高達21萬之多,對應的人才卻很少,因此高薪也是可以理解了。
對于想學習Web全棧工程師、架構師等無基礎同學來說,北大青鳥、課工場等優秀品牌都是不錯的選擇。課程根據招聘需求制定,包含全部分布式微服務技術,對標鵝廠T4、阿里P8級別。
希望我的回答對你有所幫助!