Go 自誕生以來,因其簡單高效的處理效率和對于并發(fā)的出色支持,得到開發(fā)人員的關(guān)注和實踐。并在 2013 年隨著重磅項目 Docker 的誕生和發(fā)展,逐步在云計算領(lǐng)域形成燎原之勢。在占領(lǐng)了云計算后,Go 的下一個發(fā)力點將會在何方?
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),珠海企業(yè)網(wǎng)站建設(shè),珠海品牌網(wǎng)站建設(shè),網(wǎng)站定制,珠海網(wǎng)站建設(shè)報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,珠海網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
在 ECUG Con 十周年盛會上,七牛云 CEO、Go 首席布道師許式偉給出了他心中的答案:游戲行業(yè)。
以下是對他此次演講的內(nèi)容記錄
作為一個技術(shù)型 CEO,我認為技術(shù)人員都是很純粹的,以數(shù)據(jù)為導向,理性判斷趨勢,所以今天我會站在理性角度分析,來聊聊未來 Go 的趨勢,重點是在游戲行業(yè)。
由上圖 我們可以看出 Go 在 Mobile 的發(fā)展時間軸,從 12 年初開始,實際上最開始它的關(guān)注度并不高,直到 14 年中旬其活躍程度才有顯著的增加。
上圖 則顯示,盡管 Go 官方對 Mobile 的支持力度大于 Web,但是 gopher 們對 Web 前端的支持度遠遠高出 Mobile。Gopherjs 在社區(qū)的活躍度從 13 年 8 月開始一直很高,從圖中我們可以看出,Gopher 們也有著和 JavaScript 程序員們共同的夢想,使用一種語言統(tǒng)一前后端。
通過上面兩張圖的對比,得出一個很重要的結(jié)論,就是 Go 在桌面?zhèn)鹊陌l(fā)展,即使用 Go 語言來寫桌面程序,當然目前也有很多人在嘗試,包含兩個流派:通用 UI 和垂直行業(yè)(游戲行業(yè))。Go 團隊官方給出的回答更加側(cè)重后者,關(guān)注垂直行業(yè)——游戲產(chǎn)業(yè)。
為什么會是游戲行業(yè)呢?可以從以下兩點來看一下可行性:
1.市場原因 游戲市場空間巨大;
2.技術(shù)原因 游戲行業(yè)相對其他行業(yè),桌面 OS 的標準控件經(jīng)常被棄用,所以需求相對收斂,更加容易滿足。
接下來探討一下使用 Go 寫游戲的可行性,對于 GUI 來說,基礎(chǔ)支撐是 OpenGL,它本身支持 PC(Windows/Mac/Linux/FreeBSD),Mobile (Android/iOS)以及Web (基于WebGL)。對于游戲來說,分以下幾點:PC 端游戲(PC)、頁游(Web)、手游(Mobile),這三項使用 Go也是可以進行開發(fā)的:PC端可以通過 OpenGL,手游通過Go Mobile,頁游通過GopherJS(將Go 的代碼編譯成 JavaScript)Go 頁游是非常成熟的,使用的技術(shù)棧也是相對較少的,只需要使用 WebGL 和 GopherJS,還可以調(diào)用 JavaScript框架,諸如
WebGL (https://github.com/gopherjs/webgl)、
jQuery (https://github.com/gopherjs/jquery)、
Websocket (https://github.com/gopherjs/websocket)
總體來說,Go 對 Web 的支持算得上是非常成熟的,它的應用面也不局限于頁游,如下圖 所示是一個仿 React 的一個項目「vecty」,是使用 Go 進行開發(fā)的,由圖我們可以看出這個項目是在 15 年啟動的,活躍度也比較可觀。
使用 Go 去做全平臺游戲支持相對于 Web 而言,所能用到東西相對會收斂很多,類似 Javascript 的很多庫就不能再用。
此時我選擇的技術(shù)方案為:使用 Go 做跨平臺的 Scratch。
首先講一下什么是 Scratch,它是一門面向兒童編程教學的語言,可以教兒童編寫游戲,目前其排名已經(jīng)擠進工程類語言排名的前 20。為什么要使用 Go 來重寫 Scratch 呢? 一是出于我對其的熱愛,其次是 Scratch 目前仍舊存在一些瑕疵,我希望可以去慢慢完善。
2.X 版本(https://github.com/LLK/scratch-flash)只能基于 Flash 編寫并且只能跑在 PC 上,而基于 Google Blockly + React 編寫的 3.0 版本(https://github.com/LLK/scratch-gui)雖然已經(jīng)可用,但是兼容方面仍然存在問題,比如與 2.X 很多地方不兼容,但是2.X的用戶群體是很龐大的。因此 Scratch 還存在很多進步空間,是非常值得期待的。
正是由于 Scratch 的不足,讓我看到了挑戰(zhàn)。我為自己定了一個目標,做一個兼容 Scratch 2.X 的跨 PC、移動、Web 多終端平臺的 Scratch 腳本執(zhí)行器。下面是我所面臨的多種挑戰(zhàn):
1.腳本支持—Json 腳本
Scratch3.X 是 Json 腳本,從 parser 角度來看難度不大,但是從 executor 角度來看其難度與使用其他的腳本的難度是一致的。其次,其腳本是單線程偽并行的,由于不同的 Scratch 腳本之間可能會共享變量并且 Scratch 并沒有 mutex 語法,所以真的并行會導致系統(tǒng)邏輯錯亂。在Go 當中模擬一個單線程偽并行的程序相對而言還是比較復雜的,所以這是我面臨的第一個挑戰(zhàn)。
2.多行文本排版與顯示
True Type 字體的支持,小型排版系統(tǒng)需要考慮行禁(例如:標點不能在行首,英文單詞不能分拆到兩行顯示)
3.音頻播放
需要支持常見音頻格式,并且要支持混音(可以同時播放多個聲音,應當要有多個人同時說話的效果)
4.SVG 格式支持
Scratch 2.X 內(nèi)建的精靈 (sprite) 都是矢量格式的,并且基于 SVG 格式,SVG 有著非常復雜的指令集,完整支持等價于寫一套 GDI Canvas(當前 Go 社區(qū)并無成熟的 SVG 渲染的項目)
5.復雜圖形
上圖所示的圖形,雖然看似簡單,但是支持卻比較難,當然,一旦有 SVG 的支持,這個只是SVG 的一條指令。
歷經(jīng)半個月實際開發(fā),同時也由于我在教我兒子學習編程時積淀的 2 年經(jīng)驗,讓我沉淀了很多素材,現(xiàn)在我所寫的所有 Scratch 教程基本可以正常執(zhí)行,下面就是我這 2 年所積淀的一些素材舉例:
1.社交類
對話:weather-conversation.sb2;包含音頻播放,多行文本排版與顯示,也有很多復雜的圖形、背后腳本等。下圖所示就是。
2.×××類
五子棋:five-chess.sb2;圍棋:go-chess.sb2;國際象棋:chess.sb2,這些看起來簡單,但要做到完整要包含協(xié)程(共享全局變量的處理)、復雜腳本等比較復雜的東西。下圖 所示是圍棋的示意圖。
3.小游戲
吃蛋糕:eat-cake.sb2;這個是我兒子寫的,里面的難點在于碰撞檢測,如下圖
Scratch4.0 是使用 React 做的,而我是使用 Go 去做來進行一個全新挑戰(zhàn)。Scratch4.0 做了很多東西,花了一年多的時間,功能相對比較完善,但是對于我個人而言我僅僅做了一個執(zhí)行器,難度不同,所以最后我會對兩者做一個對比,比較一下他們之間的優(yōu)缺點。
1.React+React Native
優(yōu)勢:場景比較通用,可以基于 WebGL 也可以開發(fā)游戲;
劣勢:傾向于將 Web 搬到 Native(mobile)技術(shù)棧復雜,性能相對低;React 框架對開發(fā)游戲的難度基本沒有減負。
2.Go+GopherJS
優(yōu)勢:技術(shù)棧極簡,上手容易,性能極好;
劣勢:較為小眾;
場景:比較垂直,對游戲有較完整的支持。
Go 的桌面?zhèn)葢?zhàn)場剛剛開始,但技術(shù)相對而言已經(jīng)比較成熟,盡管很早期,但是由于 Go 所帶來的研發(fā)效率的提升,一定程度上消除了由于早期而導致的資源不足,因此,即便前端知識不足,但是經(jīng)過多年發(fā)展,Go 社區(qū)的豐富資源恰恰彌補了這個不足。
建議可以適當關(guān)注,選擇合適的時機進軍「戰(zhàn)場」。進軍方向可以選擇:其一是使用 Go 寫游戲,它可以做到全平臺支持;其二是使用 Go 寫 Web 應用來代替 React 等框架。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。
新聞標題:云計算后,Go的下一個戰(zhàn)場:游戲產(chǎn)業(yè)-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://www.rwnh.cn/article22/cehocc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站收錄、品牌網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、網(wǎng)站維護、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容