@yangyc
2018-03-06T13:20:33.000000Z
字数 2050
阅读 581
functional_3d_engine_pattern
《游戏引擎函数式编程模式》
2018.09
20w-30w
400页以内
游戏引擎 3d 函数式编程 模式
本书工作:
1.应用《元素模式》提出的思想、方法和工具,提炼了函数式编程范式和游戏引擎语境下的元素,分析了元素之间依赖关系,划分了设计空间
2.借助这三个成果,推导出了基本模式(后面简称EDP)
3.在EDP之上组合出了多个级别的模式,最终覆盖游戏引擎领域的常用模式
目前市面上只有关于游戏编程模式的书,还没有关于游戏引擎模式的书,更没有使用函数式编程的游戏引擎的相关书籍。
这是世界上该领域的第一本书!
现在几乎所有的游戏引擎都是用面向对象范式来构建的,不过我看到函数式编程范式是未来!
(可进一步说明为什么是未来!可以放在第一章->范式比较中)
这里有两个含义:
1.聚焦在模式
2.游戏引擎的模式
设计和架构一直作者关注的重点,作者在这方面有很多经验。
现在写引擎如何实现的书很多了;
如果有太多功能实现,会让用户陷入细节中,增加学习成本。
每个章节的模式要足够抽象和原子性,不涉及到其它模式的组合
(组合模式 放在“更多资料推荐”、”习题“、以及最后的”综合应用“中)
可能是第一本应用《元素模式》中的思维和方法来一步步推导模式的书,让读者“知其然也知其所以然”
案例要丰富,要贴近引擎,贴近实战
模式的很多说明,都尽量举例,而不是直接用文字描述
全部来自wonder.js引擎实战经验
内功书,一本启发思维层面的书
工具书,供读者随时查阅各个模式
函数式编程领域的sicp
游戏引擎模式的经典之作
类似于四人帮的《设计模式》的地位
提出游戏引擎领域的经典/专有模式
不设计具体技术,具体的引擎实现(如wonder.js)
试读online
众筹
自费出版
web版
电子版
pdf版
纸质版(供收藏)(定位高端用户)
游戏引擎开发
游戏开发:
游戏编辑器及工具开发
游戏逻辑开发
函数式编程的爱好者
其他:
web前端
在校学生
初级工程师
资深工程师
架构师
学习推导模式的思维和方法
学习函数式编程范式的模式
学习游戏引擎的模式
学习模式在游戏引擎中的应用
规范人们日后对相关模式的引用
阐明模式的设计目标
涉及到的本书提出的思想
说明模式面对的问题域及其背景
说明为什么需要该模式:
可以先说明如果不用该模式,存在的问题
e.g.
对同一个场景:
给出不用该模式的方案
给出使用该模式的方案
比较各个方案优缺点,给出推荐的方案
先给出类似于UML + PIN箱的图
再给出只有PIN(扩展)箱的图(用一个PIN箱表示的模式,可作为其它高阶模式的EDP)
////最后给出数学表达(p演算?)(remove?)
参与成员
协作关系
跟踪并梳理模式中各概念之间的关系
何时使用
适用条件
要满足什么条件才能适用
使用场景
讨论应该(或不应该)在什么情况/场景下使用该模式
优缺点
模式影响
具体实现
给出reason的伪代码
引擎中的实际应用
////推荐方案的实际案例
使用基于reason的伪代码来说明
来源于wonder.js中的实际应用以及专门为模式设计的案例(简化版)
(但要经过提炼简化,不是把wonder.js的架构套出来!)
与其它模式的关系
(e.g. 与近似模式比较)
给出同位素的模式
说明变体的使用场景、何时使用等?
给出案例介绍?
问题相关的应用领域不限于游戏引擎,可推广至编辑器、前端等领域
总结
设计空间(EDP模式专有)
给出相关元素;给出在设计空间的位置
e.g.
对象 相似
对象类型 不相似
方法 不相似
更多资料推荐
习题
e.g. 如何该模式应用到其它领域(如编辑器、前端等)
在另外一个repo中给出习题解答
(只是参考的思路和一些示例代码)
(指明参考的方向,但不限制死读者的思维,鼓励读者发散,给出自己独到的见解)
(欢迎大家把自己的答案发到这个repo中!)
要足够简单,只需要读者很少的工作量就可以完成
目的:
让读者掌握这个模式的思想、如何应用
类型:
给出可以应用该模式的实际案例
(来源于wonder.js的实际案例(限于篇幅,没有在正文中引用), 或者是自己设计的案例)
(也可以是发散的案例、应用场景)
(或者是实现某个引擎功能(参考three.js, unity等引擎的实际功能))
(或者是对于本章中的案例的扩展)
(在其他领域应用该模式(如编辑器、前端))
(最后给出一两个案例,需要综合使用多个模式来解决)
策略:
先给出基本的实现或者思路;
由读者给出应用该模式的实现;
可以给出 习题->提示
可以参考SICP中的习题
案例
2+
扩展
2+
习题
2+
问答
2+