用rust写了个小游戏

一直有在关注rust,之前也用rust写过一些小工具,比如socks5代理,内网穿透等,但这些东西逻辑上都比较简单,没法很好的体会rust的好与不好,所以这些日子又花了些时间,用rust从0开始写了个小游戏。

游戏大概是这个样子:

目前该游戏没有什么玩法,只实现了行走、射击等逻辑,但代码的基本结构已经搭建起来了,以后想添加什么逻辑,还是很简单的。

我写这个游戏的目的主要是想看看,用rust写复杂状态的应用到底行不行,经过这段时间的实践,我只想说,真不容易。

代码我推翻重来了很多次,而且我一度认为写不下去了,或者即使写下去,也是个非常糟糕的代码,甚至有段时间我觉得,rust和其他新兴语言一样,只是表面看上去很好,但并不适合实际应用。

好在我坚持了下来,终于找到了一种用rust编写复杂状态的模式,到今天算是把这个小demo写完了。

在一路学习rust的过程中,它给了我非常多眼前一亮的感觉,但也经常使我陷入绝境,觉得学习这语言就是在浪费时间。

不过,现在通过写了这么多rust相关代码,我大致对它有了一个清晰的认识,非常看好这个语言,但也不会对它抱有过高的希望,总之,没有完美的编程语言。

之后的工作重心我应该还会继续写linux内核启动流程分析那个系列,还有就是用一些更成熟的语言写些更有意思的小游戏。

期待。

哦,差点忘了,该项目已经开源了,项目地址是:

https://github.com/wangyuntao/tank

如果想了解如何用rust写游戏,可以参考下(未必是最好的方式)。

本文分享自微信公众号 - Linux内核及JVM底层相关技术研究(ytcode),作者:wangyuntao

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用Rust写一个斗兽棋游戏

    现在利用业余时间写了棋类游戏,起初是因为部门最近举行编程大赛,主题是写一个中国象棋AI,这期间偷偷参加了比赛,参考了国际、中国象棋的相关算法,最后利用alpha...

    MikeLoveRust
  • 用rust写了个小程序

    代码本身非常简单,就是提取 /proc/[pid]/ 目录下的信息,整理后输出出来。

    KINGYT
  • 【Rust日报】 2019-06-01:用 Rust 实现 WebGPU 协议

    也就是 du 的翻版啦。这个用上了Rust的并行化技术。速度比原来的 du 更快,特别是在SSD下更快。比如像下面这样测试

    MikeLoveRust
  • 【Rust日报】2020-12-3 SHADERed可以在线编辑rust-gpu!

    Read More: https://shadered.org/blog?id=4

    MikeLoveRust
  • 【Rust日报】 2019-08-28:Rust异步代码的优势:相比于其他语言更加容易调试

    Part I: https://medium.com/dwelo-r-d/using-c-libraries-in-rust-13961948c72a Part...

    MikeLoveRust
  • 【Rust日报】2021-03-06 用Rust给我的操作系统写乒乓(Pong)

    我们上一讲结束了为我们的操作系统编写图形驱动程序和事件驱动程序。我们还添加了几个系统调用来处理绘图原语以及处理键盘和鼠标输入。现在我们将使用这些动画来制作简单的...

    MikeLoveRust
  • 【Rust日报】2021-05-22 游戏 Flappy Bird 用 Rust 编写并编译为 WebAssembly

    在使应用程序运行在边缘计算或 Serverless 的技术,Rust 上的 WebAssembly 是光明的未来。

    MikeLoveRust
  • 用 Python 写个消消乐小游戏

    提到开心消消乐这款小游戏,相信大家都不陌生,其曾在 2015 年获得过玩家最喜爱的移动单机游戏奖,受欢迎程度可见一斑,本文我们使用 Python 来做个简单的消...

    Crossin先生
  • 【Rust日报】2021-02-20 Starlight:专注于性能的js引擎

    大家好,我花了很多时间在编写类似JS的小语言上,但实际上没有用,所以我决定开发与ECMAScript兼容的JS引擎。:)

    MikeLoveRust
  • 【Rust日报】2021-04-12 谷歌安卓团队拥抱 安卓上的 Rust 开发

    过去 18 个月中,安卓团队开始将 Rust 引入到安卓开源项目中, 很快, 一些早期的适配项目就会面世.

    MikeLoveRust
  • 【Rust日报】 2019-07-16:「新手向」Rust vs C++ : 实现神经网络

    该站点专注于记录世界各地Rust各大活动的时间线,开源项目,大家可以提交活动信息。

    MikeLoveRust
  • 【Rust 日报】2021-03-11 教你如何用Rg3d制作一个射击游戏!

    wgpu 创建渲染管道的方式已经进行了改进。大多数属于自己的字段都被分组为结构,例如 MultisampleState 。这意味着简单的管道更容易创建,因为我们...

    MikeLoveRust
  • 【Rust日报】 2021-03-09 Meetup - Rust游戏开发

    现在可以用Rust版的Coreutils (cp, chmod, ls, rm, tail, install..) 来运行Debian啦。

    MikeLoveRust
  • 【Rust日报】2021-03-02 启动 OpenRA-rs 项目

    内容:OpenRA 是开源重制版红警,不过目前已经实现的部分只是红警1,红警2尚未完成。目前OpenRA是用C#写的。我们来憧憬一下,如果OpenRA用Rust...

    MikeLoveRust
  • 【Rust日报】2020-06-08 - Rust/WinRT快速入门

    Apache Benchmark style http bench tool written in async rust.

    MikeLoveRust
  • 【Rust日报】 2019-08-31:Rust全栈开发Web应用

    大多数人对Rust的最大问题之一是编译时间长。原因之一是许多项目使用crates.io中相当多的依赖项。

    MikeLoveRust
  • 【Rust日报】2021-08-04 Rust 云原生组织成立

    GAT RFC 从2016年启动,到今年已经五年了,现在终于接近稳定状态了。GAT 是 Rust github 仓库里期待率最高的一个问题。

    MikeLoveRust
  • 【Rust日报】 2019-05-01:Rust和Windows不得不说的事儿

    ralfj比较高产,他负责Unsafe下内存模型相关的工作,目的是用miri来检测unsafe中的UB行为。

    MikeLoveRust
  • 【Rust日报】2020-04-05 gfx-hal介绍第一部分-画三角形

    东半球最强Rust大神Jonhoo开发的库,代码量不多,是Const Generic特性的一个应用。

    MikeLoveRust

扫码关注云+社区

领取腾讯云代金券