沈予卿,吉比特技術中心負責人,《一念逍遙》制作人。
從高中就開始用文曲星摸索編程到如今與團隊自研編程語言,是一名有著一頭烏黑濃密的秀發、不愛穿格子衫的程序員。
10月24日,是廣大程序員同志們的節日。剛好是周日,可以趁著假期好好放松,但我們的沈老師不予茍同地說道:“我最想做的事情是去公司加班,帶娃比寫代碼要累的多。”小G深表佩服之余,也立刻捕捉這一野生程序員大大,滿懷著好奇心向沈老師提出一系列的問題,干貨滿滿,敬請食用。
自研編程語言,吉比特技術中心很認真
跟我們介紹一下吉比特的技術中心吧。
吉比特技術中心,歷時不長,正在茁壯成長中。
整體上我們的技術中心做的所有東西都是為項目服務的,包括語言、引擎、AI等等。
第一個是編輯器研發、編輯器周邊的擴展和工具鏈相關的東西,這其中研究的內容包括編輯器的內核、插件、配套工具如、第三方庫封裝等;
第二個是服務器的研發,光有語言是不夠的,所以需要用這個語言去封裝一些框架型的東西,就是類似于一個游戲服務器的框架,定義了各種游戲服務器里面必須要有的一些概念,但這些東西基本上和具體的游戲業務無關;
第三個是研發與游戲相關的庫,不是數據庫也不是純算法類的庫,是封裝了一系列功能方便開發者方便使用的函數庫;
第四個是unity相關的渲染和優化,為我們公司的一些項目組提供服務;
第五個還有與外部AI公司合作,做些類似虛擬人格方面的研究,并將這方面的技術與游戲結合。
可以介紹下技術中心在自研的編程語言嗎?
這個語言是一個動態語言,專為游戲開發的;跟Lua、、的概念是類似的,但是比起一些傳統的動態語言,這款新的編程語言在多線程方面,會做的更好一點。
很多動態語言是沒有內置多線程相關的特性,在這種情況下編程的時候需要開多個進程,進程之間還需要通信,這樣做起來的服務器結構比較復雜,但我們這款新的編程語言和我們公司的「小步快跑」模式十分契合,可以快速出原型,快速驗證,程序結構簡單,對開發進度提升有很大的意義。我們也做了很多一些第三方庫的封裝,還有一些常用的框架封裝,可以基本實現「開箱可用」,直接拿過來很快就能出原型。
不足之處的話,這款編程語言驗證時間不夠,實際真正投入商用的項目還不多,所以之后的計劃將提高使用率,多做幾個游戲,多上線,從而經受市場的經驗。
為什么會自研編程語言?
這個算是吉比特的技術傳統,我們從《問道》那個時候開始就是用自研的一個編程語言在做服務器,一直在更新迭代,到現在已經完全重構了。這是一步一步迭代的過程,并不是突發奇想,說做就做的。
開發編程語言的過程是怎么樣的?
過程就是慢慢懟。從《問道》開始到現在,應該有十來年了,從1.0慢慢地到2.0、3.0,到現在完全重構了一版。一步一步地做下去,幸運的是也沒有遇到特別大的問題。每一代還是有一些商業產品在用,諸如《問道》《問道手游》《一念逍遙》《最強蝸牛》《斗仙》《問鼎》等等都有運用到這個語言做服務器后端。
關鍵問題,這款編程語言后期會開源嗎?
會的,但是還沒太明確計劃是什么時候,主要是(需要先想清楚)這款編程語言推出去之后能不能為大家解決實際問題。我們還在努力把這款編程語言做好,把周邊配套的東西做利索,完善工具和插件,再把一些案例示例做上去,讓大家更好使用。
1024即將到來,當然要談談程序員
寫了這么多年的程序,你最大的收獲是?
成就感,從做出游戲和做出語言這兩方面可以體會得到。在學習的過程中會體會到寫程序是一件很厲害的事,再到結果呈現出來的時候,十分有成就感。
你覺得程序員身上有什么共性?
程序員的共性就是學習能力比較強,喜歡琢磨新東西。有些程序員就是天然對一些新事物會比較好奇,看到一些新技術、新效果、新框架,就會很感興趣并且充滿求知欲,到最后學有所成的時候會十分滿足。同時,程序員還有一個特點,十分有自驅力,會給自己去找事情做。
怎么看待程序員“35歲職業危機”?
在我們國家,這樣的觀念是普遍的。這個要看各自的心理狀態,有的程序員會覺得35歲好像就該退休了,就做不動了,就加不了班了;但我感覺還好,雖然說現在加班確實沒以前加得動了,體力也沒以前好了,但是反過來看積累的經驗也越來越豐富了,寫東西也會越來越穩妥,所以實際上總的效率來看就并沒有太大的變化。而且我一直相信文曲星 nc3000 選擇系統程序升級方式,只要你還愿意做,總能做下去。
作為程序員,如何看待游戲炸服這件事呢?
炸服是一件很難避免的事情,經常會有突發的一些問題,有的時候我們根本無能為力,比如物理主機掛了,是屬于物理層面上出現了問題,這是束手無策的。
但就程序方面的炸服,又可以回到我們編程語言的優勢上來說了。因為這個語言是動態語言,很多時候出錯只是報個錯,不會引起程序崩潰,不太容易炸服;我們另外做了很多對于游戲來講比較友好的功能,像熱更新的一些功能文曲星 nc3000 選擇系統程序升級方式,都是內置的,并且做的比較方便。一旦發現線上有什么問題,立刻上去敲敲代碼,然后把代碼傳上去,馬上就能更新上去,便不用重啟;通過這種方式處理了很多線上的一些問題。
找對象,程序員和代碼一樣“雖難但快”
網上經常熱議程序員找對象難,您怎么看?
確實是這樣的。因為程序員社交的時間比較少,一般也都比較宅,就算是放假也窩在家里看動漫。但是其實話說回來,在這么少的社交時間內,我們項目組里面還是有不少同學找到了對象,他們只花了別人1/10的時間就找到對象,所以如果單從效能上來看其實不算低。
作為有對象的程序員,做過最浪漫的事?
我結婚那會兒寫了個小游戲給我老婆,但這個游戲就不展示了,因為當時還是個中二的小年輕,所以(做得)比較土鱉。
關于編程,沈老師的“江湖忠告”
作為兩個孩子的爸爸,會讓小孩學編程嗎?
如果是他喜歡的東西那可以去學,不喜歡就尊重他的選擇,強扭的瓜不甜。因為有的同學學編程真的很痛苦,拿我老婆舉個例子,大學的時候她和我一樣是學計算機的,她學編程就很痛苦,查個bug查不出來,就會變得抓狂,逐漸地就完全喪失了對程序的熱情,最后成為了一個策劃。
有建議給已從事或即將從事編程的同學嗎?
建議就是大家沒事的時候多做,多在實踐中去學習。因為有些同學可能看書看得挺多的,但很多東西看完以后,如果不實踐的話就會忘,所以還是要多實踐多嘗試。現在的互聯網也比較發達,開源這些東西也比較多,網上能查到很多資料,有助于學習,不像我們當時很多程序問題解決起來比較麻煩。不停地去實踐,嘗試著寫出來,這樣自己也比較有成就感。
小G
程序員日快到了,給我們廣大程序員同胞說一聲祝福吧?
祝大家保持一頭烏黑發亮,濃密健碩的秀發!
沈老師
今日互動