A different perspective on Unity development.!

Someone posted this on another thread, found it quite an interesting read from an upper tier well know developer who works for many large outfits. I always thought Unity was better suited to 1-2 man teams anyway, so meh.! You might find it interesting though…

https://www.quora.com/Why-dont-big-…or-their-game-development/answer/Mark-Maratea

11 Likes

[quote]
I’d estimate we burn around 20% of our week on “unity issues.” Some weeks are far far worse than others. It also leads to tons of “works on my machine” issues which drag even more people down when there is a bug.
[/quote] I agree. I find for every time saving thing Unity has, it is quickly lost under a pile of sketchy stability and questionable issues I feel could have been avoided, probably years ago. So I’m in complete agreement.

It does state it’s cool for small / tiny games, and I agree with it. I’m currently trying to do a medium sized game and Unity is in a slow state of collapse, hoping things will turn around though.

10 Likes

I’m kind of surprised his reimport only takes 90 minutes.

I really need to pick up an ssd drive at minimum.

2 Likes

I had similar issues in both unity and UE4 at this point. Unreal nukes UDataAssets silently. Unity occasionally does the same. No matter what you pick, there will be some trouble somewhere.

This dude’s offhand statement about double precision is very strange, though.

However, another statement in that thread is worth attention:

It is very close to the truth.

I’ve recently found out that I can make unity api behave in the way I like by slowly introducing replacements and improvements for portions of the framework via extension methods. That seems to be working well.

So, apparently the “close to the truth” way of working with the engine might be starting with prototype and then slowly replacing most of the functionality you had in prototype with your own, reducing the engine to scenegraph renderer/physics framework. I’m not entirely sure, though.

7 Likes

I had the impression that many large teams (certainly more than 2 to 3 people) are using Unity? Like @zombiegorilla 's team for example and I seem to recall seeing mention of other 12 to 20 man teams some place.

Of course, it could be they actually are mainly using it as just an API to render graphics and play music and sounds. I seem to recall @zombiegorilla saying something along the lines of they built their own framework and don’t actually use Unity in the traditional way. So maybe that is how they get around these kind of issues.

Actually does make sense to me because I basically just Unity to draw graphics and play music & sounds. Certainly don’t use the physics system, collision events and all of that other Unity-specific stuff. That always caused me more grief than anything else. And you guys are working on projects way more complex than the stuff I am doing so I would think it has to be a necessity to sort of “roll your own” framework on top of Unity in that case, right?

At any rate 20% of their time per week is crazy. So they basically lose one full day per 5-day standard work week just on what they call “Unity issues”. :hushed:

Yeah that sounds quite accurate - 20%, it’s not a dramatic figure. Unity saves around that time too, so it breaks even and the benefit of choosing Unity as a time saving thing is entirely lost in my view. It’s great for prototyping or if you know your game falls inside the Unity feature set, it can be a good choice. But every game has problems so my feedback bears that in mind, I know clearly what is my problem and what is a problem I’m working around :wink:

My problem is I want things and Unity isn’t there yet. I mean I needed instancing a long time ago. But 5.4 solves that. I need many other things fixed and I know it’s eventually coming. But I can’t plan for eventual things.

9 Likes

There were issues with hot reloading UDataAsset’s that got fixed a while back (mid 2015), not sure if you’re still having issues? I’ve not had any. But anyway I’m not exactly sure it was an offhand statement, it’s not unheard of for games to use double precision physics, I could be wrong but didn’t Star Citizen go down this path?

Also it sounds a bit of an odd way to work, you’d be better off with something like Xenko (or something like it) in which you can change whatever you want whenever… That includes bare bone basics too…!

Although yes, when I used Unity I did pretty much only use the real barebones stuff then added my own…

@GarBenjamin

Hearthstone from what I’ve seen of it, looks like a well thought out great game made by a talented bunch of people. But in terms of actual complexity it ain’t exactly Eve Online is it? It’s a 2D card game that could of honestly been made in anything (sorry Zombie, don’t hit me ARRRHH!))…

3 Likes

At first I thought he might be a certain someone who hangs around on the Unity forum but the name wasn’t the same. Jokes aside though it’s another aspect that you would have to work around and if I’m not mistaken the solution won’t always be the same across all your projects.

Time spent working around limitations that the engine could have handled for you is time that could have been better spent.

4 Likes

Recently the forum kind of gives me the impression the overall mood is a bit down. I’m trying to remember if I’ve ever seen anyone here say “Man, I love working with Unity” or anything positive along those lines. I’m having no trouble remembering there being hundreds of posts complaining about this and that. Is the unreal forum any different? Or is everyone there also complaining about issues with their engine?

3 Likes

That’s not a large team. By a lot of people’s standards, it’s not even a medium size team.

I do wonder how many of these project management issues are architectural issues specific to Unity, or if it’s a case of not wanting to/knowing to plan out an explicit project management schema. If it’s a large enough studio that could make it’s own engine and would have to plan out workflows anyway, you would think they could devised systems that circumvent the worst of it (using separate dlls, scene checkout systems that only grab the assets in the scene).

