程序人生 A log of my life

game engines

Unity

最广泛使用的一个引擎了(另一个是Unreal4),实际上Unity没有真正的2D引擎,他的2D部分是通过3D引擎模拟的,这点需要注意,如果是3D,Unity是非常安全的选择,如果是2D可以往下看。

Godot

全功能2D/3D引擎(相对Unity还很轻量),内置GDScript(类python语法),Godot引入一些概念:

  • 每个游戏有多个Scene,在Godot IDE内每个Scene可以独立运行,方便调试
  • Scene由一组node或,形成一个tree,也可以把其他scene instance出来作为子节点。
  • 每个node可以包含或引用到一个script
  • UI组件很丰富,实际上Godot编辑器就是用自己的UI组件实现的

目前来说Godot有一个3.0Beta版本,和2.0相比,有很多不兼容的地方(工程文件都不兼容),所以新开发者可以直接考虑从3.0入手,差别有:

  • GDScript有了很明显的简化,比如get_node("name").set_pos(get_node("name").get_pos() + Vector2(1,0))可以简化为$name.position.x += 1
  • 3.0增加了更多语言,可以使用C#等语言来开发了,这里甚至已经有了性能对比
  • 物理引擎增加了Bullet
  • 引擎的大小也从压缩后6M到9M了,根据需要选择。

Godot的一些组件选择:

Godot的组件很多,大体分为三类,2D,3D和control,可以很容易从图标上区分,它们分别为蓝色、红色、绿色。2D游戏一般来说:

  • 主角可以用Area2D
  • 机器人可以用RigidBody2D
  • 菜单等UI可以用CanvasLayer,下面添加各种Control

Love

2D游戏引擎,非常轻量,Love不提供任何编辑工具,你可以在画布上做任何代码的控制,有些人很喜欢这种工作方式。

总结

最后是上述引擎的对比:

  3D 语言 license 平台 zip大小 UI组件
Unity 2D/3D C# limited all    
Godot 2D/3D GS/C++ FREE all 6m/9m 内置
Love 2D Lua/C FREE all 3m