(1)跟我一起学!

第一篇就随便写写,当做开坑之作吧。

如果不愿看海量的吐槽,那么请记住一句话:来,跟我一起学!

可能很多人不知道jmonkeyengine3(jme3)是干啥的!在这之前我也没听过,因此,讨论这个话题,我也只是边学边输出了,可能会有写得不到位的地方,毕竟不像web后端领域那么熟悉,但是相信会好起来的。

没错!jme3是一个java 3d游戏框架

相信很多coder说起游戏,会觉得很高大上,向往之余又觉得门槛很高、今生无缘!但是神话就是用来打破的,自学六年java的我来证明这是真的,并且还可以告诉你:
曾经神秘的jvm,因为《深入理解java虚拟机》,看起来也不是那么神秘了;
曾经深奥的编译原理,因为《编程语言实现模式》《antlr4权威指南》的加入,也并非完全不可操作;
还有我最常说的一句话:代码该怎么写,早在上世纪80年代就已经确定了!额,虽然几本神作《clean code》《重构》《敏捷软件开发:原则、模式与实践》直到本世纪初才成书。
结论是:看对了书,情人节每天都过

游戏开发也是这样。

一年前就想入门游戏开发,无奈遍寻良书,网络上都是诸如windows游戏编程这样的大部头著作,名字都记不太起来。且,恐怖而又粗制滥造的windows api,成功避开了所有编程最佳实践,讲授这种api的书籍,估计没几个人能看进去。
终于,中间找到一本不错的书,介绍了一种java 2d游戏框架,包括怎么做瓦片地图、材质、纹理、粒子、精灵、音效、特效,总算不会让人完全摸不着头脑。书名原谅我忘了。
直到这时,事件主循环、fps、碰撞检测、npc ai、动画等等,才有了基本的概念。

这里我们知道了,所谓游戏,也不过是和动画一般。动画糅合了图片和声音,游戏则 将 图 片 、 声 音 , 捆 绑 着 回 调 程 序 , 加 载 到 内 存 , 然 后 在 一 帧 的 时 间 内 算 好 下 一 帧 该 画 啥 、 播 放 啥 、 执 行 啥 \color{red}将图片、声音,捆绑着回调程序,加载到内存,然后在一帧的时间内算好下一帧该画啥、播放啥、执行啥 而已。一眼望不出本质,仅仅是因为电脑完成得太快了。事件主循环,终究走的还是计算机“无限迭代”的老套路,它深谙此道。

是不是有种神话之墙轰然倒塌的感觉。

当然,知道了这些还开发不了游戏,毕竟游戏要模拟真实世界啊。不要慌,我们绝不是门外汉,现在只要再加上一些 数 学 、 物 理 和 美 工 \color{red}数学、物理和美工 就好。
前两者好说,我们从小就开始与他们的亲密接触!一些基本的线性代数、自由落体,肯定不在话下。
剩下的美工就难一点了,但经过这么多年业界的积累,网上抠点做好的模型,再用免费开源的Blender处理下,就能得到不错的模型和动画了。下面这段摘自百度百科:

Blender 是一款开源的跨平台全能三维动画制作软件,提供从建模、动画、材质、渲染、到音频处理、视频剪辑等一系列动画短片制作解决方案。

解决了理论基础,我们当然不用从头制造轮子,框架已经帮我们准备好了很多开箱即用的功能:诸如资源管理、事件主循环、物理引擎等等。想象一下,不用自己使用io读文件、音频、动画,不用自己搭框架代码,甚至不用自己写基本的物理公式,这些都有框架提供一站式的工具,开发游戏好像也没有那么难了吧!

下面,是时候我们的主角入场了:有请jme3

这个框架不知道火不火,但版本迭代是很活跃的,截止到2020年3月还有新版推出来,纯java的api,所谓一通百通,从这个框架入门是较好的。还有一个好处,jme3环境搭建是想当容易的。本来准备从unity3d入手学习,一是软件不免费,二是下载不顺畅嘛(||^^)。这俩问题对jme3而言,都是不存在的。

前期的准备都完成了,按照惯例,现在只差一本好书了!这里的答案是:jme3教程。

很遗憾,这个框架没有什么圣经般的书籍可以参考,仅能弄到的书是jme3 beginer’s guide,比较坑的是这书是英文的,而且套用了cookbook系列的文风,图和文还分开放在两本书里,徒增烦恼,算是比较糟糕,因此,建议下载了稍作参考就好。

我这个系列的文章会参考上面的文档,但关注点主要放在:0基础入门、简单好懂、循序渐进、重点突出。此外,顺便记录下我个人的学习轨迹,并为jme3的推广稍微做点贡献吧。如果我有任何没讲清楚的,或者过于复杂的,请拿砖块砸我!

学习编程,最好的资料永远是源码。jme3自带了examples模块,演示了框架的主要功能。我们就从这些代码出发!

先贴一个例子!这个例子出自helloworld包里的HelloPhysics.java。

jme3


很带感的射击体验,有内味儿了!

环境搭建过程这里我就省略了。参考前面列出的教程,去jme3官网,下载操作系统相应的sdk即可。官方sdk的ide基于netbeans,安装好并进入netbeans,新建项目,类型选择jme3的examples项目,就得到各种可以执行的示例了。
还可以下载源码,使用idea导入,由于idea内置对gradle的支持,导入不会遇到任何困难,只要选择open project,找到根目录的build.gradle,打开,就可以成功导入项目。

初始建议一定要安装sdk,skd内置了blender,省去我们很多功夫!毕竟快速开始,得到反馈,建立信心,才是比较舒适的切入姿势。

你可能感兴趣的:(jme3,learn,by,example,java,游戏开发)