Unity 2.5 review (windows version)

Unity 3D Review

I work for Rezzable, a company dealing in 3D content and entertainment. This review of Unity 3D is based on a week’s worth of examination and testing. It should not be considered a conclusive opinion based on the production of a final 3d game product, but the beginning opinion of a reasonably-well educated creative.

I am reasonably knowledgeable in the following areas (reasonably means I have a passable skill level in these areas, but should not be considered and expert):
3D modeling, including making meshes designed to be animated using skeletal systems.
UV skinning and texturing, including using several textures to combine basic color maps, shine, effects, and the like.
Adding a skeleton to a mesh, balancing and adjusting, and finally animating a mesh using a skeleton.
Particle and special effects use in a 3d game environment.
Sound effects and music.
Level and setting construction (mostly for SecondLife, but I have experience with other 3D game engines)
Scripting and Programming (multitude of languages, but currently expert level in LSL for SecondLife)
Storyboarding and fictional writing.

I purchased Unity 3D 2.5 Indy version for $199 on the first day of it’s release. After downloading the file and a momentary delay trying to enter the purchase key while the Unity servers were down, I was able to get full access to my new design software. I will review and comment on each of the listed features below:

Unity is a multiplatform game development tool, designed from the start to ease creation. A fully integrated professional application, Unity just happens to contain the most powerful engine this side of a million dollars.

Integrated Editor: “Everything is done through Unity’s simple user interface. Thousands of hours of thought and spit-polish have gone into it.”
This is probably one of the best features of Unity. While the editor does not do everything, it does combine external editors for scripting, textures, and model editing very cleanly. It allow you to easily sort all of your assets and files in one place, acting as one of the most organizable interfaces I’ve ever seen.

Graphical Power: “Unity has a highly optimized graphics pipeline for both DirectX and OpenGL.”
And uses them well. I was able to have very high resolution meshes (such as poser 5 models) on the screen without significant framerate drop. It’s a very professional engine, and does run on multiple computer configurations. It seems capable of turning off and on features and the computer can handle them, even in the web player.

Asset Importing: “All major file formats are supported, and almost any art application can be used with Unity.”
To point out how easy it is to import assets: I dropped a model that was boned and animated into the asset folder of my Unity project, and it converted it in mere seconds. I then dropped it into my scene, and with a single script consisting of just a half dozen lines of code, got it to loop the animation and move around the scene. There was no special modifications. No checking Z rotations. No checking the rotation of bone sets to make sure they did not crumple up my model like a paper in the wastebasket. It just worked.
I was able to adjust the size of the model for the scene with a single modifier that worked for the model AND the skeleton.
Textures, including such “oddities” as TGA, imported fine.
Scripts are text files, and edited in Scite in the windows version of Unity 3D. You can redirect it to other editors if you are so inclined.

One-Click Deployment: “Unity supports a wide range of platforms when you release your work to the come alive.”
And they all just WORK. Again, web deployment, streaming web deployment, windows, mac. I have been reading the forums, and have even found that the web deployment can run network code to a server, allowing fully streaming games from a website that interact with other players.
Unity 3d is not perfect, but is VERY close to it. I did find a few issues I did not like. For example, it cannot accept command line input for programs you create. This means that full featured screen savers are NOT possible for the PC. Oh, you can work around that, but it seems a serious missing link.

Wii Publishing: “The industry’s most popular console just got a lot easier to develop for…”
I have no idea about this. Contact Unity at sales@unity3d.com for more info.

iPhone Publishing: “Revolutionary game development comes to a revolutionary device.”
And costs an additional $399.00, minimum. Was not reviewed.

Shaders: “Unity’s shader system combines ease of use, flexibility and performance.”
Indy does come with 40 built in shaders and allows you to program in more, but Indy does not allow ‘postprocessing’ shaders. That needs Pro version. Postprocessing allows such things as reflection, refraction, glow, and the like.

