将k8s制作成3D射击游戏,好玩到停不下来,附源码
? 點擊上方藍字?關注【我的小碗湯】
大家好,我是小碗湯,今天演示一個項目,利用Unity做場景、用C#做交互邏輯,將k8s制作成一個3D射擊游戲。正好最近在學習Unity,所以利用這個項目開始上手挺合適的。源碼、可執(zhí)行文件可以自行下載,也可在文末獲取!
kube-chaos[1]是一款基于混沌工程風格的shmup游戲。
Shmup:一種射擊游戲,可以控制一架??,或者角色,在空中水平或垂直翻滾與敵人作戰(zhàn)的游戲。
這款游戲和kubernetes集群結合,允許你進入集群節(jié)點探索Pod,發(fā)射子彈摧毀節(jié)點上運行的Pod。
游戲交互邏輯是用c#編寫,并由Unity引擎驅動。
前提條件
需要提前有一個kubernetes集群
可以隨意破壞的namespace作為戰(zhàn)場
本地機器上硬件資源使用Unity引擎來運行游戲
如需編譯自己的程序,還需安裝Unity[2] 2019.4或更高版本
開始實踐
當前Mac機器上~/.kube/config中包含兩個集群context:
#?kubectl?config?get-contexts? CURRENT???NAME???????????????CLUSTER??????????AUTHINFO?????????NAMESPACE *?????????context-cluster1???cluster1?????????admin????????????docker-desktop?????docker-desktop???docker-desktopcluster1對應的context為context-cluster1是測試集群,節(jié)點、Pod較多,玩起來更刺激,但有風險。
docker-desktop對應的context為docker-desktop,是本地集群,Pod較少,較為穩(wěn)妥。
從項目Releases[3]頁面下載Windows或MacOS版本。下面在Mac上來做示例。
下載MacOS的壓縮包之后解壓,進入可執(zhí)行文件目錄運行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會進入到這樣的界面,從上到下輸入集群的namespace、集群context、kubectl(必須在System Path中):
然后Start運行進入游戲界面。
摧毀Pod現(xiàn)場可以通過鍵盤的W、S、A、D或者上、下、左、右鍵控制飛機移動的方向,鼠標左鍵控制發(fā)射。
靠近Node時會自動打開進入節(jié)點的通道,進入后可以看到該節(jié)點上指定的namespace下的Pod。
發(fā)射子彈摧毀Pod,會實時的反映在k8s API中,狀態(tài)變?yōu)門erminating。Node是不可以摧毀的。進入圓圈可以退出當前Node。
這里附上視頻,來個贊:
編譯自己的程序
如果你想在前人的肩膀上,增加自己的功能靈感,然后編譯源代碼,構建自己的可執(zhí)行文件,在Win、Linux、macOS多平臺上運行,可以按照以下步驟來操作。
這里使用的Unity Hub 2.5.7、Unity 2019.4.34f1c1版本。
啟動Unity Hub,在項目頁面點擊添加項目,選擇這個項目的根文件夾。
在第一次加載時,Unity將生成庫資產(chǎn),可能會很慢。
進入File -> Build Settings,或用快捷鍵:Windows:Ctrl+Shift+B;Mac:Command+Shift+B。確保Build中的設置如下圖所示:
配置Target Platform為想要構建的平臺。這里下拉框的可選項,如Windows/macOs/Linux,需要在安裝Unity的時候勾選目標平臺:
Player Settings按鈕中的其他配置保持默認即可。
單擊Build,并選擇一個構建輸出位置,這里輸出到項目根目錄:
之后,可執(zhí)行文件將被輸出到這個位置,構建需要一段時間,這取決于機器性能:
編譯中成功輸出kube-chaos-me可執(zhí)行文件這里其實生成一個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運行KubeChaos可執(zhí)行文件啟動游戲。
這里附上視頻,來個贊再走:
本項目通過Unity、C#、kubernetes結合,制作的小游戲,非常有創(chuàng)意,對于入門來說,是個不錯的練手項目。感興趣的兄弟可親自體驗一下摧毀Pod的快感。
參考資料
[1]
kube-chaos: https://github.com/Shogan/kube-chaos
[2]Unity: https://unity3d.com/get-unity/download
[3]項目Releases: https://github.com/Shogan/kube-chaos/releases
[4]https://www.bilibili.com/video/BV14f4y1F7HB/
總結
以上是生活随笔為你收集整理的将k8s制作成3D射击游戏,好玩到停不下来,附源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# using static 声明
- 下一篇: ASP.NET Core Web API