魔头
原帖由 @MacPhisto 于 2025-1-4 11:50 发表 如果目标平台是steam pc,那么优化不是最大的问题,毕竟用户可以掏钱升级硬件。但如果目标是console ,那用unreal 就是作茧自缚了。这也是为什么顶级3a都是自研引擎,说白了,首当其冲,内存对象的所有权,必须在游戏开发者手中,而不是被引擎隐藏起来
查看详细资料
TOP
混世魔头
原帖由 熊熊哥哥 于 2025-01-04 12:08 发表 steamdeck都能运行,xss应该比sd强吧。
大侠
魔王撒旦
原帖由 @ginaamix 于 2025-1-5 00:17 发表 233还在搁这UE不能管内存只能单线程呢,UE确实是把门槛拉太低了什么阿猫阿狗都能来锐评两句
天外飞仙
原帖由 @MacPhisto 于 2025-1-5 02:10 发表 UE的uobject,aactor这些基础设施都是单线程思维。AActor::GetComponentByClass, GetComponents这些基础api更是多线程的灾难 现代多线程引擎的设计思路是ecs,强调的是数据流和代码流的并行化。不存在什么强actor,最多只有弱的entity handle。对内存的读写是在system这个级别发生,以component为单位的。system和components的依赖关系是可以在编译期确定和验证的 当然我说的这些是大体思路,不同公司的自研引擎实现方法有自己的区别。gdc上最近十年都陆续有大公司分享自己的设计,也有很多公司的设计思路并没有公开。比较典型的例子可以参考remedy在GDC 2024的ECS in Practice: The Case Board of Alan Wake 2 本帖最后由 MacPhisto 于 202515 02:12 通过手机版编辑
原帖由 @ginaamix 于 2025-1-5 13:59 发表 嗯,报了半天ECS菜名,然后举个单线程跑Lua虚拟机的例子,你是懂幽默感的
原帖由 @DKNYZK 于 2025-1-5 10:23 发表 xss 难道还不如 steam deck?
原帖由 @MacPhisto 于 2025-1-5 15:22 发表 我给你的这个例子是讲remedy 如何在编译期确定system 和component 的依赖性的,这个才是重点。因为很多ecs引擎对依赖性的检查是放在运行期,局限性和风险都很大。正好我们公司目前使用的自研ecs引擎就是在编译期静态检查依赖性,而我们的研发是从2020年开始的,可以说和remedy 是不谋而合
原帖由 @ginaamix 于 2025-1-5 18:53 发表 我又没和你讨论ECS该怎么写,你一上来说虚幻gamethread多线程不方便内存不可控所以UE本质单线程,然后甩过来个阿兰醒醒的例子是需要ECS停下来单线程去跑LuaVM,这不纯纯搞笑么?按你分类方式这不更加单线程内存更加不可控?更何况ECS又不止system和component的依赖这一个问题。
元始天尊