I'm developing a game on Windows to help stroke patients perform rehabilitation exercises using the Kinect for Windows. Currently we are using the OGRE graphics engine, but the graphics are very simple/ugly so we are considering switching to Unity to facilitate adding assets and improving the environments and character animation, and I'm wondering how time-consuming this has been for others.
Has anyone made this switch? If so I would really appreciate it if we could learn from your experience by answering 3 questions:
How long did it take to learn how to use Unity, and what was your prior level of expertise with it?
What was the nature of your game, and how long did it take to port over to Unity?
Could you also describe some of the benefits derived from the switch?
For improving character animation I can understand if you wanted to use mechanim ... otherwise you are just scripting a character controller, and there's already a pretty robust controller in the Ogre samplebrowser (where you run around sinbad and chop with swords and etc). For graphics, Unity is the same thing as Ogre. Your graphics are only going to look as good as your textures and shaders. Unity provides very basic shaders to get you started.
Unity took me about 2 days to learn effectively. You copy fbx files into a folder, drag and drop them in a scene, drag and drop lights/cameras, and drag and drop scripts around. How long it takes you to port your project depends on how many things you need to drag/drop and how fast you can code in JavaScript/C#. As for the advantages of Unity, they actually employ people whose job description is Product Evangelist, so you should post in their forums and they will have no problem explaining the benefits
saejox wrote:You'll get better productivity from Unity but lose a lot of performance and flexibility.
I think you can get the same productivity from an Ogre project, but of course only after you have a framework in place and subsystems integrated. If you haven't got that, then Unity can give you a decent jumpstart, but then you can only deploy to supported platforms for which you have a license (boooo! hehe)
The odds are that people who moved from ogre to unity are probably hanging around the unity forums, not the ogre forums.
As to simple/ugly graphics...
There is nothing that Unity can draw that Ogre can't draw identically. There may be performance differences (such as Unity including Umbra occlusion culling, or Ogre allowing lower level control of the rendering), but visually Unity won't look any better given the same art assets and shaders.
Although Ogre is equally or even more powerful than Unity in terms of being capable of achieving the same quality of output, my suspicion is that I can achieve that same output with a lot less time and hassle in Unity. I work with a small team of developers with no prior game development experience and minimal graphics expertise, so I think they might benefit from an extensive asset store of pre-existing 3D models, ease of integrating environment design, animation, and rendering, and a user-friendly GUI interface. Just to be sure though, I wanted to hear from actual experiences of people who have tried both systems.
No question Unity is going to be easier to use (especially w/o game dev experience) but if you are expecting your graphics to automatically look better you will probably be disappointed.
@davidschacter - I think the main issue with your question is it's not a fair comparison. Ogre has never intended itself to be a full featured game engine, in fact, it's not a game engine at all. As the name "ogre" implies, it's an open-source rendering engine. So, ease of use of Unity (a full game engine) of course will be easier, especially as it has a commercial team behind it. You'll have to pay licensing and you'll also be limited to work within the bounds of their engine. The real strength of ogre is the fact that you can customize your game from the ground up for your purpose, however, that also means more coding.
Speed of development is definitely an issue (if you haven't already assembled a decent framework) that Unity handles well, and the store has useful stuff.
So you already joined 2 days ago and now are porting to unity? lol
I have to think this is some spam/marketing from unity which is in every forum for every other engine these days.
But I think in general porting is harder than you'd think. For porting from a C++ to C++ is bad enough, but Unity is completely different from Ogre so it's not really porting it's simply redoing it.
Herb wrote:@davidschacter - I think the main issue with your question is it's not a fair comparison.
Nobody asked about it being fair. You don't need to defend Ogre's honour... for some projects/teams it's the best option and for others it definitely isn't. I think the OP explained quite well why Ogre isn't ideal - Unity sounds a perfect fit especially the toolchain for artwork which I find one of the more cumbersome things with Ogre.
And yes, OP ask on the Unity forums "has anyone ported a project from Ogre3D". If you wouldn't mind sharing what you find, that would be interesting to read. It could be a lot of work if you have a substantial codebase, especially if you're using Ogre with C++ rather than a .net port, as you'd have to rewrite everything from scratch (I think) in JS or C#.
Looking to find experienced Ogre & shader developers/artists. PM me with a contact email address if interested.
@simedj - Settle down there bud....I'm not trying to "defend" ogre's honor. The original comparison was of a rendering engine and a full featured game engine with toolset which are not the same thing, it can't be a straight comparison. So, my point was not that one was "better" than another, but that they were difficult to compare as they have different objectives / features. There are huge advantages of using a tool like Unity as you mention, and sometimes it can be the best solution for someone. Ogre is not the best fit for everyone and every project, but that was not the point of my post if you read it fully. I do think we are in agreement that a port to Unity from a Ogre code base would not be trivial though, especially if the code base is in C++.
I was thinking about this recently (seeing the speed of some Unity projects seem to make), though I don't know how accurate my knowledge/thoughts are on this.
The way I understand it - Unity has a drag and drop editor for creating a scene, then you hit play, test whatever, then tweak the editor and hit play again. In the begining of my project I would edit C++ for positions of hard coded objects to create my scene which was pretty bad (someoen in Unity would drag the object in the Unity editor to position it), then I had my game engine read and create game objects via text files (including positions etc), then I created an in game "editor." So I could drag and drop stuff to test new features.
But here's the thing - my game engine reading in text files is now a major feature - modding. That in game editor is now a major feature player creating custom maps and setting up instant action scenarios. I often look at Kickstarters and see stretch goals of "modding support" for $100K (though often less) and editors for some other amount, and I say - man I had to do that as part of me creating the game and it adds to much value to the player (and myself). Most Kickstarter projects seem to be in Unity (most projects seem to be Unity). So my point is - in the long term the "Ogre" way (generalizing/simplifying) gets to the same point and maybe even surpasses for the player - so really the question becomes what do you as a developer enjoy more? I enjoy C++ in Visual Studio, I just like that feeling of having a theoretical 100% control.
Currently we are using the OGRE graphics engine, but the graphics are very simple/ugly
No question Unity is going to be easier to use (especially w/o game dev experience) but if you are expecting your graphics to automatically look better you will probably be disappointed.
Didn't you hear? Unity implemted a new Command into their next realese:
chaosavy wrote:But here's the thing - my game engine reading in text files is now a major feature - modding. That in game editor is now a major feature player creating custom maps and setting up instant action scenarios. I often look at Kickstarters and see stretch goals of "modding support" for $100K (though often less) and editors for some other amount, and I say - man I had to do that as part of me creating the game and it adds to much value to the player (and myself). Most Kickstarter projects seem to be in Unity (most projects seem to be Unity). So my point is - in the long term the "Ogre" way (generalizing/simplifying) gets to the same point and maybe even surpasses for the player - so really the question becomes what do you as a developer enjoy more? I enjoy C++ in Visual Studio, I just like that feeling of having a theoretical 100% control.
i agree... i'm hitting an issue where paged geometry with static batching is taking too much process memory. paging raw entities saves tons of memory but the framerate takes a big hit.
what i *need* is hardware instancing and with ogre i now get that for free and if it didn't i could add it myself. i happened to notice unity doesn't support hardware instancing so you'd be forced to write an external module or be at their mercy.