点击上方蓝字 关注【我的小碗汤】

大家好,我是小碗汤,今天演示一个项目,利用Unity做场景、用C#做交互逻辑,将k8s制作成一个3D射击游戏。正好最近在学习Unity,所以利用这个项目开始上手挺合适的。源码、可执行文件可以自行下载,也可在文末获取!


kube-chaos[1]是一款基于混沌工程风格的shmup游戏。

Shmup:一种射击游戏,可以控制一架✈️,或者角色,在空中水平或垂直翻滚与敌人作战的游戏。

这款游戏和kubernetes集群结合,允许你进入集群节点探索Pod,发射子弹摧毁节点上运行的Pod

游戏交互逻辑是用c#编写,并由Unity引擎驱动。

前提条件

  • 需要提前有一个kubernetes集群

  • 可以随意破坏的namespace作为战场

  • 本地机器上硬件资源使用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-desktop

cluster1对应的context为context-cluster1是测试集群,节点、Pod较多,玩起来更刺激,但有风险

docker-desktop对应的context为docker-desktop,是本地集群,Pod较少,较为稳妥

从项目Releases[3]页面下载Windows或MacOS版本。下面在Mac上来做示例。

下载MacOS的压缩包之后解压,进入可执行文件目录运行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现场

可以通过键盘的W、S、A、D或者上、下、左、右键控制飞机移动的方向,鼠标左键控制发射。

靠近Node时会自动打开进入节点的通道,进入后可以看到该节点上指定的namespace下的Pod

发射子弹摧毁Pod,会实时的反映在k8s API中,状态变为TerminatingNode是不可以摧毁的。进入圆圈可以退出当前Node

这里附上视频,来个赞


编译自己的程序

如果你想在前人的肩膀上,增加自己的功能灵感,然后编译源代码,构建自己的可执行文件,在Win、Linux、macOS多平台上运行,可以按照以下步骤来操作。

这里使用的Unity Hub 2.5.7、Unity 2019.4.34f1c1版本。

启动Unity Hub,在项目页面点击添加项目,选择这个项目的根文件夹。

在第一次加载时,Unity将生成库资产,可能会很慢。

进入File -> Build Settings,或用快捷键:Windows:Ctrl+Shift+BMac:Command+Shift+B。确保Build中的设置如下图所示:

配置Target Platform为想要构建的平台。这里下拉框的可选项,如Windows/macOs/Linux,需要在安装Unity的时候勾选目标平台:

Player Settings按钮中的其他配置保持默认即可。

单击Build,并选择一个构建输出位置,这里输出到项目根目录:

之后,可执行文件将被输出到这个位置,构建需要一段时间,这取决于机器性能:

编译中

成功输出kube-chaos-me可执行文件

这里其实生成一个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可执行文件启动游戏。

这里附上视频,来个赞再走

