Seems all the cool Flash Platform developers have been trying their hand at Unity these days, so I had to jump in and find out for myself what all the buzz was about.
So, after a week or so of trials and tribulations, I finally completed my first Unity project – a little driving game with a Flintstones style car. Why a Flintstones car? Well, I wanted to use my own models (or those provided by the Unity environment) and, the ugly truth be told, I pretty much suck at 3d modelling. At least a Flintstones car is just a bunch of simple primitives thrown together.
Some stuff I learned, experienced, or would like to learn:
- Make liberal use of public variables and the Unity IDE. When I started, I found myself creating private vars and trying to define them with complicated and convoluted GameObject.Find() calls. Then I realized I could make the variable public and set its content with a dropdown box and suddenly life became a lot more fun.
- Really not impressed with the Unity code editor. I’ve heard you can set your own, but haven’t yet taken the time to figure out how to do so.
- For those of you like me who are both poor 3d modelers and just plain poor and have Swift3D, here’s a quick workflow tip. Create your models in Swift, export to .dae (export object to papervision3d), import the .dae into Blender (free and opensource 3d software) then save the file as a .blend in your unity project assets directory. Unity will import .blend files natively. Sure, I could just learn Blender and cut out the middle man, but the learning curve’s a bit steep and I wanted to focus on Unity not modelling. Don’t worry, it’s on my TODO list…
- The worst experience: I’m not sure what happened – there was no crash or error logged, but halfway or so through the development process I closed Unity. When I opened it back up, it couldn’t read my project’s database. Thankfully, my models and scripts were still there, but I had to create a new project, recreate the terrain, reattach the scripts etc. Even for such a small thing as this, that was an extra day’s worth of re-work. If this had been a huge complex commercial project a disaster like that could have added weeks to the deadline potentially losing a lot of money. Makes me a bit weary shelling out the 1500 bucks on the pro version. But I guess weird shit happens all the time with all software. You pays your money and you takes your chances…
- Still a bit unclear on WheelCollider physics. I’d really like to make a car that doesn’t drive up 90 degree angles. I’m sure it has to do with adjusting friction, but when I played around with it, I found I made the vehicle either undrivable or worse when it comes to climbing up terrains. A bit more research needed here.
While I can’t say I’d be willing to give up Flash for a career in 3d game development (I love the variety Flash offers – you may be making a game one day then a website, RIA, or mobile app the next – beautiful), I’m definitely digging Unity and look forward to doing some more with it.
For anyone who may have missed the link earlier, you can check out the experiment here. Of course you’ll need the Unity plugin. Oh, and make sure you work up a good head of steam going around that first corner – you’ll need it to make it over the Fiery Pit of Doom…
Nice :) I don’t exactly know why, but seeing someone else’s experiments with Unity just inspires me, even if they are just simple examples.
I’m also learning Unity coming from the Flash World (I’m still very basic), it’s a really nice experience because it made me learn and use C# and, with that, Visual Studio (here’s a way to integrate them with Unity http://bit.ly/8lRnZc).
I had problems with Unity too, when trying to “paint” trees on the ground, it always crashed… but it was fixed updating to latest version. Hopefully that bug happened to you won’t show up again in the next update.
Thanks for the comments, Abraham. I’m surprised, coming from the Flash world, you went with C# when Unity’s flavor of javascript is nearly identical to actionscript.
I like the idea on your blog of connecting Flash to Unity via the browser (but your example isn’t working). I was thinking of doing something like that myself, but you just gave me a head start with the scripting.
I’ve heard other complaints about Unity being a bit buggy, but it seems to be improved with each release. Looking forward to my next project already..
Welcome to 3D heaven!!! I added your entry to Burn Rubber Beyottches- Tribute to driving in Unity. You can also find several references to driving tutorials in that entry including some WheelCollider Physics tips and tutorials. http://infiniteunity3d.com/burn-rubber-beiiyotches-a-tribute-to-unity-driving-games/
I look forward to seeing what you build!
Thanks for the entry, IU3D! And for the link as well – lots of great stuff to get started digging through…
I think Unity is an amazing tool to have in the toolbox of any Flasher.
Dittos on the script editor in Unity, but I did find a decent alternative – UnityDevelop (cousin of FalshDevelop) thanks to the guys over at Blurst…
http://technology.blurst.com/unitydevelop-javascript-editor/
Unity will forever be a terrible application in my eyes, until they release a Linux version of their authoring program, and their web plugin. I can’t even play your experiment because of this horrible fact.
Why can’t they (Unity Developers) be more like ShiVa ( http://www.stonetrip.com ) ? The ShiVa web player, as well as their stand-alone desktop player, work perfectly fine in all three desktop operating systems – Linux, Mac, and Windows!
They are also avidly developing an authoring tool that will be just as cross-compatible, and will be releasing that (ShiVa 2.0) sometime around Q4 2010 – Q1 2011.
That’s a lot more than what I can say Unity is developing. I’ve talked to them about a Linux authoring tool, or even just a web player in a Linux flavor, but they have absolutely NO interest in pursuing this.
I believe Stonetrip (the creators of ShiVa), will overtake them because of this. Stonetrip can clearly see the future and because they offer support for all operating systems, I have no doubt they will become the standard for 3D web applications.
Linux is the most used operating system around the world (excluding U.S. and Europe) including developing countries such as India and China. When these developing countries become as advanced and technological as the U.S. and Europe, (which will occur in less than 10 years the way things are going) with the vast majority using Linux, what does that say for web application developers? That’s an entire untapped market of billions of people.
Until Unity shows interest in Linux, I will not show interest in Unity. ShiVa offers more advanced features, and I will stick with them until (IF) something better ever comes along.
~ Greg
@Sam – thanks for that great editor link. I use FlashDevelop on a daily basis, so a modified version for Unity is exactly what I was looking for.
@Greg – Have to admit, not being a Linux user myself, I rarely give it much thought. Some interesting points though. And I’m going to check out ShiVa. Surprised I haven’t heard of it before.
Whenever you find a bug in Unity (especially one as severe as the one you found), please take a few minutes to try and recall what lead up to the incident and try if you can reproduce it. Then report it using the bug reporter tool.
While we do a lot of automated as well as manual testig in house, we simply cannot cover all bases – like everyone else.
We’ll try to get in as many bugfixes as possible on top of feature additions, but deal breakers such as the one you found ofcourse take priority.
Oh and you can set up Unity to use your favourite code editor in the application settings. We merely include a standard one for those who have not made their choise yet. Personally I use TextMate on the mac – although MonoDevelop is showing a lot of promise.
Good post.
I pretty much switched to C# just because of how bad the unity script editor was (using visual studio express C#). Having code completion and better debugging tools was all it took. I am still a noob, but having good 3d assets with animations really adds to the production time with what I have done.
I enjoyed the Flinstone ride.
Well, without your post I would not been aware of unity… Anyway, I am probably not cool ;)
I donwloaded it, amazing at first – but generally spoken – you are right: Flash is more versatile. Getting into some serious 3d game development requires a team. For instance: some guy with Blender experience for the models *wink*
:)
cheers,
marco