找回密码
 立即注册
查看: 256|回复: 7

UnrealCSharp,诚心找小伙伴一起挖新坑

[复制链接]
发表于 2022-10-26 11:57 | 显示全部楼层 |阅读模式
背景

一直有想法造一个新的脚本语言插件的轮子,起初是在C#和Rust之间做选择,在9月使用Rust写了整整一个月的某项目之后,写起来比较折磨,决定还是放弃Rust,选择C#。在10月初,开始一些预研工作,利用工作之余的时间,三周的时间里完成了第一版。
第一版功能

目前在编辑器下的基本流程已经完善并跑通,能够正常绑定Class,缓存UProperty和UFunction,支持基本类型的set/get,UFunction的Override,无参UFunction调用。通过这些,验证了一些思路的可行性以及如何在Mono中实现。由于平时比较多接触unlua,代码结构上比较相像。
短期TODO


  • 支持复杂类型(UObject,容器和Delegate)
  • 完善UFunction调用流程
  • 解决Proxy模式继承问题(C#是单继承,当前设计存在问题)
  • 支持静态绑定
  • 完善Unreal和C#两侧GC管理
  • 支持Windows平台(鉴于Editor和Windows类似,应该会比较快)
  • 划分多个DLL(如Engine和Game)
  • PIE下进行隔离(可能是多Mono完全隔离,也可能是单Mono,然后Mono内部隔离)
  • 自动化生成Proxy
  • Editor下自动化编译,热重载
  • 。。。
以上内容预期个人3个月,基本上会按照以上顺序来进行开发,也会进行一些合理调整,如果加入的小伙伴人数多是可以并行完成的,完善以上的一些功能之后,UnrealCSharp能够在Windows下正常运行,能够应付大部分业务需求。
中长期TODO


  • 支持Mac Editor运行
  • 支持移动端(Android和IOS),Mac端,以及PS4/5等平台
  • C#热更新
  • Mixed模式(通过C#反射标记生成Unreal反射,动态添加UProperty和UFunction已经踩过坑,会比较快)
  • 同时支持Mono和CoreCLR
  • 性能优化
  • 。。。
以上内容暂时还没预计时间,也会根据情况来加入一些新的功能。
第一版体验


  • 安装mono-6.12.0.182-x64-0.msi
  • UnrealCSharpDemo,插件在submodule中,更新的时候记得拉取
  • 新建C# Class library项目,项目名为Script,利用Demo根目录Script中C#文件,生成Script.dll
  • 修改FCSharpEnvironment.cpp::64,FMonoDomain构造函数第二个参数为Script.dll绝对路径
完成以上流程后,进入游戏,点击Play,应该就能看到输出,如果有步骤遗漏我会及时更新同步。
诚心寻找小伙伴共建

对于UnrealCSharp,个人会投入比较多的工作之外的时间来完善。从目前规划的TODO,以及能够预想到的更多的挑战的来看,单枪匹马很难去完成,所以写这篇文章目的是寻找志同道合的小伙伴一起来共建这个项目。对于有心加入的小伙伴,希望的是学习性强,主动性强,当前在这方面的技能掌握不重要,只要有心,我会尽力帮你前期学习相关的知识,然后大家一起共同学习,共同完成项目。
“画饼”

通过参加这个项目,最直观收获的是知识技能,然后我个人也会一定程度上考略一些礼品和资金投入,后续会考略申请Epic的MegaGrants。
发表于 2022-10-26 11:59 | 显示全部楼层
期待
发表于 2022-10-26 12:00 | 显示全部楼层
大佬!我来当第一个评论! 后边有啥事就喊
发表于 2022-10-26 12:00 | 显示全部楼层
你为什么不使用神奇的魔法TypeScript呢?[可怜][可怜][可怜]蛮好用的
发表于 2022-10-26 12:05 | 显示全部楼层
因为最适合游戏的语言还是c#吧
发表于 2022-10-26 12:15 | 显示全部楼层
nb
发表于 2022-10-26 12:24 | 显示全部楼层
你好,我也很感兴趣但是
发表于 2022-10-26 12:25 | 显示全部楼层
好像在群里见过你[大笑]
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-21 19:38 , Processed in 0.095796 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表