真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

用Go實(shí)現(xiàn)Minecraft(一定要看到最后)

主題:用 Go 實(shí)現(xiàn) Minecraft

內(nèi)容:

  • 下載編譯運(yùn)行
  • 圖形庫
  • 為什么用 go 實(shí)現(xiàn)
  • 一些例子
  • 顯示優(yōu)化
  • 持久化

主講師:餅干

架構(gòu)師,曾就職騰訊。主要技術(shù)方向是高并發(fā)以及分布式系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)五常,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

效果圖

用Go 實(shí)現(xiàn) Minecraft(一定要看到最后)

用Go 實(shí)現(xiàn) Minecraft(一定要看到最后)
項(xiàng)目地址

下載編譯運(yùn)行

安裝

go get github.com/icexin/gocraft

運(yùn)行

cd $GOPATH/src/github.com/icexin/gocraft && gocraft

圖形庫

  • 沒有使用引擎,純手工調(diào)用 OpenGL 實(shí)現(xiàn),最小依賴。
  • 窗口以及鼠標(biāo)鍵盤相關(guān)的庫使用的是 glfw 實(shí)現(xiàn)。

為什么用 go 實(shí)現(xiàn)

  • 速度快,跟 C++ 一個量級。
  • 靜態(tài)編譯,容易分發(fā)
  • 內(nèi)置協(xié)程,寫并發(fā)方便。
  • 內(nèi)存模型透明,容易控制gc壓力
  • 好玩

一些例子1

角色周圍的方塊是動態(tài)生成的,一角色為圓心的輻射區(qū)域才會渲染,所以后臺有一個檢查協(xié)程定時補(bǔ)充新的方塊。

一些例子2

  • gc 的問題在 minecraft 里面動輒就是幾十萬上百萬的方塊,這些小對象如果控制不好對 gc 的壓力很大,那 gc 的時候就是卡幀的時候。
  • go 繼承了 C 的思想,區(qū)分值和引用,可以合理的控制內(nèi)存布局。

顯示優(yōu)化

  • 按 32*32 聚合 chunk,剔除不會顯示的面
  • 按視野來渲染,沒有看到 chunk 不會渲染
  • 一角色為圓心緩存 chunk,轉(zhuǎn)身不會卡頓
  • opengl 的面剔除以及深度測試

持久化

  • 使用 boltdb 作為存儲
  • 以chunkid+blockid 作為 key
  • 增量存儲+實(shí)時計(jì)算

多人游戲

  • 存儲部分跟單擊一樣
  • 通信方面使用雙向 rpc,使用 yamux+net/rpc 實(shí)現(xiàn)
  • 服務(wù)器主動推送有變化的 block
  • 多人的角色渲染使用線性插值來避免卡頓

報(bào)名方式

分享時間:18年4月12日(周四)

21:00-22:00

分享方式:網(wǎng)絡(luò)直播

報(bào)名方式:

1、掃碼進(jìn)入分享群,還可參與 GO 課程半價(jià)抽獎(2個名額)

用Go 實(shí)現(xiàn) Minecraft(一定要看到最后)


分享題目:用Go實(shí)現(xiàn)Minecraft(一定要看到最后)
本文網(wǎng)址:http://weahome.cn/article/jcgdsg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部