V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
Unreal Engine
MyCryENGINE
Chad0000
V2EX  ›  游戏开发

虚幻引擎比 Unity 难学吗

  •  3
     
  •   Chad0000 · 134 天前 via iPhone · 4834 次点击
    这是一个创建于 134 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在在学 Unity ,因为有 C#基础我感觉很简单。但据我了解很多 Unity ( U3D )开发的游戏性能不如虚幻引擎的。

    本人计算机本科,C++毕业后就没用过了。

    目前打算学完 Unity 后再学虚幻引擎,对比一下。先请教各位虚幻引擎的难度问题。
    第 1 条附言  ·  94 天前
    我没攻击人也没违反什么就给我降权?要么删除此帖要么转水深火热。
    /t/1072723

    31 条回复    2024-10-23 15:16:57 +08:00
    wdhwg001
        1
    wdhwg001  
       134 天前   ❤️ 16
    不要过早优化的意思就在这里了。

    在你遇到性能瓶颈之前,性能是你不需要考虑的点,你只需要考虑怎么开发更爽就行了。

    并且其实你用惯了 Unity 的话,初看 UE 会惊讶于这坨屎山的庞大、扭曲、疯狂和捉摸不定,层层过度封装的亵渎会让你彻底怀疑你一直以来代码洁癖的初衷,尤其是这坨狰狞可憎的巨大腥臭之物竟然能以难以想象的高效率运行,这会给你的内心带来更为深沉的震撼。
    lightjiao
        2
    lightjiao  
       134 天前 via iPhone   ❤️ 1
    看需求,如果你是做 3A 级画质 或者 动作游戏,还是推荐虚幻的,虚幻自带的渲染效果比较好,动画系统比较完善
    其他的 unity 够了,虚幻有的功能 unity 也能做,就是多花一些时间

    性能是最后考虑的,单纯为了性能上虚幻,会陷入虚幻屎山的灾难
    lightjiao
        3
    lightjiao  
       134 天前 via iPhone
    另外,学游戏引擎简单就对了,学虚幻自带的那坨屎山容易绕进沟里,对新手不友好
    qcbf111
        4
    qcbf111  
       134 天前   ❤️ 2
    首先并没有 unity 性能不如 unreal, 比如很多年前 unity 开发的原神发热控制和帧率稳定都比后来 unreal 开发的幻塔和鸣潮更优秀.
    unity 主要是出来的晚了点工作流和特性累计都不如 unreal,优点是架构是非常先进的,依靠后面来慢慢补上来把特性.
    unreal 优势是最早跟随 epic 项目开发的有很完善的工作流而且很多模块也更加完善, 缺点就是如果项目和 unreal 的 pbr 风格比较搭配那么就比较舒服, 否则就会非常难受, 里面的代码和 epic 也耦合很多, 很难想象作为一个通用引擎居然还内置伤害计算这些 gameplay 的东西.
    结论:
    unreal 好出效果默认 deferred shading, 默认参数就可以很容易做出很炫酷的 demo, 但是要正儿八经来做项目是非常考验团队水平的, 要不然就只能是在高端 pc 看着好看,手游也基本别想了.
    unity 默认 forward 和 forward+, 很早以前默认的渲染有点像页游那些无光照纯模型, 所有可能大家就觉得 unity 的产品不如 unreal 高大上毕竟 demo 那管那么多, 另外手游等各种平台兼容性是非常好的, 我看他内置的渲染 shader lit 甚至还有很多 opengles2.0 的宏, 最后 unity 算是目前最先进的渲染架构了, 需要什么都可以很方便自己保证兼容性的订制, 而不是"反正源码都给你".
    我预测一下未来, 如果 unity 不作死好好去累计渲染特性和完善的工作流, 那么未来一定是 unity 的, 因为 unreal 很难改的动了, unity 超越 unreal 是迟早的事
    geekvcn
        5
    geekvcn  
       134 天前 via Android
    学起源引擎😁
    levelworm
        6
    levelworm  
       134 天前   ❤️ 1
    Unity 的问题是公司上层实在是不行。最近新 CEo 上来开了几个高层,但是感觉还是动力不足。之前的老人走得太多了。
    decaydave
        7
    decaydave  
       134 天前   ❤️ 1
    针对性能问题,如果要求出同样的高拟真渲染效果,UE 的默认效果应该是完胜的,UE 的问题在于开发者需求和引擎功能的不完全匹配,Lumen&Nanite 在 2024 年还是太重,实装的大作一直到今年初才有零星见到,性能也不是很好。类似的还有之前的 Groom 、以及 Chaos ,这个技术这么多年,据我所知一直没有大规模应用的游戏案例。
    相反 Unity 反而经常冒出一些性能做得很好的游戏,比如星际拓荒,我一直在思考这种级别的物理模拟在 UE 中要怎么做。
    Chad0000
        8
    Chad0000  
    OP
       134 天前
    @wdhwg001 #1
    感谢反馈,屎山很形象,我有严重的代码洁癖,所以在遇到性能问题前先敬而远之。
    Chad0000
        9
    Chad0000  
    OP
       134 天前
    @lightjiao #2
    不是动作游戏,准备做沙盒类型的,有点儿像那个 Wobbly Life (晃晃人生),那个也是用 Unity 开发的但会卡。所以我才问是不是性能都有问题,还是实际上是游戏开发团队实力的问题。

    作为游戏初学者+有严重代码洁癖者,我暂定先 Focus 在 Unity 上,感谢!
    Chad0000
        10
    Chad0000  
    OP
       134 天前
    @qcbf111 #4
    感谢反馈,我现在应该会继续 Focus 在 Unity 上了。
    Chad0000
        11
    Chad0000  
    OP
       134 天前
    @decaydave #7
    作为一个初学者,我看到的就是 UE 出的游戏效果实在是太棒了,而且性能真的没的说。你说的那些术语还是很专业我还没了解过不是很懂,不过作为初学者可能也没那么多精力考虑引擎问题,3A 更是不可能,所以 Unity 对我来说可能就是当前最好的选择了。

    感谢!
    MCVector
        12
    MCVector  
       134 天前
    @levelworm 哈哈哈大佬你在 Unity 工作吗?
    levelworm
        13
    levelworm  
       134 天前
    @MCVector 已经不在了哈哈,不是大佬,小虾米。
    luodan
        14
    luodan  
       134 天前
    外行人不小心进来了。问一个小白问题。如果只是个人兴趣,有没有可能在 1 年之内入门。所谓的屎山对于个人来说吃得下不?
    gpt5
        15
    gpt5  
       134 天前   ❤️ 1
    我认识的人里,好几个在小公司都是用的 unity ,上手和起步挺快的。
    只有一个在某工业领域龙头软件厂的人,用的虚幻。
    Leez088
        16
    Leez088  
       134 天前
    @qcbf111 你说的是移动端,幻塔 pc 端明显比原神 pc 端好很多,帧数画质啥的就不说了,光追 dlss3 这些增强的可不是一点两点
    MCVector
        17
    MCVector  
       134 天前
    @levelworm 蛤你之前在 MTL 吗!?
    nullyouraise
        18
    nullyouraise  
       134 天前   ❤️ 2
    如果是自己做游戏,那学 UE 和 Unity 没啥区别,挑个自己喜欢的就行;如果是国内找工作,推荐学 Unity ,UE 的岗位比 Unity 少多了;如果是国外找工作,那我不了解了,也不敢给出什么建议

    Unity 和 UE 作为最知名的两大商业游戏引擎,各自都有非常明显的优点和缺点。

    UE 自身渲染效果做的很好,也是他们宣传的重点,如果你只是需要默认效果,那上手应该很快;但是如果你想要定制,UE 代码自身耦合严重,修改很难;另一方面是 UE 自带的工具实在太难用了,想自己开发 GUI 工具,写起来跟吃了屎一样难受

    Unity 的问题比 UE 大多了,最明显的两个问题,一是性能太烂,二是官方提供了一大堆功能,但是基本都只做了一点,给你画个饼说我们提供了这个功能,实际根本无法达到商用水平

    说 Unity 性能比 UE 好的,估计是没做过大型项目,知名的基于 Unity 开发的游戏,特别是手游,王者荣耀、原神、永劫无间、逆水寒,都是大改引擎做的定制优化。Unity 2023 版本官方宣传的 DX12 性能提升,居然是和 DX11 的老版本对比,和上一版本的 DX12 对比的话,根本没那么大的提升。

    如果有机会拿到 Unity 的引擎源码,那恭喜你踏入一坨无法回头的屎山,包括但不限于如下问题:
    1. 作为一个 C++项目,却几乎不使用任何 C++特性,基本就是 C with classes ,整个源码库里 lambda 都没用几个,甚至 2024 年的代码,传空指针还在写 NULL 而不是 nullptr ,传参全是函数指针
    2. 代码中有大量莫名其妙的注释,五六行文字看起来在解释这里为什么要这么写,仔细一看下面的代码,发现代码逻辑和他的注释完全没有任何关系;
    3. 过度设计,一个类继承多个 XXXCommon 类,实际这些 Common 类只有这一个地方被使用;
    4. 为了一点微不足道的性能提升,大量代码写的晦涩难懂,配合看不懂的注释,导致很多地方很难修改。

    Unity 年年亏损都是它自己作死,饼画的越来越多,屎山越堆越重,再这么下去估计五年就得倒闭
    lightjiao
        19
    lightjiao  
       134 天前 via iPhone
    @Chad0000 卡是团队水平菜,跟引擎没什么关系,谁家代码还不是跑在显卡和 CPU 上?
    来点多线程和视野外剔除,能解决很多性能问题
    jerrywossion
        20
    jerrywossion  
       134 天前
    作为一个会 C++、不咋会 C# 的非游戏行业的小白,个人觉得 UE 学起来更舒服一些。一开始看网上的推荐先学的 Unity ,但感觉处处受阻,让人物动起来还要学 collide and slide ,最后用开源组件 KCC 调半天最后放弃了。然后学 UE ,体验完全不同,引擎内置了大量基础框架,Player controller ,以及 GAS 等,C++、蓝图不管哪种方式写起来都很愉悦。
    当然这是入门小白的感受,还没有接触到复杂的定制化功能和游戏优化,但感觉自己撸一个 RPG 的话 UE 应该更简单。
    lightjiao
        21
    lightjiao  
       134 天前 via iPhone
    类似的类型可以看看《戴森球》这款游戏,unity 做的,类模拟经营,性能优化做的很好
    Chad0000
        22
    Chad0000  
    OP
       134 天前
    @nullyouraise #18
    非常感谢留言,看起来你对这方面有深入理解。我不妨把我的想法说一下:

    我自己本身是重度使用 C#(十多年),C++大学毕业后就废弃了(再捡起来也不太难,我当年大学 ACM 靠它拿过奖,我当时在团队中负责编码)。我对游戏的想法是想做一个类似《我的世界》的游戏,但我的基础不是 Block ,是 3D 模型。我的模型由代码生成,加上一些参数。比如定义一个桌子,那么就是形状(有限几种),纹理,几条腿等,这样由代码生成这个物理模型。然后模型组成常见场景:绿地、城市、公园等等。我的平台支持随机生成一个场景,也可以让用户自己布局场景。然后有这个就可以生成世界,有了世界就可以基于这个世界做很多事情(这个另讲)。

    我上述说到的 Unity 性能不行就是在 PC 或主机平台上它不行,连 Low Poly 还都有卡的现象( Wobbly Life 就是)。这是我担忧的地方。但同时因为我的平台特殊性(当然这个也复杂,另说),模型是生成的,意味着很有可能切换到另外一个引擎并不是不可能。如果是这样,一开始我也是不太愿意使用 UE 毕竟那个蓝图对于我这个平台实际上是无用的(我需要自己实现类似的机制)。

    暂时选择 Unity 是因为初学者友好+我的 C#经验,能起点儿作用。

    再次感谢您。
    Chad0000
        23
    Chad0000  
    OP
       134 天前
    @lightjiao #19
    理解你说的,Unity 可能就是大作少,意味着这种项目一般可能就是小团队做的,水平可能就是不如大厂的高导致的。受益于 C#的知识,我跟着官方学的时候就发现很多可以优化的地方,比如在 Update 中遍历 Objects 这种行为。使用 C#我能在一开始就能做到一些好用的设计,有可能比一开始就看重性能而选择不熟悉的 C++受益更多。
    Chad0000
        24
    Chad0000  
    OP
       134 天前
    @lightjiao #21
    看了《戴森球计划》这款游戏了,我做的也是放置类,至少是核心的一部分。
    Chad0000
        25
    Chad0000  
    OP
       134 天前
    @jerrywossion #20
    我学了 Unity 大概半天时间了吧,就像你学 UE 一样,我会 C#,也没有受阻的地方。当然还没涉及到自己设计动画,但调用动画驱动 Player 是完全自然而然的。
    Chad0000
        26
    Chad0000  
    OP
       134 天前
    @luodan #14
    要看对入门的定义了吧。我只能业余时间学,你可以观望一下,一年后看我是否能发布一个哪怕雏形游戏出来。
    zuosiruan
        27
    zuosiruan  
       134 天前   ❤️ 1
    我现在还在游戏公司,最近两年身边的还在游戏行业的都裁过好几轮了,很少幸免
    Chad0000
        28
    Chad0000  
    OP
       134 天前
    @zuosiruan #27
    我做这个不是为了钱(当然能有钱拿更好),我能赚钱的运气好能财务自由的项目是另外一个(我自己本身并不想做)。有空能否帮我评价一下我在 22 楼的游戏想法吗?

    感谢!
    68467897
        29
    68467897  
       133 天前
    @wdhwg001 #1 你有没有克系作品?想拜读下
    qbmiller
        30
    qbmiller  
       132 天前
    @luodan 没有实际项目支撑,感觉很多跟不上。
    forwen
        31
    forwen  
       54 天前
    咋比较啊,这两个开发逻辑都不一样怎么比较呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5306 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:41 · PVG 14:41 · LAX 22:41 · JFK 01:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.