使用lua作為主要語言的公司有哪些?
如果有這樣的公司,那麼會有"lua程序員"這樣的職位存在嗎?
有。鄙公司就採用Lua作為客戶端研發的「主要語言」。
說是主要語言有這樣兩個標準:1、不論級別,只要參與客戶端研發,都大量使用Lua進行開發。2、我們還有一條常用的標準,就是應該用lua做的,都用lua做。不應該用lua做的包括:部分平台操作系統API相關、性能瓶頸、lua不能有效節省編碼效率的場合(如涉及大量演算法、二進位數據處理等情形)、已有現成C++第三方庫的場合。這四條標準都不符合的功能,我們都採用Lua開發,包括但不限於:業務邏輯開發、事件黏合、字元串解析、功能封裝、程序框架結構。
說白了,在客戶端研發這一塊,我們只在「需要的時候」才不用Lua
順帶一提,我們招Lua程序員。公司招聘信息上寫的Title包括「遊戲腳本程序員」和「遊戲程序員」,實際工作都以Lua為主。甚至包括我們的「遊戲引擎工程師」在內,雖然實際的引擎研發是以C++為主,但考慮上他們寫的Unittest、Samples,以及參與項目所編寫的代碼,Lua的比重要遠遠超過50%。這樣的公司很多,我上家和現在公司都用lua。
另外,是否用lua,還是看技術主程的決定。使用了lua:1.方便(輕鬆)擴展遊戲邏輯2.方便非程序員實現自己的遊戲(擴展)邏輯功能(而結果咱們C++程序,咱們不用寫了,而且避免了溝通~當然腳本規則和介面文檔必須全面)。所以會有「lua程序員」這樣的職位,而通常叫做:腳本程序,或者腳本策劃~謝邀。
首先說明一點,規模越大的組織,「使用XX語言作為主要語言」的可能就越低,Lua當然也不例外。這是因為不同的語言的設計和作用差別較大,所以組織規模越大,單一語言的局限性就越大。這一點對所有的語言都是有效的。
然後,回答題主的問題:
Lua-scripted games (http://en.wikipedia.org/wiki/Category:Lua-scripted_video_games)Lua-scriptable game engines (http://en.wikipedia.org/wiki/Category:Lua-scriptable_game_engines)這個頁面上列出了主要使用 Lua 作為腳本語言的遊戲和可使用 Lua 的引擎。這裡大家可以看到英雄無敵,魔獸世界,孤島危機,模擬城市等不同種類的遊戲,這從側面反映了(不像unrealscript等腳本語言)lua具有較強的適應性,對不同的遊戲類型都能很好的適配。Lua-scripted applications (http://en.wikipedia.org/wiki/Category:Lua-scriptable_software)
這裡列出了主要使用 lua 的應用程序。用過其中某些應用的同學應該能體會到 lua 是如何提供標準功能之外的額外的擴展性的。舉個栗子,Wireshark 是一款網路通信數據分析的軟體,大家知道網路上(即使是家裡的簡易網路)每秒鐘的流量也是很大的,成百上千的數據流通過路由器,在不同的ip之間以很複雜的模型在流動。僅僅使用 wireshark 的標準功能去過濾,分析和調試,是一件苦差事,不僅煩瑣而且易錯。使用 lua 就能把這些晦澀的條件表達式轉化為清晰可讀的代碼和注釋,理解和維護難度就可以大幅降低。再補充一個2012年的舊聞吧,(提供了上面幾個鏈接內容的) wikipedia 選擇了使用 lua 作為模板腳本語言。
Slash Dot Story: Wikipedia Chooses Lua As Its New Template Language)Source (Wikipedia): Lua chosen as new template scripting language Wikipedia:Wikipedia Signpost/2012-01-30/Technology report
題主感興趣的「Lua程序員」在遊戲公司里通常的title是「腳本策劃」或「腳本程序」 (寫完之後看別的回答才看到@Irons Du同學已經提到了,哈哈),這取決於他們的工作性質是偏設計還是偏實現。
實際上,對於策劃來說,懂得發掘並利用腳本的便利性,並不是策劃的必備技能,但掌握後往往會給你超出預期的回報(能夠設計出更易於實現的系統)。不會寫腳本的策劃不是好程序,嗯嗯。另一方面,對程序來說,給自己的系統用腳本語言設計一個簡潔優雅的協議(正如魔獸世界的腳本介面),把團隊間、部門之間的約定標準化和實體化,能夠大幅降低與策劃等非程序員的溝通成本。簡而言之,能夠設計出更適應需求變化的系統。不會寫腳本的程序不是好策劃,嗯嗯。此外,@Liigo 同學的回答(除了主觀色彩外)基本符合實際的情況。我只說明一點,一個像 wow 這樣複雜的系統中,沒有哪個語言或子系統應該有 superior 的地位。在我看來,一個或一組定義良好的介面協議並不比底下的引擎和實現來得次要(舉個栗子,TCP/IP和http),而在 wow 里 Lua 就充當了這個職能,而且做得不錯。從公司的角度講,這也是一家公司深具價值的資產。
以上。使用Lua作為主要編程語言的公司,可以說幾乎沒有(並非絕對)。這是由Lua語言的自我定位決定的。Lua是嵌入式語言,本身的功能非常有限,看看它簡陋的標準庫就知道了;Lua需要集成到其他宿主編程語言(主要是C和C++)之中,並由宿主語言提供核心功能給Lua腳本調用。也就是說,如果某公司同時使用C/C++和Lua,那麼我認為C/C++是主要語言,Lua是次要語言。
有人說暴雪開發的wow大量使用了lua腳本,這個沒錯,但你沒意識到暴雪的遊戲引擎、3D引擎都是C++開發的嗎,沒意識到暴雪的核心程序員都是搞C++的嗎?wow裡面的lua腳本不需要核心演算法、不要高級數據結構、不需要雲計算,它顯然只是「腳本」,它背後的巨人是C/C++。簡悅公司客戶端和伺服器都主要使用了Lua,但是一般招聘的時候不會寫招 Lua 程序員,只會寫遊戲腳本程序員或者伺服器端程序員,大部分時候會Lua是加分項
我們現在主要在用, api後端,寫邏輯的地方主要用lua來實現,主要是後端api的實現。
我們公司最近要招一名lua工程師,工業機器人行業,主要是用Lua寫腳本來控制機器人的行為。坐標:北京。如有意向請私信。
我們公司大量用lua做後端服務,多快好省,誰用誰知道
我們公司,一個項目組主程覺得要用lua了,項目組成員一邊開發一邊學,一兩個星期就上項目寫了,lua應用確實挺廣的,但是和c++ c#我們用來寫遊戲的主要語言(engine 為 unityue),一般都是需要用lua公司書架上哪本書看下就去寫了,公司招聘lua為可選項,會的話更好
自己所在公司的情況是: c++ 程序員順便使用 lua 做些事情, 解釋是方便升級更新。所以我搞 JavaScript 的也學習下 lua(語言比較類似), 以後可能參與維護~
暴雪啊。。wow裡面那大片大片的lua腳本。。
現在應該還是以c、c++、oc、java、c#等為主來招人的吧,就遊戲開發來講,lua等應該還是附屬的加分項,或者可以說lua是包含你作為遊戲開發的技能之一,雖然不明確支出,但應該會一些
CloudFlare吧,把luajit都攬過來了。
我們公司也使用了Lua,但是沒有Lua只是其中一部分。
其實還是按照Html工程師來招,進來了再現學Lua。
我們的搭配是Xhtml+Lua,有點類似(Html+js)推薦閱讀:
※xmake-vscode插件開發過程記錄
※Lua程序逆向之Luac位元組碼與反彙編
※Unity3D遊戲優化之Lua的內存
※【遊戲框架系列】詩情畫意
※手游熱更新方案xLua開源:Unity3D下Lua編程解決方案
TAG:Lua |