UNREAL ENGINE 4 VS. UNITY – A QUICK OVERVIEW Unreal Engine 4 vs. Unity

3 篇文章 0 订阅

introduction

I spent some time this last week playing with Unreal Engine 4, evaluating how switching to it would change my workflow and experiencing first hand what the pros/cons were. Below are a few collected thoughts for Unity developers thinking about making the move.

For background, I started dabbling with Unity on 2.0 and made the jump on Unity 2.1, six or seven years ago, and was curious to see what Unreal was up to (I never used UDK). I haven’t done any regular C++ development for a while, and all my Unity work takes place in C#.

Caveat emptor: I’ve spent just shy of a full week with Unreal Engine 4, so I might be missing something that’s obvious for old users. On the other hand, some of this could be considered to be coming from a “honeymoon phase”, where I’m still experimenting with it while considering how to migrate some games and libraries, and not having to use it against a deadline.

Here be dragons.

Dissection

What’sgood

  1. @UnrealEngine is replying to questions with an alacrity I’d expect from a scrappy little start up, not the premier AAA game engine in the world. In one particular instance I mentioned it in passing while reporting an AppCode issue to JetBrains, and the Unreal crowd jumped into the conversation and started to figure out with JetBrains how to fix the bug. It’s a refreshing change from @Unity3d, which is nowadays mostly used for pimping the asset store.
  2. An amazing variety of clean, well-documented example projects ranging from 2D one-button games to particles-everywhere high-poly-model extravaganzas, which do a great job of removing the “FPS first, everything else dead last” impression people used to have of Unreal.
  3. Active and helpful community. Their Answers and Forum community is still around the signal-to-noise ratio we had on the early Unity 2.x days.
  4. Oh god the pretties. The visuals on Unreal are way beyond what you can easily get with Unity right now, and even if Unity 5 catches up, you’d still need to pay for a new license in order to play with their new, untested features. Looking at some of their included demos, I can see why Valkyrie would dump Unity for Unreal.
  5. Licensing approach. $20 per month is just silly cheap, specially considering there’s no minimum engagement and you can keep the license after you cancel the subscription. People expecting they’re going to make millions out of their next iOS title might be more inclined to go with Unity’s flat-fee approach, but if you’re hedging your bets (or doing work that is royalty-free, like an interactive installation) Unreal has the edge.
  6. No stupid DRM. Contrast that with Unity’s approach, where I’ve lost access to an install because Unity decided for no particular reason something had changed on my hardware, and I could not “return” the license using anything but the same Unity install that refused to open. Right in the middle of a deadline.
  7. Excellent introductory documentation which appears to be properly maintained, including pop up tutorials which introduce you to the various editor sections, and link to the online documentation in case you want to learn more. This is particularly surprising considering Epic had coached the docs using language that made it clear current users were trailblazers, so I went in expecting it to be an undocumented no-man’s land.
  8. Performance on key areas, such as moving transforms around, appears to be better than in Unity’s current version. I haven’t been able to get confirmation from Unity on if that’s improving, and considering their current focus is on shiny new features, it doesn’t look like it’s in the cards. If your current use case requires a lot of continually updating agents (say, 4000+ autonomous vehicles, most of them on screen), you’ll be able to squeeze more out of Unreal.
  9. On Unity you can have a scene view match the game camera at any point, but you have to do this manually and know what you’re looking for – it lets you figure out “what’s wrong with this particular moment”. Unreal, on the other hand, allows you to just play your game with a particular view for debugging purposes (say, overdraw or shader complexity), then stop the moment you see a flash of red that should not be there. You could write a Unity editor script that matches the scene camera every frame, but at the cost of having to render the scene twice and having to pay attention to two views while testing.
  10. Sources! While I don’t expect I’ll be modifying the engine itself any time soon, the fact that Epic is open to the community sending them updates and fixes, as well as helping with debugging, is a refreshing change from the 1990s mentality of keeping everything closed up.

What’sbad

  1. As of 4.1, the Mac editor is unstable and a CPU hog. You’re better off running it on Windows.
  2. It takes a while to figure out the workflow. This might be just me being a new user, but overall the Unreal import-code-build-test-repeat workflow is significantly less streamlined that Unity’s. This is probably because…
  3. There doesn’t seem to be a run-time separation between the editor environment you’re loading and the C++ code you’re writing. If you want to rebuild your C++ code, you’ll need to close the editor module, recompile, and relaunch. I was expecting an approach where I could launch VS from within the editor, have it rebuild my solution, then have the editor pick up the changes on the generated code… but it turns out I forgot C++ doesn’t support reflection, which I was taking for granted – chalk it up to me expecting all programming languages to have become civilized by this point.
  4. Speaking of which, C++ is an archaic abomination and it must be stopped. I hadn’t used it on a daily basis for years, and going back to it after almost a decade of using modern languages makes me feel like I’m supposed to grow gills and lead a short, brutish life just because at some point my ancestors had to.
  5. Assets are being serialized as binary-only. While there is an internal diff tool for some assets, it does not help when using something like git, nor when reviewing what happened on a changeset without checking out and going into the environment. It also does not help if you need to merge assets across branches.

What’sdifferent

  1. Unreal doesn’t keep separate scene and game views. This has some advantages, such as your being able to see mip-maps, overdraw, light complexity and others from the point of view of the game camera as you play, where it’s actually relevant (something that’s impossible with Unity), but…
  2. I have so far been unable to have multiple viewports where one of them tracks the currently-playing scene. This stops me from having a “bird’s eye view” of the scene as I’m playing. I can have multiple angles on a scene, but only the game view updates while playing. Viewports have a “realtime” checkbox, but it seemed to make no difference.
  3. When you stop playing the scene, the editor camera is left where it was on the game the moment you stopped. This can be helpful for level designers, since if they notice something they want to change they can deal with it right away, but was unexpected when I just wanted the scene view to return to the way I originally had it.
  4. It seems like the best approach would be building the core components in C++, with the clunky workflow, then do your game logic on blueprints (or possibly integrating a scripting language) so you don’t have to dance the rebuild/reload tango.
  5. The build menu does not mean what you think it means.
  6. Units are comparable to millimeters, not meters; and Z is up. This is a minor thing and you’ll get used to it quickly.

Conclusion

While I don’t expect I’ll be migrating my current projects to Unreal – neither client nor personal – Unreal is a serious contender for any new 3D projects, particularly ones where I need more raw performance than Unity can provide.

It’s a refreshing change to see Epic taking this approach, and if Unity continues releasing half-baked new features instead of focusing on performance and stability, Unreal’s openness to smaller developers might be just what the industry needs.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值