本项目通过Unity、C#、kubernetes结合,制作的小游戏,非常有创意,对于入门来说,是个不错的练手项目。感兴趣的兄弟可亲自体验一下摧毁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射击游戏,好玩到停不下来,附源码相关推荐

  1. 将 k8s 制作成 3D 射击游戏,好玩到停不下来 | 文末福利

    作者 | 小碗汤 来源 | 我的小碗汤 今天演示一个项目,利用Unity做场景.用C#做交互逻辑,将k8s制作成一个3D射击游戏.正好最近在学习Unity,所以利用这个项目开始上手挺合适的.源码.可执 ...

  2. 【Unity实战】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(二)(附源码)

    文章目录 前言 一.火箭筒 1. 编写火箭筒脚本 2. 创建火箭弹和新爆炸特效的预制体 3. 编写火箭弹脚本 4. 设置好火箭弹和火箭筒的脚本和参数 5. 运行效果 二.激光枪 1. 编写激光枪脚本 ...

  3. 【unity实战】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(一)(附源码)

    文章目录 本期目标 前言 欣赏 开始 1. 角色移动和场景搭建 2. 绑定枪械 2.1 首先将各种枪械的素材添加给人物作为子物体 2.2 给枪械也分别添加两个子物体用作标记枪口和弹仓位置 3. 枪械动 ...

  4. 基于嵌入式linux五子棋游戏,Android 实战项目之五子棋 附源码

    Android五子棋游戏五子连珠算法实现 1.游戏规则 五子棋是两个人之间进行的竞技活动,黑方白方规则规则相同,黑棋必须先行,五连子的方向为横.竖.斜,如黑白色任一方先五子连一线则算胜出. 2.五子连 ...

  5. 【Java游戏开发】坦克大战(附源码+课件+资料)

    本课程讲解了一个坦克大战游戏的详细编写流程,即使你是刚入门java的新手,只要你简单掌握了该游戏所需要的javase基础知识,便可以跟随教程视频完成属于你自己的坦克大战游戏!同时还可以加深和巩固你对面 ...

  6. Pygame实战:Python做一款超好玩的滑雪大冒险小游戏,超会玩【附源码】

    导语 ​冬日当然要和心爱的人一起去滑雪, 徜徉在雪白的世界, 浪漫又刺激!唯有爱和滑雪不可辜负! 不但风景绝美,而且还超!会!玩! 现在还不是时候 但秋天已过半动冬天还会远吗? 既然不能现在去滑雪,但 ...

  7. 【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)

    需要源码和资源文件请点赞关注收藏后评论区留言私信~~~ 下面我们将实现一个3D游戏 跑酷小子 类似于之前大火的神庙逃亡 效果展示和代码在文章末尾 下面为实现步骤 一.前期准备 在项目开始前 需要新建项 ...

  8. Python制作经典游戏案例-水果忍者(附源码等文件)

    目录 前言 代码展示 总结 前言 大家好,我是辣条哥,今天给大家分享一款我以前特爱玩的游戏,水果大战,今天我就教大家使用python把这款游戏制作出来.我们先来看效果 点击跳转文末 相关的一些音乐文件 ...

  9. Java经典小游戏——贪吃蛇简单实现(附源码)

    文章目录 一.使用知识 二.使用工具 三.开发过程 3.1素材准备 3.2 开发过程 3.2.1 创建项目 3.2.2 页面设计 3.23 画蛇 3.24创建蛇的食物 3.2.5增加蛇的存活状态 3. ...

最新文章

  1. 干货 | 你的Paper阅读能力合格了吗(硕士生版)
  2. python通用权限管理框架图_通用权限管理设计篇_设计模式
  3. 设置JAVA环境变量
  4. iis出现 Server Application Error 错误解决方法(xp iis5.1 配置asp项目出现500错)
  5. 11、修改和删除索引(DROP INDEX)
  6. traceroute程序_来!程序猿教你们玩微信代码~
  7. android ProgressBar 自定义进度条颜色
  8. 记录ie下报XMLHttpRequest: 网络错误 0x80070005, 拒绝访问。
  9. 精读《V8 引擎 Lazy Parsing》
  10. 蔚来发布首款自动驾驶车型ET7 补贴前起售价44.8万元
  11. Himawari-8 数据介绍及下载方法
  12. 中国研修网计算机培训心得,网络研修培训心得体会(精选7篇)
  13. 品牌建设—长效且动态的关系管理进程:赫联电子亚太区
  14. 台式机使用笔记本电脑上网解决办法。
  15. ffmpeg 查看bayer rg8 \ bg8 像素格式图片方法
  16. Mysql索引介绍及使用注意事项,limit分页查询,慢查询分析
  17. 基于单片机(AT89C51)的进制转换及进制计算器
  18. 【VSCode】切换文件与编辑器的快捷键
  19. 阿诺德Arnold渲染器 (R20-2023版本合集)
  20. 【6000人齐聚CNCC2017】丘成桐、梅宏、沈向洋、李飞飞报告回顾,AI玫瑰绽放计算之美论坛...

热门文章

  1. 服务端架构中的“网关服务器”
  2. java中main函数解析
  3. shell 多行注释
  4. SSM框架搭建(四) springmvc和mybatis的配置
  5. MaintainableCSS 《可维护性 CSS》 --- 模板篇
  6. Python——通过斐波那契数列来理解生成器
  7. Unity3D4.* NGUI制作动态字库
  8. 精品教程--Android实战系列源码与教程
  9. RFID会议签到系统总结(二十一)――服务端的通讯
  10. linux 脚本 写更新,用Shell写的游戏客户端更新脚本