这将会是一个系列文章主要用于记录我在探索如何使用rust开发独立游戏时的探索过程. 写这些文章的核心目的是督促自己保持探索,并帮助对使用rust开发独立游戏感兴趣的新人起步 我不会按照一般的教程模式来写,网络上已经有很多类似的资料,作为初心者我不会比那些前辈们做的更好,你可以把这个系列看作一些经过稍微整理的充满我个人学习风格的笔记.
目前大概规划了几个系列,最开始会从学习Bevy引擎的使用开始. 为什么选择Bevy? 如果你打开搜索栏输入: rust 游戏引擎。 在推荐的列表中bevy大概率会排在第一或者前几. Github上面有43.3k星 (2025-Nov). 感觉社区的活跃度很高. 同时Bevy是ECS架构的,我个人不很喜欢OOP. 那么不如试试看没有OOP的游戏开发体验是怎么样的.
我不知道这些文章会不会吸引到读者,并且读者的编程背景如何。使用Rust进行独立游戏开发的前提是读者要学会使用Rust。然而Rust一个广为人知的特色就是上手难,就我观察中文互联网上Rust的热度似乎不高 且独立游戏圈是一个Unity和UE为主流的群体。其实我最初也想要随大溜,但是奈何实在对C#和C++提不起兴趣,然后一拍脑袋就选了rust😂。随着未来文章的发布,我会根据反馈看看需要不需要进行一些简单的rust教学,如果需要可能会单开一个rust的系列。
当bevy的系统摸索差不多之后,我打算开始游戏制作的实战。这不是说我要制作自己的独立游戏了。我认为需要进行大量的模拟练习,也就说找一些rust写的开源游戏进行分析。学习人家是如何使用rust制作这样一个游戏的。这里开始会真正设计游戏设计方面的问题,所以我会单开一个系列.
我有时候会看看youtube上面讲游戏开发的大佬或是教学或是展示的视频(不限于rust),有些东西很吸引人,奈何我没有能力自己动手实现. 当我们对bevy的掌握达到一定程度之后,我会开始尝试自己实现玩玩.并把这些东西进行某种形式搬运,分享给大家.这些东西大概会放到一个技术探索的系列
作为理工男平时不怎么写文字,我的行文可能读起来干瘪又啰嗦.
另外一个可能的问题是(也是我最近才意识到的): 我平时学习记笔记大部分时间都是用英文,加上语文能力的孱弱,会让我写的中文文章有股子翻译味.有些时候这可能是我无意识的行为,有些时候可能是我把用英文写的笔记直接翻译.
虽然这些文章是面向中文读者,但是有些时候我一时想不到很好的翻译或者我觉得自己的翻译并不符合中文语境里主流技术词汇的翻译(又或者单纯是我懒),那么我就会选择直接写出英文.即使同一个术语,我也可能英文和中文翻译混用.
对此我无力改变也不想改变什么,所以对读者造成的任何不便,提前说一声抱歉.
如果你已经是有多年编程经验的读者,那么以上就是第一篇的内容.
接下来是我对编程经验尚浅又对用rust写游戏感兴趣的新手朋友的一些闲言碎语
虽然我在游戏开发方面是纯小白,但是做了这么多年电子攻城狮还是积累了一些编程基础.有些编程思想理念的东西我不会讲解太细.如果你阅读到哪里觉得是因为某些背景知识的缺失而费解. 欢迎留言,简单的东西我会尝试讲解和补充,一两句话说不清楚的我会尝试找些资料给你. 但是我本人常年居住海外,大概率我给到的资料都是英文的. 这需要你有英文阅读能力或者自己找对应中文资料的能力. 而且现在是AI时代了,语言障碍应该不会是很大的问题的吧..?
有些新手朋友可能不确定自己是否能理解未来发布的文章,害怕自己花了时间却没学到什么,这很正常. 我感觉自己能做的就是对自身过往编程经验进行一些回顾展示给你.你可以看看自己的编程经验和我有多少相似度:
正经接触编程是大学必修的C语言:谭浩强C, 以及选修了一节C++基础.接触了OOP. 自学了一丢丢Java,完成了从指针到handle的迁移. 语言特性的了解基本停留在虚函数 虚基类是什么的水平就结束了. 我平时工作使用一个叫SV的语言他是模仿JAVA的OOP.但是知识范围来讲也就是继承,接口,模板.仅此而已
大学接触到了Python,变身脚本小子.它从本科生到研究生直到工作前几年都是我最喜欢的语言.Python是很简单简洁的语言,第一次学习是从A Byte of Python那个小册子开始几个小时就读完了,然后又读了老鼠书,这个比较厚,讽刺的是,我在python上的阅读量已经超过上面那些的总和了.
后来想要搞漂亮的GUI,Python的GUI框架对我来说太难用了,转而开始了解html和javascript.以及整个web前端的世界.直到现在都喜欢用html写一些自己平时用的小工具
我对编程认知比较大的跨越是研究过SICP之后. 彻底颠覆了我对编程的认知.打那以后我对编程语言的选择就有些自己的品味了, 对现在的我来说选择一门语言的两个核心特性是:这个语言要是函数式的,至少funciton is first class(函数是一等公民). 第二,要有一个现代一些的类型系统
所以在脚本语言方面我慢慢抛弃了python转向了Typescript作为写web的主力语言. 而在静态编译类型的语言方面,自然就是rust啦.
Rust最开始进入我的视线是因为我想做一个节拍器,用web写ui没什么问题,但是计时的准确性太差了,导致我必须使用一个没有太多运行时负担(rust就没有运行时)的带GUI库的高性能语言.找来找去就看到了rust和知道了bevy (虽然需要GUI库而选rust这一点现在看有点讽刺DDDD)
现阶段对我来说,游戏特性的实现比游戏玩法更有吸引力. 所以进入游戏开发的世界时不是选择哪种引擎,而是选择哪种语言. 大家都知道,游戏是可以轻易榨干硬件资源的,我不希望最后被语言的性能束缚手脚. 综合起来,我需要的是有足够多喜欢的语言特性,性能足够强大,最好有好用工具链的语言....所以Rust闪亮登场! (好吧,我承认其实根本就是我不喜欢写C++ XD)
以上如果你有和我类似的经验背景,那么我想我写的东西对于你来说应该不会费劲,我更期待我们可以在度过新手期后可以深入交流游戏设计的问题.
假如你什么都不知道,只是有一腔热情,那么请继续看下去
当脚本小子时间长了,上手rust还是有些费劲的.对于新手朋友可能更是如此,下面的建议也许可以帮助你更好的度过前期
这根源于我两个人生经历: 小时候我不爱学习,尤其数学很烂,但是有一个学物理的老爹.找了一位他学物理的同学盯着我的高中课业让我的物理成绩还算ok,而高中物理给学生们灌输的一个重要思考模式就是模型思维. 也许受此烙印,我之后的人生里一直喜欢在学习新东西的时候尝试先根据已有的经验抽象出一个心智模型,然后在接收新知识的过程中尝试和这个心智模型建立联系,具体点说就是不断问自己,我新观察到的现象能在我现有的心智模型中找到解释么? 如果可以那么说明这个知识我已经学到了,如果不能也许说明我的心智模型有问题(当然也许是我对现象的分析不够透彻)需要加以打磨. 最后形成一个自己对新事物的认知体系. 这在学习Rust这样的语言来说尤其重要(说的就是你borrow checker!) 所以在阅读我的文章时,你可能会看到我不断的尝试抽象和总结然后被打脸,之后再修正的过程,我认为这不是显眼包,而是学习的本质(至少是我的)
另外一个在于我上大学时要上计算机组成原理课.为了伪装成好学生,我特地买了本 <<汇编语言>> (作者王爽)天天在地铁里看. 我印象很清楚,那是在5号线里,我看到下面这样的文字:
为了按循序渐进的原则构造学习线索,本书采用了一种全新的信息组织和加工艺术,我们称其为知识屏蔽.有的教材只注重知识的授予,并不注重知识的屏蔽.在教学中知识的屏蔽十分重要,这是一个重点突出的问题.计算机是一门交叉学科,一部分知识往往还要连带着其他的相关内容,这些连带的相关内容如果处理不好,将影响学习者对目前要掌握的知识的理解,本书采用里只是屏蔽的方法,对教学内容进行了最小化分割,力求使我们在学习过程中所接触到的每一个知识点都是当前唯一要去理解的东西.我们再看到和各知识点之前,已理解了以前所有的内容;在学习这个知识点的过程中,以后的知识也不会对我们造成干扰.
初看的时候觉得十分震惊,然后觉得并没有什么卵用.但是这么多年在"计算机这个交叉学科"里摸爬滚打过来的我觉得这是在这个世界里生活的唯一哲学. 当然你不看这本书,或者不在这个圈子里讨生活可能不太容易理解他在说什么.我结合上面说的模型思维,给你一个更浅显的解释, 说白了就是,你不要试图了解一切,把你接触到的领域当作一个黑盒,首要任务是明白这个黑盒能给你什么,以及这个黑盒如何与其他黑盒交互,以及当你手头上有足够多这样的黑盒时,你能用他们组合出个什么东西来(也许就是你的游戏).那么这些黑盒是什么呢? 是你的心智模型, 是你基于现有知识对某一个领域搭建起来的,指导你继续思考的根本. 这个模型完全可以只是部分正确的就可以了,重要的不是他的完备性,而是它让你可以在思考的链条上前进一步.这个链条的另一端可能是你急需学习的另一个黑盒,或者是某个实现你游戏设计的重要拼图. 当然这并不是银弹,早晚你会走到一个境地使得你现有的心智模型无法继续推进.而这正是因为你对某一个黑盒的理解不够了,你需要深入这个黑盒里面去研究它,把他变成灰盒.然后带着升级版的心智模型王者归来,继续大杀四方,然后铩羽而归,升级模型把灰盒变白, 循环往复.
这些看起来像是做别人人生导师的言论放到以前我是不敢说的,但是人到中年,我有大概7,8成的把握,对于一个想进入所谓计算机科学并利用其讨生活的普通年轻人来说,你要是能身体力行的执行, 应该可以超越80%这个圈子里的人了,记住这并不局限于Rust与游戏开发.
我写以上这些文字的目的只有一个,就是鼓励. 希望给刚接触rust或者游戏开发的新人一些心态上的建设,坦白地说rust这门语言不容易,游戏开发也不容易. 但是也许正是这样,最后结出的果实才格外的香甜. 我非常喜欢的重轻老师在游戏与投资的节目里提到过,游戏业其实不是一个好的投资标的,这里面有相当大一部分人纯粹是为爱发电. 毕竟在幻想的理想乡里自由的创造是如此的美妙哪一个男孩可以拒绝呢?
最后为了把你真的领进(骗进)Rust游戏开发的世界. 再来一针鸡血:
于是余有叹焉。古人之观于天地、山川、草木、虫鱼、鸟兽,往往有得,以其求思之深而无不在也。夫夷以近,则游者众;险以远,则至者少。而世之奇伟、瑰怪,非常之观,常在于险远,而人之所罕至焉,故非有志者不能至也。有志矣,不随以止也,然力不足者,亦不能至也。有志与力,而又不随以怠,至于幽暗昏惑而无物以相之,亦不能至也。然力足以至焉,于人为可讥,而在己为有悔;尽吾志也而不能至者,可以无悔矣,其孰能讥之乎?此余之所得也!
我们为了理想而努力进入幽暗昏惑之地,纵使最后倒下了,其孰能讥之乎?
(第一次使用机核的文章功能,不确定应该发到哪里去,有看到的朋友如果觉得不错,请留言告诉我如何能让自己的文章被更多人看到,谢谢)
评论区
共 条评论热门最新