Terrains: “Vast, densely foliaged landscapes that run smoothly on low-end hardware.”
Tried it, it’s true, so long as you keep your tree and plant models reasonable. They use a billboarding effect that makes an image of the tree to be used at far distances, and it works WELL!

Networking: “Go from single-player to full realtime multiplayer games.”
I have not looked closely at this yet, but it IS a full features network system, and also can access HTTP servers to connect with PHP or other scripted websites. This allows the downloading of images, for example, for display in the 3D interface. Their website contains a ton of network examples dealing with multiple player situations, allowing you to learn from pre-built code.

Physics: “Bring your interactions to life with the built-in Ageia PhysX™ physics engine.”
I have not examined this closely, but seems to be a reasonable physics engine that can pull it’s own weight. (pun intended)

Audio Video: “Mix realtime 3D graphics with streamed audio and video.”
Sound effects and music playback. Worked. Nuff said.

Scripting: “Blazing fast .NET-based JavaScript and C#, with rich libraries and great documentation.”
Scripting, on the other hand, is not so easy. Good news is, you can learn any of the THREE languages that are built into Unity: C#, JavaScript (Also called UnityScript), and Boo. Bad news? Even the built in scripts are scattered across the available options, so you might have one tutorial for how to make a character move in JavaScript, and another on how to make your gun shoot said character in C#. Good luck learning to script from the ground up here, it’s kind of a madhouse. I generally advise using JavaScript, since it SEEMS to be easier of the three. (Feel free to call me a Fool for my opinion. I’m used to it.)

Unity Asset Server: “The Unity Asset Server is an add-on product which adds version control to Unity.”
It should be noted this is only for Unity PRO, and also costs an additional $499.00
Shadow Light: “Realtime soft-shadows and baked lightmaps, spiced up with halos and lens flares.”
You can bake lightmaps into terrain, but realtime shadows are for PRO only. You can use cookie shadows projected by lamps to fake ‘spot shadows’ easily. Lens flares from lights are also quite usable in the Indy version.

Documentation: “We provide you with step by step tutorials, documentation and example projects.”
I was able to learn the Unity interface in a few days. It has a wonderful set of video and text tutorials and help files.
The forums are a bit aggressive at times, but have been helpful with my questions. Overall, you’re fine while using them so long as you follow the basics and search for enough info to ask an intelligent question. Asking “How do you network an MMO in Unity?” is asking for a whipping.

Final Opinions:
I have used several environments for design work in the last few years: SecondLife by Linden Lab, Shiva 3D by StoneTrip, and Unity 3D by Unity. Of the three, Unity allows the greatest versatility with the least amount of frustration.

I have never used anything that just let me WORK before, without jumping through some kind of hoop. Scripting issues aside, I just drop in the models and textures I need, add some sounds, and click Build and it makes the final file for your 3D game. Where I come from, features can never excuse an interface that fights you. This interface stays out of your way and salutes when you give it an order.

Foolish Frost
www.Rezzable.com

135212–4976–$unity_3d_review_998.pdf (88.8 KB)

Is it too aggressive to point out that the product is just called “Unity”? :slight_smile: The website is unity3d.com, but that’s only because unity.com was already taken no doubt, and the company is Unity Technologies. Just to nitpick a nice review. Quite a leap of faith to immediately buy when you could have used it free for a month!

–Eric

Yup, far too aggressive. I’m wounded, and shall now take your statement as a personal insult, screaming at you ever chance that we might meet.

Or not…

Seriously, don’t care about the name, just making sure they know WHAT Unity I’m talking about.

Enjoy!

Yep, Unity 3D sounds good to me.

Nice review, don’t agree on the scripting part. If you think scripting in Unity is hard, try the other engines. :smile:

Oh, I don’t think it’s HARD, I just think it’s disorganized. It’s hard to keep track of what I’m trying to learn when parts of it are in 3 differant languages.

Mind you, I’ve actually not seen a single sample of Boo yet, so really, it’s just C# and JS running the show.

I agree that it is a bit cluttered that the tutorials are written in multiple languages (I was not aware of this) - they ought to all be in JavaScript since that is what is used in the unity documentation.

