Let's talk about Unity again. I know I brought this up some time in the past on one of the forums. But I've taken a much harder look at Unity over the last week or two.
So, would you guys think I'm totally flaky if I were to stop work on Enzyme and start Dungeon Crawl back up again, using Unity rather than C4?
Here is the reason. I've looked over my design notes for Enzyme and compared it against the feature set of Unity, and decided I'm basically trying to rebuild that engine, heh. It has (as far as I can tell) everything in it I wanted to put into Enzyme (and actually a bit more). Now, I've been successful in adding a lot of the parts of the engine I wanted in. But even so, we are still three to five years away from having a working tool that we can build a game with.
When I originally went looking for an engine for Dungeon Crawl, I took a look at Unity. But at the time, it wasn't available for PC, it was only usable on the Mac. Which I remember thinking was too bad, because it looked like a great engine. Ultimately, of course, we went with C4. Since that time, Unity has been ported to PC, and by all accounts, it's a good port.
The danger with using a pre-existing engine is the exact problem we ran into with C4. If it doesn't do something you want, you either have to lose that feature in your game, or figure out some workaround, or code your own solution. C4, while it is a great engine, has some serious limitations, and I found it just couldn't do what I wanted and needed it to do (the most obvious offender being the patching system). Now, with C4 you have source code, which in theory means you can code whatever you need if the engine doesn't support it directly. In practice, that is bullox. If you have minor changes, you can probably handle merging new engine builds together. But if you get into major system changes, you're in for a nightmare. Another major issue I had with C4 was the asset import system was not robust. If you didn't have your data in a perfect export format in your asset creation program, it wouldn't survive the transition into C4. That may not seem like a big deal, but open up export functions in Maya sometime and take a look at all the settings. And then try to guess (because it isn't documented anywhere) which combination of settings you need to use to get your asset into the engine. It was a frustrating mess, in all honesty. And one you had to go through every single time because each asset is a bit different.
It was because of the problems I had with C4 that Enzyme was born.
But as far as those specific issues are concerned, Unity seems to have them covered:
Networking: Unity runs MMOGs. It therefore can handle patching systems as well. I have no worries on that front.
Assets: Couldn't be simpler. Drop your asset into your game folder (in its native format). Unity will read it and convert it to it's own internal format (sound familiar? That is what I did with Enzyme with png files, and what I had planned for many other formats as well). No exporting required (for Maya, you do have to save the model/animation data out to a ddx format rather than the native Maya format, but that's a simple process).
That's not to say Unity is perfect. There are some cons. But they seem to be relatively minor.
1) Cost: $1,500 - yipes. However, there is a free version which I can use (and even publish a commercial game with) which is not too badly handicapped (you don't get deferred lighting is the big one). I'm thinking what I could do here is use the free version (for at least a year or so) until I'm totally convinced I won't have issues with the engine, and then upgrade to the paid version.
2) No source code - Yeah, we don't get source code. But, I think having source code is way overrated (for the reason I stated above). Plus, it fully supports C++ plugins that you can write (sound familiar??) and can be called from script. So if I really need a custom function, I can still write one.
The point of this is that I want to write my game. Having an engine would be great, but do I really want to spend three to five years writing one? Or do I want to start putting together my dungeon crawler? Basically, is three to five years of my time worth $1,500?
Of course, you have to take into account the possibility that I will run into a brick wall with Unity the same way I did with C4. If that were to happen, we'd be right back here firing up Enzyme again. So yeah, it's a risk.
Anyone have any opinions?
[EDIT]BTW, if you want to see some Unity features, here is a partial list:
and this is an overview of the engine itself (hit the grey button at the bottom for further pages).
Now, you have to be careful, because of course they are trying to sell an engine, and will be hyping their features. The trick is to look for what they don't talk about (and for that, you need to have a pretty good understanding of what a modern engine should have in it). But it's a pretty decent overview, anyway.