Unreal Engine Angelscript
UnrealEngine-Angelscript是一个接入了完整Angelscript脚本功能的UE5引擎修改版。(译者注:UE4等旧版本可以从tag构建)
这个修改版引擎是我们Hazelight工作室为了快速迭代游戏双人成行开发的, 在双人成行项目中我们使用了AngelScript脚本开发了大部分的游戏玩法。 这个修改版引擎已经开源,目前除了Hazelight工作室以外也有其他工作室贡献代码。
有关脚本语言的介绍,请参见脚本简介。
如果你有兴趣或有疑问,请到我们的Discord Server聊天室与我们沟通与交流!
项目背景
使用蓝图开发复杂度比较高的游戏系统的时候经常会导致蓝图的节点或者连线杂乱无章,可阅读性大大降低。但如果使用C++来开发,又会受到C++复杂的语法和耗时较长的编译器影响导致大大加长迭代时间,影响游戏设计师或者玩法设计师去使用。
通过本项目你可以使用Angelscript这个简单但又强大的脚本语言来开发游戏玩法。
本项目的优势:
- 快速迭代 - 脚本在编辑器中支持热重载,即改即生效,可以让开发者专注于开发炫酷玩法,而不用频繁的重启启动器。
- 协作更容易 - 传统思维中策划使用蓝图进行配置或简单的功能编写,程序员使用C++开发复杂和基本功能暴漏给蓝图,有了脚本以后,策划也能轻松学会脚本语言,参与Gameplay开发和想法验证。
- 性能/效率 - Angelscript性能明显优于蓝图的性能, 并且在发布时使用脚本转译 功能时性能接近于原生C++.
特性
上手简单!
熟悉使用C++开发UE的程序员会感觉这些脚本写法和api十分熟悉,在此基础之上还做了很多的简化以避免C++常见的坑。
飞速的脚本热重载!
当你编写完脚本保存后,可以立即在编辑器中看到你的修改!
甚至如果你没有修改类的结构,只是修改函数逻辑,可以在游戏运行时热重载你的修改!(译者:如果你修改了类的结构,但编辑器正在游戏模式下,vscode会提醒你哪些文件的热重载不会生效)
脚本语言完整的IDE支持!
为了更简单的开发Angelscript脚本,我们开发了Visual Studio Code 扩展.
这个VS Code扩展包含了很多IDE应该有的功能
- 自动补全
- 错误分析
- 重命名符号
- 查找所有引用
- 语法高亮
与现有的c++和蓝图的工作流集成
Angelscript的类可以覆盖任何C++暴露给蓝图的内容,同时蓝图也可也继承Angelscript的类
你可以选择任何你喜欢的方式将脚本集成到你的工作流中。
(译者注:Angelscript默认可以访问到蓝图可以访问的任何函数或者类,所以蓝图可以满足的项目完全可以抛弃c++使用纯Angelscript开发,但是大部分情况下,商业项目只用蓝图是不够用的,c++有很多虚函数或者受保护的变量没有导出给蓝图,所以建议先写C++,然后脚本继承c++类,若当前有什么内部变量或者函数脚本无法访问到,就从c++类覆盖并导出给脚本)
支持使用VS Code调试代码
安装VS Code插件后,可以直接使用VS Code打断点调试代码,无需任何配置。