文章目录

  • 前提条件
  • 开始实践
  • 构建自己的程序
  • 原文

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

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

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

这款游戏和kubernetes集群结合,允许你进入集群节点探索Pod,发射子弹摧毁节点上运行的Pod。游戏交互逻辑是用c#编写,并由Unity引擎驱动。

前提条件

  • 需要提前有一个kubernetes集群
  • 可以随意破坏的namespace作为战场
  • 本地机器上硬件资源使用Unity引擎来运行游戏
  • Unity 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页面下载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运行进入游戏界面。

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

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

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

这里附上视频:

将kubernetes制作成3D射击游戏,好玩到停不下来,附源码

构建自己的程序

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

启动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.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结合,制作的小游戏,非常有创意,对于入门来说,是个不错的练手项目。


视频教程和源码可以扫左侧码关注微信公众号【我的小碗汤】查看

原文

本文首发于微信公众号【我的小碗汤】,扫左侧码关注,了解更多咨询,更有免费资源供您学习

将kubernetes制作成一个3D射击游戏,好玩的停不下来,附源码相关推荐

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

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

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

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

  3. 大家都在发圣诞树,我偏偏要发一个圣诞小游戏给大家玩【内附源码】

    ​大家好,我是辣条. 前言 圣诞节快来了,热榜都被一堆圣诞树攻占了,这样的流量密码我怎么会错过,大家都发圣诞树,我就不发啦,直接分享一个圣诞小游戏给大家玩,代码太长一定要先赞和收藏. 领取福利 300 ...

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

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

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

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

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

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

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

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

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

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

  9. python源码提取_Python|第一个python程序(获取音乐下载地址,附源码)

    至少我们曾经在一起过. 来自:一言 软件截图 软件说明: 刚刚开始接触python,做出一个这样的软件,很low.附上源码, 希望大佬可以指点指点,正在琢磨怎么把音乐下载下来... 软件源码 impo ...

最新文章

  1. G20国家科技竞争力大盘点,中国科研创新表现突出,人工智能变道超车
  2. linux下nginx编译安装
  3. 微信平台的几种分享方式调研
  4. 新款ATM恶意软件Alice 可对抗动态分析 但目前需要物理接触主机
  5. 递归算法(一)递归概念与思路
  6. socket 编程:回射客户/服务程序
  7. layui 表单动态添加、删除input框
  8. ZZULIOJ ASCII码排序(多实例测试)
  9. 高性能Web动画和渲染原理系列(5)合成层的生成条件和陷阱
  10. SQL 行转列、列转行
  11. C++ - dynamic_cast
  12. 科技正在淘汰传统行业,这次的“倒霉鬼”是券商
  13. colorui开发文档_小程序原生高颜值组件库--ColorUI
  14. 51单片机之CHQ1838红外接收(NEC协议)
  15. Vue 自定义项目的创建以及配置
  16. 如何使用计算机远程关闭手机软件,手机怎么控制电脑 手机远程控制电脑关机方法 (全文)...
  17. 网络安全中非常好用的webshell检测工具!
  18. 明源售楼系统技术解析(一)搭建MVC3框架
  19. SpringMVC实现i18n和主题切换
  20. 通过读取csv/xml数据并且结合使用allure展示测试报告,验证开发中的add()和reduct()操作(在@allure.story分别实现相加减)

热门文章

  1. iOS 地图定位 地图
  2. Laravel Blade
  3. Matlab学习7-图像处理之线性平滑滤波
  4. jq循环每个标签each
  5. Netstat和端口关闭方法
  6. MATLAB自定义函数 计算三元函数矢量符号微分
  7. 北工大计算机博士,北工大博士生导师黄樟钦谈计算机科学与技术专业
  8. Java代码审计——Fastjson TemplatesImpl调用链
  9. chmod: changing permissions of ‘*‘:Operation not permitted
  10. 国内仿制药检测将请大数据“帮忙”