Jump to content

  • Log In with Google      Sign In   
  • Create Account


We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.

Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!

What are the downsides to using Unity?

Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
25 replies to this topic

#21 MrDaaark   Members   -  Reputation: 3555


Posted 20 August 2012 - 05:33 AM

[ Daaark ] Getting the correct orientation is not a bug nor an inconvenience. It's just the coord. system they use ( common y-up system ). The problem lies rather with the authoring tools [ z-up for 3ds max for example :| ]. Nothing some decent planning won't take care of.

Actually, it's both a bug,and an inconvenience. Every program uses their own coordinate system, this is nothing new. But when the conversations are made, the new imported asset should have a rotation of 0,0,0. Unity's fbx import will convert it, but have non zero values in the rotation fields, with no way to set the default rotation to identity (0,0,0). This causes nothing but problems. Especially when writing scripts to instantiate objects and have them facing the right direction. It has to be relative to the mystery rotations that came in on import.

If Unity wanted to do it right, they'd actually rotate the data on import instead of just adding them to the model's rotation data. If I can edit normals, tangents, lightmap UVs, and everything else in the object inspector, I should be able to fix the default rotation too.


#22 Tudor Nita   Members   -  Reputation: 121


Posted 20 August 2012 - 05:45 AM

Unity's fbx import will convert it, but have non zero values in the rotation fields, with no way to set the default rotation to identity (0,0,0).

Especially when writing scripts to instantiate objects

I'll have to agree on that. Was thinking from a manual import POV. However I remember you can get a 0,0,0 rotation if you pre-rotate the object/ pivot in 3DS Max before exporting. Will have to check this out again as my memory is not to be trusted.

#23 MrDaaark   Members   -  Reputation: 3555


Posted 20 August 2012 - 06:05 AM

We're not all using 3ds max. It doesn't matter what any of the DCC programs do. It matters how Unity handles it.

My exporter in Blender handles the conversion to Unity's coordinate system properly. It does a (+/-)90 X rotation, and it's all good. Unity undoes it, and and then adds the -90 to the rotation field. *banging head on desk*. Now I have to remember this when spawning objects. I also often have to do a -180 on the Z. So if I change my object a bit I have to go back and possibly re-edit the bullshit layers of rotations, and it's a nightmare to maintain.

It comes up in the forums and answers wiki all the time, and they get flooded with answers by people who don't understand the problem. They want to charge 1500 for the pro version, and can't take 2 minutes to add a button to bake in a new default rotation. It's a button in the inspector and a for-loop.

#24 clb   Members   -  Reputation: 1794


Posted 20 August 2012 - 06:10 AM

Unity has some serious memory management issues. A lot of people get hit by performance spikes (5-50msecs) caused by poor Mono garbage collector. There are no good mechanisms to profile memory usage and detect where your memory is leaking/consumed. The GUI system behaves badly with this respect. These issues are worsened by crash bugs in Mono 2.6, googling for "too many root sets" and "too many heap sections" will find some links [1], [2], [3], [4], [5]. The common practices are to avoid allocating new objects while your game is running, to avoid the risk of fragmenting the Mono heap to the point where it crashes.

Not happy to say that so far (about three years of Unity development), we haven't been able to write an application for Unity that could sustain a stable uptime of a week without crashing in Mono/GC. Some apps we've built do run ok for about 24h, but they've mostly been an exception. Whenever using a closed source middleware/engine, one naturally is afraid of finding these kind of showstoppers, but I think the above issue is the only one we've met with Unity. If writing server software/long uptime is not a particularly important goal, then I think Unity's gonna be ok.
Me+PC=clb.demon.fi | C++ Math and Geometry library: MathGeoLib, test it live! | C++ Game Networking: kNet | 2D Bin Packing: RectangleBinPack | Use gcc/clang/emcc from VS: vs-tool | Resume+Portfolio | gfxapi, test it live!

#25 Mayple   Members   -  Reputation: 187


Posted 20 August 2012 - 09:11 AM


I see your point about making a game engine from scratch, but I also see a new persons development stand point. I highly doubt that the first thing you did when you first learned programming was take a skill you already were familiar with and start to write SDL shaders or GUI handling from I/O devices on day one. I hardly doubt that any tutorial you learned from also sayed that you need to tackle the most complex thing there is to bug's and said, "Don't worry you need to learn to fly in order to walk." My point being is the OP learning from other engines and improving on it will help him 100x more than just throwing him with a bunch of libraries with little to no programming experiance and say make something of it. Programming is easy to some and worse than algrebra to others. Some understand basic logic and finite math, where as others don't understand that computers are as smart as you tell them to be. Telling someone to grow balls right up is not the right attitude, if anything you linking a game engine source with some examples to an easy to use game engine like Pong, Tetris for math matrix handles or even a clone of Angry Birds to show collision and vectors would be more helpful than all of your posts combined. There is alot more to just 'learning programming'.

With that being said,

My experiance with Unity3D is a short lived one sadly. We had an issue when it came to 2D assets and applying set textures to a 3D object on the scene. The engine is built for 3D and only wants to render in 3D. When force to use a 2D asset, when applying a 3D asset to the scene the game engine needs some custom scripts to run. All in all we found it a little to troubling and ditched Unity3D and started to tear down UDK. Thats where we are right now. In my scope of using it this is where I had issues:

-Files get messy because Unity wants to control them all
-Everytime we update a build we have to create a fresh install and re-distro to everyone vs a simple patch change. Very annoying when we do 30-40 builds a week.
-Had a couple lock ups happen when pre-defined scripts would attempt to run during play testing.
-As stated by CLB we also has memory management issues, ours came during development more than anything because of the scripts issue.
-Importing models gave us issues when we used Cell Shaded. It would mess up the draw points for outlines and everyone would have mustaches as it would start tracing the models in a wierd pattern it apparently thought was the priorities or the way the model was built. Not really sure what it was doing but our engineer said it to me so I said Ok. Point being, it hated it.

I usually just give my 2 cents, but since most of the people I meet are stubborn I give a 1$ so my advice isn't lost via exchange rate.

#26 MrDaaark   Members   -  Reputation: 3555


Posted 21 August 2012 - 05:17 AM

Another downside: Every week they fix 3 bugs and issue a new 500+MB download instead of a small patch.

Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.