Skip to content
laishikai edited this page Oct 7, 2021 · 35 revisions

Fast C Script

简介

这是一个基于C++, C#简单语法的动态解释语言。目的在于提供一个简单高效,语法灵活的动态解释语言。 它专为游戏开发而生, 是为LUA的替换方案而生。

优势

  1. 内核简单小巧,跨平台,可用于小型嵌入式设备。
  2. 语法完整,支持C#与C++的基本语法,这个是lua没有的。
  3. 支持所有的C,C++原生数据类型, 更省内存。
  4. 支持所有的C,C++操作运算符。
  5. 支持utf8, utf16的字符串类型,字符串组合效率更高。
  6. 支持数组, List模板, 可扩容,接口丰富。
  7. 支持有序的hash_map模板, 迭代遍历时删除或添加容器的节点,不崩溃, 不影响遍历操作。 该容器可以有序插入,指定位置插入,元素按插入顺序有序。
  8. 精确的内存回收,无C#、 Lua那样的延迟GC导致的卡顿问题。
  9. 支持class, 支持对象的构造函数与析构函数, 自动内存托管,用户无需担心内存泄露问题。
  10. 支持作用域,支持同名变量覆盖, 对象自动管理,出作用域后自动释放。
  11. 支持高效的switch, case 开销不会与case数量线性增长,常数级性能。
  12. 支持静态编译优化, 如常数优化。
  13. 支持inline优化, 可以大幅减少函数调用开销。
  14. String不为NULL, 总是有效,避免各种null 检测。 并有比C#的String还有丰富高效的接口
  15. 高效的消息反射与xml反射,有它了,不再需要protocol buffer。xml反射功能,比C#的还要强大高效
  16. 支持内置的图形对象,如Vector2, Vector3, Vector4, Panel, Ray, Matrix, Color, Color32等。
  17. 与C#等其他平台互调更安全,更高效,不用担心内存泄露的问题。
  18. C#wrap对象可与脚本对象同步释放,无需定时检测释放。
  19. 支持Json内置读写操作,性能数倍于json.net与LitJson。
  20. 支持协程,支持异步编程await
  21. 默认支持Protobuf 3.0,可修改导出插件扩展
  22. 支持系统广播批量调用函数,适合框架解耦
  23. 内置二维表格对象FCExcel,高效,省内存,超高速加载,比Protobuf还省内存

语法简介

我要了解

性能对比

性能测试对比

Unity工程示例

  1. 01_Helloworld快速入门的例子
  2. 02_U3DScripting展示脚本与MonoBehaviour的交互
  3. 03_Json展示Json的读写与LitJson,Json.net的性能对比
  4. 04_Xml展示Xml的读写
  5. 05_coroutine展示协程的使用与C#中的委托与脚本的交互–(代码)
  6. 06_msg展示C#传二进制消息流给脚本解析
  7. 08_await展示Await异步调用–(代码)
  8. 09_protobuf展示protobuf协议–(代码)
  9. Profiler展示脚本的12个性能测试用例
  10. Demo展示脚本自身语法对象的应用
  11. VS脚本工程展示使用VS工具编写脚本代码,带语法提示的
  12. 系统广播工程展示系统广播功能
  13. Excel示例展示Excel的使用导表工具

GitHub

GitHub地址

QQ交流群

894840241 入群答案:游戏开发

Clone this wiki locally