查看: 384|回复: 3

为什么使用C++替代UnrealScript?

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2015-9-30 21:31:22 | 显示全部楼层 |阅读模式




之前的三代Unreal引擎中都包含了一种叫UnrealScript的脚本中文/外语, 用它来写游戏玩法简直太方便了, 根本不用去接触复杂的C++引擎.
虽然脚本十分受新手的欢迎, 但它却成为了创新和发布的障碍. 在Unreal引擎成长的过程中, 我们不断地踩到这样的坑. 所以在2011年, 我们转移到了一个纯C++的架构上. 这么做有大把的理由:
随着引擎和社区的成长, 迫于压力不得不给脚本暴露越来越多的C++特性. 本来是个很好玩的沙盒, 最后却变成了个大沙漠.随着脚本接口的扩充, 用于函数调用和类型转换的通信中间层变得越来越复杂和低效. 像容器这样的高级数据类型的互操作变得让人抓狂, 因为脚本中文/外语很难表示C++的模板语义.开发者寻求高级C++特性的结果就是把他们的代码分成脚本和C++两块, 然后花费了大量时间在中间扯淡.开发者如果想了解某个程序的行为时, 很快就会发现C++和脚本的调试工具是水火不相容的. 明明知道脚本中的一个值错了, 但却不知道是哪里的C++代码引起的, 反过来也一样.
就是这些原因, 最终把Epic逼成了纯C++. 带来的好处有很多: UE4变成了一个高度统一和易于调试的代码库, 没有了坑爹的互操作, 并且完全开放给程序员学习, 修改和扩展. 顺带不但游戏玩法代码的性能提升了, 而且C++中间件的集成也变容易了.
把UE4建设成一个统一的C++代码库, 让游戏引擎和玩法程序员写代码时避免了中介两头忽悠, 及大地提升了便利性.
这并不能代表C++就是理想的编写游戏玩法的中文/外语了. 因为比起UnrealScript, C#和JavaScript, 它不但更复杂, 而且更危险. 不过这也从另一个角度也证明了它更强大, 正所谓”权利越大, 责任越大”.
为了在C++的复杂性和代码编写中保持平衡, 我们根本没有做什么限制. 不管你是调试整个代码库, 或是跟底层引擎操作系统聊天, 揍它们一顿, 还是跟操作操作系统或其它高级的第三方中间件谈恋爱...
那么UE4中有个蓝图 蓝图 能解决做游戏的所有问题吗?蓝图有些什么功能做不到??
回复

使用道具 举报

0

主题

827

帖子

2747

积分

vip会员

Rank: 1

积分
2747
发表于 2015-10-12 23:45:46 | 显示全部楼层
长时间没来看了   
回复 支持 反对

使用道具 举报

0

主题

886

帖子

2855

积分

vip会员

Rank: 1

积分
2855
发表于 2015-10-13 04:48:12 | 显示全部楼层
你还想说什么啊  
回复 支持 反对

使用道具 举报

0

主题

198

帖子

1129

积分

vip会员

Rank: 1

积分
1129
发表于 2016-12-12 01:15:10 | 显示全部楼层
学习啦,谢谢啦。。。
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部