Hello, I don’t have C4, but I am looking at it as an additional engine to use in the future. With the C4 engine, all of the graphics code is taken care of for you, but you have to program all of your game code in C++.
The thing with Unity is you can create things extremely fast. There is no 3D game software I know of that can get such great results so fast. You still have to program your game code of course, but it is a lot faster. I love it.
That being said though, there are a few things that Unity is missing which many people consider standard features for any level game engine produced now. Unity for example doesn’t have shadows of any type. You can get around that by using a projector with a blob shader to project a shadow-like effect onto a surface, but it wont be correct. Another thing to be aware of is to do most high-end eyecandy you need Unity Pro. You can’t do glow, reflections, refractions, ie: anything that requires render-to-texture, or any full screen post processing effects like blur, ect, in Unity indie. You need pro for that.
Unity does have a full shader language (in both indie and pro) that you have access to though, and you also can write vertex and fragment programs and such. Very powerful.
Unity doesn’t have a portal or LOD system, but with a little creativity you can work your own out to a fairly large extent.
Unity also doesn’t have built-in multiplayer support. You do have full access to the microsoft .net networking classes so you can write your own network communication code but you will have to write network code for every thing you need to send yourself (object position, effects, physics, etc.). I am sure it can be done, and some are attempting it, but it will be a lot of work.
Unity’s sounds system is very basic. It has 3D sound, but no controls over it besides volume and range. You can’t for example play a certain part of a sound file at a certain speed, or apply post effects to the sound. You can just play, pause, stop, and adjust volume of the sound. Fine for some peoples uses, not enough for others.
With Unity indie you can only do stuff within the scripting engine, you can’t reference any external components (other than .net of course). You need pro if you want to interface your own C/C++ plugins. (like a better sound system
) Not a big deal, just something to be aware of.
Unity is far easier to use than C4 would be, and I personally love it. Some things I am waiting for, (like some kind of shadows, shadows have been standard in games for a long time) but all in all I love Unity.
I think at this point it all comes down to what type of game you are going to make, how much control you want over the engine (you still get a lot with Unity), and what effects you want to produce. If you want an outdoor game with huge terrains, C4 would be a better choice, but you would have to write your own terrain system (until they build one), but if you want to build your game or demo quickly, Unity is probably the way to go.
I hope that helps,
-Jeremy