在2008年3月6日,2.0版正式引入“持续碰撞检测”(continuous collision detection)。这是我最欣赏的一个特性,而小鸟游戏的开发是在2009年。也就是说这个2.0版本让小鸟游戏直接成为了可能。
同时这个引擎也被移植到了XNA平台,这样在Windows Phone 7上,小鸟也可以运行了。
下面是Box2D的全部特性。
(有几个个特性看上去非常有技术含量。我不是做游戏的,很多特性我也不知道什么意思)
Collision
* Continuous collision detection
* Contact callbacks: begin, end, pre-solve, post-solve(接触回调函数)
* Convex polyons and circles.
* Multiple shapes per body(多形状实体)
* One-shot contact manifolds (击打接触,是为小鸟设计的?)
* Dynamic tree broadphase
* Efficient pair management
* Fast broadphase AABB queries
* Collision groups and categories
Physics
* Continuous physics with time of impact solver
* Persistent body-joint-contact graph
* Island solution and sleep management
* Contact, friction, and restitution
* Stable stacking with a linear-time solver
* Revolute, prismatic, distance, pulley, gear, mouse joint, and other joint types
* Joint limits, motors, and friction
* Momentum decoupled position correction
* Fairly accurate reaction forces/impulses (比较精确的力反馈)
System
* Small block and stack allocators
* Centralized tuning parameters
* Highly portable C++ with no use of STL containers
结论:
1,愤怒的小鸟是一个非常有技术含量的游戏,不过这个技术含量更多来源于它的开源物理引擎,当然小鸟的创意也是成功非常重要的因素。
2,开源里面有大量等待发掘的金矿,只要我们勇于探索,也许有一天我们也能有非常有创意的产品出现。
3,虽然我是用我的经验和审美来直觉体验小鸟的深刻技术内涵,不过多一点调查总是有好处的。可以收获更多的知识和经验
4,如果我们使用了开源项目,应该表示出对原作者足够的尊重, 而愤怒的小鸟在这一个点上显然做得不够好。