3 Likes

Unreal has a dedicated feedback section. Unity has them too but everyone seems to use General Discussion instead. :stuck_out_tongue:

3 Likes

@Martin_H For simple games, I still think Unity is pretty sweet and a class leader.

@RockoDyne , that requires time and money… Why bother when solutions that fits their needs already cirumvent major issues?

@Ryiah Unity’s feedback section might as well say error 404.

3 Likes

Ah. I’ve only recently paid attention to it because my launcher was crashing attempting to download 4.12.

Works like this. You make C++ UDataAsset derived class. You save it via project inspector (or whatever it is called). You add one field to it, rebuild and restart the editor.
And boom - upon restart you see “import failed”, asset is gone and so are all references to it. Very easy to reproduce, I think I even reported it.

I honestly don’t care if it is odd or not (no offense intended). The purpose of engine/tool/language is to complement my abilities, so whatever works for me is right, and whatever doesn’t work for me is wrong.

I think working via extension methods might be a good approach, because essentially it is similar to idea where data must be decoupled from the methods. I think it is sorta similar to ideas that were present in lisp and to what I heard of smalltalk. Maya SDK had sorta similar approach in 2007 where they decoupled data from interfaces that process it, and used different prefixes. It worked, sorta made sense, but the process wasn’t organic (Because you had to do that as some sort of “FSomeFunctionInterface.SomeMethod(someData)”. Extension method wraps that into intuitive syntax, plus you can toggle them on/off via namespaces.

The funny thing is that extension methods and yield statement are one of the two features in C# I found interesting. Those aren’t present in C++, although there were proposition for both yield and extension methods to be included into C++ at some point. There was a test implementation for yield in C++, and bjarne stroustroup himself proposed idea of syntax equivalence (where x.someMethod(y) may equal to someMethod(x, y), if X::someMethod(y) does not exist and vice versa)… and that sorta fixes that ancient problem where you had opportunity to declare two versions of equality comparison operators

I also found interesting statement about C# extension methods on some blog… basically a dude wrote something along the lines of “after writing the code using extension methods, I got a very clean and human readable code… but it wasn’t a true OOP, so I scrapped all of it ann decided to never use extension methods ever again”… which sounded very ridiculous to me, because guy valued using OOP approach more than maintaining code readability.

Anyway, I just found that topic interesting.

1 Like

Wasn’t there a “I love unity” thread just a while ago?

Basically, engine have flaws and people that hit those flaws complain about them in their spare time.

I found another gem a while ago:

http://forum.unity3d.com/threads/poor-performance-of-updatedepthtexture-why-is-it-even-needed.197455/
Started in 2013, last post in 2016 arguably not fixed.

The article doesn’t have very much meat too it. Basically it comes down to loosing data on prefabs in version control, and preferring doubles over floats.

I’ve had similar issues with loosing data on prefabs in a team version control environment. At the time we had an artist producing assets and dropping them directly into the assets folder, without opening Unity. Each person who downloaded the commit would then create their own meta data file for the asset, with its own GUID. This could then cascade into a bunch of issues if each person referenced the object in the inspector, and then tried to merge conflicts.

The doubles versus floats issue is probably moot. Unless you are working on an open world game, then it doesn’t matter that much. And if you are building an open world game, then you have a ton of other things to worry about with Unity’s general suitability anyway.

20% of the time dealing with Unity issues seems high to me. But I’d guess to roll your own engine you would be spending at least the same number of man hours on the engine, if not more.

I love working with Unity. :slight_smile:

What you are picking up might be the result of the licensing change. Price increases tend to bring a lot of people out of the wood work to complain about the engine price or features, and then leave again. The mood should pick up once this settles down.

2 Likes

For the Unity Forum’s standards that’s bigger than f’n jupiter man. :wink:

Honestly, I like working with Unity. Except for the EventSystem and StandAloneInputModule which is total friggin trash! TRASH! Overall, Unity is easy as hell to work with.

I am kind of unhappy with the pricing changes though, and the competition from other engines in terms of ease of use is definitely catching up. But I would definitely recommend Unity to anyone who needed a recommendation.

2 Likes

True. I meant in contrast to the article talking about Unity only being good for 2 to 3 people. Not to mention compared to just myself or any of the rest of us sole developers around here even twelve people is a large team. If I had 11 others working on a project… wow I could just relax drink a beer or two and projects would be completed! :slight_smile:

1 Like

Doesn’t seem to be working for Hello Games. How many times have they delayed No Man’s Sky again? :stuck_out_tongue:

3 Likes

Ah, I had to touch this one recently. It is… very weird, frankly.

ExecuteEvents.ExecuteHierarchy(currentHandler, currentEventData, ExecuteEvents.pointerClickHandler);

^^^ I mean, come on