因为我见过很多业余的编辑器, 大多都是每加一个参数就在UI层写一些代码, 在IO层加一些版本兼容代码等. 而这些代码常常都是大同小异的, 很多都是Ctrl+C, Ctrl+V出来的....说起来, 这个探索过程中我也走了不少的弯路, 顺便写出来当教训吧
最早是从java/.net转来写C++, 所以对于C++的UI开发十分的不满....但是对于3D引擎来说, 目前来说语言也没有更好的的选择. 所以, 也有很多引擎是多语言的架构, 如底层C++, 工具C#, 逻辑lua....参见: 关于游戏引擎结构上的思考, C++的反射和序列化
Undo/Redo(撤消/重做)
----
我们一大牛说过: "判断一个工具是不是成熟, 就看它有没有Undo/Redo的功能"....这个只是补救的办法, 让用户体验好一点而已. 如果之前使用了Command模式, 那就更好办了, 只需要在Command执行的时候统一处理就行了.