用 Babylon.js 和 JavaScript 写 3D 游戏——从入门到精通(0)

By | 2022/12/07

为什么又开坑

整个博客静寂了2年,最近服务器提示快要过期了,想着不希望年少时期的文字就这么消失,一口气续费了5年。支付完了又有些懊恼,不能这样了啊,这个费用不能浪费了。

于是乎,新坑来了,这回我们使用JavaScript来做游戏了。

实际上,pygame系列为本博客带来了不少流量,但是平时工作学习中,python的使用只占据我5%不到编码量。当然这并不是因为Python有什么不好,只是这些年所在的公司里使用的机会没那么多罢了。而JS我相信不管在什么公司都有极高的使用量,只要是做BS相关的,毕竟前端唯一选择,不管它有多么的不优雅,都离不开。所以我一直规划着用 JS 来做个有趣的教程,之前也略微写过phaser.js的内容,但是实在太冷门,用处也不大。Three.js也略微使用过,入手还是不够容易。

最近发现Babylon.js 推出了一本指导书,《Going the Distance with Babylon.js》,很适合稍有基础的同学,不过全是英文,又超贵(京东预售卖579元,汗),于是我打算以这本书为脉络,系统的讲解 Babylon.js 的方方面面,算是教程,也算是读书笔记,为 JS 3D 游戏有兴趣的人指引一下。

关于 Babylon.js

一定有人奇怪,为什么不选用其他更“大众”的 js 3D 引擎,比如白鹭引擎(Egret3D)、Cocos2d、LayaBox等等。这些国产的引擎肯定也很棒,不过是因为这些引擎中文资料很翔实了,我再开系列也没有任何优势。而且说实话如果对接国际水准,还是Threejs、Babylonjs等比较排得上号。

Babylon.js 最初于 2013 年根据微软公共许可证发布,由两名微软员工开发。 David Catuhe 创建了 3D 游戏引擎,并得到了 David Rousset(VR、Gamepad 和 IndexedDB 支持)的帮助,主要是在业余时间作为个人项目。 他们还得到了艺术家米歇尔卢梭的帮助,他贡献了几个 3D 场景。 是基于 Silverlight 的 WPF 的 3D 系统的早期游戏引擎。Catuhe的个人项目后来成为全职工作,也是他团队的主要关注点。2015 年,它在巴黎的 WebGL 会议上进行了介绍。

截至 2018 年,它拥有超过 190 名贡献者,并关注其在游戏中的推广和应用,其中包括 Ubisoft 的一项。该用途已发展到多个领域。

时至今日,Babylon.js 已经是 5.X 的版本,它在github上有18.9k(截至2022/12)的Star,贡献者也达到了453人。拥有微软的背书,它的发展和能力都是十分强劲的。

book

国内有些官网的翻译,不过我看了大多是机翻,而且版本也停留在4.x的版本,所以此时此刻用中文讲这个东西还是有点价值的。官网是 http://www.babylonjs.com/ 上面有上有很多的例子和最翔实及时的文档,不过因为网络关系可能加载不是很流畅,我会在后面的课程中把一些例子下载下来重新部署,让大家减少这方面的困扰。

适合的人群

第一,你要喜欢它!对于自己在浏览器(或者手机上)做出一个3D游戏抱有强烈的愿望和兴趣;或者,你只是为工作所迫学习,也行。

很明显,阅读和掌握这些东西需要您有一些前端的知识,基础的HTML和较好的JavaScript基础,基本不需要CSS知识,所有前端的基础知识这个教程中都不会讲解。

如果您能有一些3D的基础知识就更好了,起码有三维XYZ坐标,还有模型、贴图的概念,其他更深层的没有问题也不大,教程中会有适当的讲解但是不会太详细,需要在练习中慢慢领悟,或者寻找相关资料加深理解。

最后,为什么还是用枯燥的文字讲解不用视频的方式呢?可能是“老年人”的执念吧,我还是觉得文字是最自由的学习方式,可以自己把握进度,虽然可能信息量没有那么大,但是在交流实践中,可以掌握的更好。

One thought on “用 Babylon.js 和 JavaScript 写 3D 游戏——从入门到精通(0)

  1. seligiv

    的确是够沉寂的,在收藏夹最底下了

    Reply

发表评论

您的电子邮箱地址不会被公开。