What Unity Is Getting Wrong

栏目: IT技术 · 发布时间: 4年前

内容简介:When I added Lua to Garry's Mod my intention wasn't primarily to make things moddable. I wanted to make things easier for myself. By wrapping a few functions and coding in Lua I could iterate a million times faster. I didn't have to close, compile and re

Developer QOL

When I added Lua to Garry's Mod my intention wasn't primarily to make things moddable. I wanted to make things easier for myself. By wrapping a few functions and coding in Lua I could iterate a million times faster. I didn't have to close, compile and re-open every time, while also hiding all the bullshit and hard stuff.

Unity was about that when we first started with it. They hid all the hard stuff in c++ so we didn't have to think about it. The more time has gone on, the more bullshit has crept to the forefront. The've gone from hiding the hard stuff to moving more and more stuff into C#.

So while other engines have been trying to catch Unity up in terms of developer friendliness, Unity has been going the other way by making itself more unfriendly.

Render Pipeline

Switch to one of the new render pipelines they'll tell you. They're faster, they've got more features. The old pipeline won't be updated any more.

So you've got two choices URP or HDRP. Both are incompatible with each other. Switching is a one way destructive operation. You can't press a button and try it and decide you want to change back a month later. You're converting every material in your project.

This is a good example of something that could have been hidden in the backend. Choose one pipeline and make it the default. Don't have an unsupported render pipeline as your main, default pipeline for 2 years. Sure have low and high pipelines, have low as the default, but come up with a pipeline/shader agnostic material system first so we can switch between them - or even ship both.

UI

There's nothing fundementally wrong with the Unity UI system. Sure it uses transforms so it uses more memory than it should.

But no improvements, no new controls, because they're planning to replace it with UIElements (in a couple of years).

There's a lot they could have done to improve Unity UI. It has bugs. It has a lot of problems with Layouts performing badly (lots of GetComponents in the layouts). It could be rendering faster. It could have a stylesheet system. It could have been gradually improved.

The font system that Unity UI uses could have been improved. But they bought TextMeshPro, packaged it up and you're advised to use that instead. The nice thing would have been to have improved the font system in the backend so everyone automatically benefitted from it. As it is, if you want to use TMP you need to manually update every UI prefab in your game - which again, is one way and destructive.

Multiplayer

I don't even know what's happening with multiplayer. UNet has been deprecated for 4 years. Every page in the multiplayer documentation has this warning. They had a HLAPI and LLAPI being developed a couple of years ago - has that been released, should people be using it?

My nagging feeling is that they're working on something else. Something to lock you into paying for their multiplay services.

They point to the FPSSample to see an example of how to use the network code. The glaring thing about this is that it uses Unity 2018.3.8f1.. and this:

The first time you open the project you need patience! It takes a while to import all the assets.

Which brings us to another point..

Update: These are apparently also deprecated.

the HLAPI and LLAPI are the old, deprecated things. The replacement they're working on is at least 6 months late, still in alpha, unnecessarily tied to DOTS, and performs badly.

Demos

Unity's demos have always been fire and forget. I'm sure this is hell for anyone coming to the engine fresh, trying to Run a demo that is 2 years old and being in upgrade hell.

This FPSSample should be running on the latest non beta version of Unity. It shouldn't have warnings about import times because they should have solved that. It shouldn't have instructions for working around editor bugs, because they should be fixed. It shouldn't warn you that the multiplayer component shouldn't be used in production environments - because that's what your demo should be selling.

The short movie demos aren't impressive. It's embarassing when half your keynote is a group of artists explaining how they spent 6 months re-writing half the engine to render something that they could made in Maya in a week.

Show me a 100 player PUBG type game running at solid 60fps on a current gen console or mobile. We already know you can render a GTA3 cutscene.

DOTS

Want your game to run better? Recode the entire thing using DOTS. Another one way destructive change.

I can see the benefits of DOTS from a data point of view. I get why it uses less memory, I get that if you're starting a game from scratch you might consider it, I get that it's a work in progress.

I don't get why it speeds rendering up. I don't get why those improvements to rendering couldn't happen in the engine code.

I don't understand why it's being pushed as a solution to everything when it's a solution to such a specific problem and robs Unity of its simplicity and user friendliness. It gets to a point where you just might as well use UE.

Instability

The instability leads to wider problems. Five years ago when you searched for a problem you found someone with the same problem and underneath a solution.

With the fragmentation and the 60 versions of Unity available that's a lot less likely. If you're searching how to do something, the first 5 answers you find are going to be out of date - and they're usually from Unity's own documentation.

Services

So they have a bunch of services. Analytics, crash reporting, cloud build, live ops stuff. They need to make money, that's fair enough.

There's an issue with all the services though - they're all dog shit.

In Summary

An engine works best when it's used as a foundation that can be improved without all the houses built on top of it having to be rebuilt.

There's no doubt that Unity are improving things, but it's like living in a house that is continually being renovated. You've got comfortable in a room, installed all your fitted furniture, decorated all the walls, and then Unity come in and tell you they need to take the floor up again.

Hopefully this is just a bad period for Unity and there will come a time where they stop ripping the floors up.

Turn your phone to view blog list


以上所述就是小编给大家介绍的《What Unity Is Getting Wrong》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

风云Flash ActionScript高级编程艺术

风云Flash ActionScript高级编程艺术

赵英杰 / 第1版 (2006年7月1日) / 2006-7 / 45.00元

本书从基本的Actionscript语言概念开始介绍,配以实际的程序实例并穿插生动的图示说明,深入浅出地讲解Flash ActionScript程序的运用逻辑与概念,让读者从实例中学习进而融会贯通。同时,本书也说明面向对象程序设计(00P)的语法及常用类别实例,提升读者制作F1ash作品的造诣和能力。全书共分为10章,精彩实例包括以三角函数制作的抽奖轮盘,FlashLite手机版孔明棋游戏,Bit......一起来看看 《风云Flash ActionScript高级编程艺术》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具