今年夏季,我写了一套"jME3初学者教程",本意是想让学习jMonkeyEngine的初学者能够有一套比较容易入门的参考资料。写作的过程中,我尽自己所能,希望把我所了解的jMonkeyEngine介绍清楚。不过,目前来看,并没有达到我的预期目标。所以我想在明年抽空把它重构。
**重构的主要原因,是这套教程没有区分知识的难度。**虽然名为“初学者”教程,但是从读者反馈来看,文章中夹杂了大量不适合初学者的内容。其实我在刚开始规划这套教程的时候,并不打算写这么多。由于我的心理负担比较重,编写时总觉得必须先介绍某些原理,否则说不清楚。再者,我本人也是一个游戏开发的初学者,想借个机会把这两年的学习经验总结一下,结果就渐渐写变味了。写到中途的时候,我已经意识到这个问题了,可是怀着“写了总比没写好”的想法,还是坚持继续这样写完了。
回头对比一下官方文档,还是官方写得好。对于初学者来说,官方文档最开始的13篇基础教程就够了。虽然很多概念都没有解释,有些常用功能也没有介绍,但是已经可以大致了解jMonkeyEngine的各个模块了。随后的高级教程分不同模块对引擎进行了详细介绍,每篇文章只单独阐述一个功能,这样很好。
总的来说,这种教学思路跟我以前做的实践课程是一致的。先要将学习者分层,设定不同的学习目标,然后再来研发对应的学习内容。游戏开发作为一门非常注重实践的学科,不能像学院派那样总惦记着定义、概念、原理、公式。而且游戏开发所包含的内容太多,要有所侧重。诸如游戏机制设计、技术美术(渲染&着色器)、运动学(骨骼动画)、物理模拟等方面,虽然很重要,但不太适合在初学者刚接触jMonkeyEngine的时候有太多讲解。可以适当介绍这些知识的作用,然后让学习者入门后自己再选择特定方向去研究。
所以重新设计这套教程,我认为可以分为三个不同的层次:
- 入门教程:从安装环境、创建场景、加载模型等问题入手,重点解决“怎么做”的问题;
- 中级教程:以模块为单位,介绍引擎各个系统的功能和原理,包括一些实用的优化技术;
- 高级教程:深入分析引擎的源码和工作机制,比如渲染器的实现。这样对于希望改变游戏画质、自定义引擎功能的开发者,可以节省自己去读源码的时间。
除此之外,最好还能有一些案例教程。把完整游戏的开发过程写出来,让开发者能够模仿着做出几个游戏来,这样能够更快的投入生产。实际上我前两个月翻译Zay-ES小案例,也是处于这个考虑。
不过呢,想法是好的,但是我的个人精力却是有限的。这些内容什么时候能写完也没个谱,权且先做个备忘录在这里吧!