将 k8s 制作成 3D 射击游戏,好玩到停不下来 | 文末福利
作者 | 小碗湯
來源 |?我的小碗湯
今天演示一個(gè)項(xiàng)目,利用Unity做場(chǎng)景、用C#做交互邏輯,將k8s制作成一個(gè)3D射擊游戲。正好最近在學(xué)習(xí)Unity,所以利用這個(gè)項(xiàng)目開始上手挺合適的。源碼、可執(zhí)行文件可以自行下載,也可在文末獲取!
kube-chaos[1]是一款基于混沌工程風(fēng)格的shmup游戲。
Shmup:一種射擊游戲,可以控制一架??,或者角色,在空中水平或垂直翻滾與敵人作戰(zhàn)的游戲。
這款游戲和kubernetes集群結(jié)合,允許你進(jìn)入集群節(jié)點(diǎn)探索Pod,發(fā)射子彈摧毀節(jié)點(diǎn)上運(yùn)行的Pod。
游戲交互邏輯是用c#編寫,并由Unity引擎驅(qū)動(dòng)。
前提條件
需要提前有一個(gè)kubernetes集群
可以隨意破壞的namespace作為戰(zhàn)場(chǎng)
本地機(jī)器上硬件資源使用Unity引擎來運(yùn)行游戲
如需編譯自己的程序,還需安裝Unity[2] 2019.4或更高版本
開始實(shí)踐
當(dāng)前Mac機(jī)器上~/.kube/config中包含兩個(gè)集群context:
#?kubectl?config?get-contexts? CURRENT???NAME???????????????CLUSTER??????????AUTHINFO?????????NAMESPACE *?????????context-cluster1???cluster1?????????admin????????????docker-desktop?????docker-desktop???docker-desktopcluster1對(duì)應(yīng)的context為context-cluster1是測(cè)試集群,節(jié)點(diǎn)、Pod較多,玩起來更刺激,但有風(fēng)險(xiǎn)。
docker-desktop對(duì)應(yīng)的context為docker-desktop,是本地集群,Pod較少,較為穩(wěn)妥。
從項(xiàng)目Releases[3]頁面下載Windows或MacOS版本。下面在Mac上來做示例。
下載MacOS的壓縮包之后解壓,進(jìn)入可執(zhí)行文件目錄運(yùn)行KubeChaos:
wget?https://github.com/Shogan/kube-chaos/releases/download/1.0.0/KubeChaos_macOS_1.0.0.zip unzip?KubeChaos_macOS_1.0.0.zip cd?KubeChaosmacOS/Contents/MacOS ./KubeChaos會(huì)進(jìn)入到這樣的界面,從上到下輸入集群的namespace、集群context、kubectl(必須在System Path中):
然后Start運(yùn)行進(jìn)入游戲界面。
可以通過鍵盤的W、S、A、D或者上、下、左、右鍵控制飛機(jī)移動(dòng)的方向,鼠標(biāo)左鍵控制發(fā)射。
靠近Node時(shí)會(huì)自動(dòng)打開進(jìn)入節(jié)點(diǎn)的通道,進(jìn)入后可以看到該節(jié)點(diǎn)上指定的namespace下的Pod。
發(fā)射子彈摧毀Pod,會(huì)實(shí)時(shí)的反映在k8s API中,狀態(tài)變?yōu)門erminating。Node是不可以摧毀的。進(jìn)入圓圈可以退出當(dāng)前Node。
編譯自己的程序
如果你想在前人的肩膀上,增加自己的功能靈感,然后編譯源代碼,構(gòu)建自己的可執(zhí)行文件,在Win、Linux、macOS多平臺(tái)上運(yùn)行,可以按照以下步驟來操作。
這里使用的Unity Hub 2.5.7、Unity 2019.4.34f1c1版本。
啟動(dòng)Unity Hub,在項(xiàng)目頁面點(diǎn)擊添加項(xiàng)目,選擇這個(gè)項(xiàng)目的根文件夾。
在第一次加載時(shí),Unity將生成庫資產(chǎn),可能會(huì)很慢。
進(jìn)入File -> Build Settings,或用快捷鍵:Windows:Ctrl+Shift+B;Mac:Command+Shift+B。確保Build中的設(shè)置如下圖所示:
配置Target Platform為想要構(gòu)建的平臺(tái)。這里下拉框的可選項(xiàng),如Windows/macOs/Linux,需要在安裝Unity的時(shí)候勾選目標(biāo)平臺(tái):
Player Settings按鈕中的其他配置保持默認(rèn)即可。
單擊Build,并選擇一個(gè)構(gòu)建輸出位置,這里輸出到項(xiàng)目根目錄:
之后,可執(zhí)行文件將被輸出到這個(gè)位置,構(gòu)建需要一段時(shí)間,這取決于機(jī)器性能:
編譯中成功輸出kube-chaos-me可執(zhí)行文件這里其實(shí)生成一個(gè)kube-chaos-me.app目錄:
#?ls?-l?????????????????? -rw-r--r--???1?smallsoup??test??53894?Jan?18?17:46?Assembly-CSharp.csproj drwxr-xr-x??14?smallsoup??test????448?Jan?18?15:22?Assets drwxr-xr-x??41?smallsoup??test???1312?Jan?18?19:08?Library drwxr-xr-x???3?smallsoup??test?????96?Jan?18?17:29?Logs drwxr-xr-x???4?smallsoup??test????128?Jan?18?17:32?Packages drwxr-xr-x??23?smallsoup??test????736?Jan?18?19:05?ProjectSettings -rw-r--r--???1?smallsoup??test???3797?Jan?18?15:22?README.md drwxr-xr-x??44?smallsoup??test???1408?Jan?18?19:08?Temp drwxr-xr-x???6?smallsoup??test????192?Jan?18?15:22?docs drwxr-xr-x???3?smallsoup??test?????96?Jan?18?19:08?kube-chaos-me.app -rw-r--r--???1?smallsoup??test????712?Jan?18?17:46?kube-chaos.sln drwxr-xr-x???3?smallsoup??test?????96?Jan?18?18:48?obj #?cd?kube-chaos-me.app/Contents/MacOS?#?ls KubeChaos#??./KubeChaos運(yùn)行KubeChaos可執(zhí)行文件啟動(dòng)游戲。
本項(xiàng)目通過Unity、C#、kubernetes結(jié)合,制作的小游戲,非常有創(chuàng)意,對(duì)于入門來說,是個(gè)不錯(cuò)的練手項(xiàng)目。
參考資料
[1]?kube-chaos:?
https://github.com/Shogan/kube-chaos
[2]?Unity:?
https://unity3d.com/get-unity/download
[3]?項(xiàng)目Releases:?
https://github.com/Shogan/kube-chaos/releases
[4]?https://www.bilibili.com/video/BV14f4y1F7HB/
在評(píng)論區(qū)留言你對(duì)本文的觀點(diǎn)
CSDN云計(jì)算將選出兩名優(yōu)質(zhì)留言
攜手【北京大學(xué)出版社】送出
《Git從入門到精通》一本
截至1月26日14:00點(diǎn)
往期推薦
為什么還有這么多的網(wǎng)絡(luò)故障?
k8s集群居然可以圖形化安裝了?
用了HTTPS,沒想到還是被監(jiān)控了
快速搭建實(shí)驗(yàn)環(huán)境:使用 Terraform 部署 Proxmox 虛擬機(jī)
點(diǎn)分享
點(diǎn)收藏
點(diǎn)點(diǎn)贊
點(diǎn)在看
總結(jié)
以上是生活随笔為你收集整理的将 k8s 制作成 3D 射击游戏,好玩到停不下来 | 文末福利的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云原生/低代码/数据科学/计算等方向内容
- 下一篇: Docker Desktop宣布收费;腾