Notice though that you can use a mix of all three languages in the same project as long as you have scripts which you need to reference compile before scripts in another language which need to reference them. For more information, have a look at this document: Unity - Scripting API:

I was surprised about your comment on the community since this is often a point that is praised much by new users. Although I wouldn’t be surprised that the influx of a lot of new users combined with the poor search facilities on the forum result in a lot of very common questions being asked time and time again (which could tick off some users).

To combat this issue unity has now added a FAQ stickie to each subforum - a feature long requested and a good idea. Some are placeholders at the moment and I think they ought to be marked more clearly.

Regarding searching, I know unity are working on this, but meanwhile, I recommend you use google to search the forums like many others do - simply put “site: forum.unity3d.com search term” in google and you’re golden. To automate this a bit more, I recommend using the InquisitorX plugin for your favourite browser which allows you to add a custom search engine - like the google site search described above - to your browsers search field.

From what I recall the vast majority of code examples in the Unity docs and tutorials are in JS with only a very occasional nod to C#. Unless you mean the FPS tutorial, which I never did, so I don’t know. That thing is ancient at this stage, though, and I don’t think it’s going to be updated.

Some of the standard asset scripts are C# as well, which is probably the more confusing thing for new users, since they generally tend to go for JS unless they have prior C# experience (and if they do know C# already they can likely parse the JS examples easily enough).

So yeah, long and the short of it, great review!

That’s actually one of the best engine available on the market right now.

I actually disagree with you on this. One of the majors problem with Unity is their Audio features. As you said you can play sound and music but that’s it. It’s a shame we don’t have access to more cool stuff (see FMOD to see what I mean by cool features)

Game development is one of the hardest field in Computer Science. Trust me, Unity is really, really easy compared to other engines out there. Of course you’ll always find easier but it means you lose in terms of flexibility.
I mean, as a developer, it’s as if I was saying Cheetah3D is hard. It is for me because I don’t know how to model or animate but that doesn’t make it right or fair to the software.

Again I disagree. I think we’re a pretty nice community. there’s always a case where an answer is misinterpreted or the poster might have had a bad day. But overall, I think there’s a great interaction between artists and developers (which is great because it’s usually not really the same kind of persons/attitude).

I agree on this one! :smile:

Hope you don’t take my post the wrong way. I was just trying to give my point of view… for what it’s worth anyway :stuck_out_tongue:

Reviews are nothing more than opinions backed by situation and facts. Taking offense at people seeing the world differently is like complaining about you liking different ice-cream. It’s just silly. I enjoy knowing what others think!

But I didn’t say it was hard to learn scripting, I meant it was hard to learn it HERE, since there is not a single unified method. Trying to translate designs between two computer languages can be hard for some. Especially if they are learning them from here.

True… to a point. Some would call that a feature as you can use whatever language you are most comfortable with–even mixing languages if something is better implemented in one or the other. :wink:

I agree that if you are not already familiar with programming in a Java or C++ like language (or even better C# or JavaScript), it could be confusing to jump in. Otherwise, it is more of a flexibility thing. Unity is not really a great “beginner’s jumping-off point” as such (at the moment), but is very enjoyable to script right off the bat for someone with a specific kind of background.

I was one of the “Beginners jumping off”. I was bat shit stupid when it came to programming several months ago. But I flipped through the 3d platform tutorial, flipped through the scripting manual, and saw lots of example code on the forums and I was able to get a solid footing on it.

I couldn’t do THAT with the Unreal Engine. :smile:

I would be interested in knowing how many people use Boo. I’ve started messing with Python on other projects and I like it, so I kind of want to try Boo in Unity, but I don’t want to have 3 different languages in one project either (I’m already using C# and JS). Next project I start, Boo. :slight_smile:

I’ve started a poll a while back (actually, just a bit longer ago than this posting, sorry for reviving it from the history books). That’s certainly not statistically representative but at least it’s a start:

Boo, C# and JavaScript in Unity - Experiences and Opinions