Unity is an extremely powerful engine with really no limits as far as what can be made. Procedural first person massively multiplayer strategy game with 2D levels? Sure, but it would take a long time and work no matter what engine you use.
That bears repeating, because sometimes it gets lost: While Unity makes things a trillion times easier (<- not an exaggeration) for people like me who have little hope of being able to do OpenGL and game engine coding wizardry ourselves, it won’t make games for you. It makes the impossible possible, but anything beyond minigames is still going to take considerable time and effort. For example, it will do nothing to speed up asset creation (which is frequently the biggest effort with games). But it makes integration of your assets and your game vastly easier and less tedious. (In fact, I’ve gotten so used to Unity’s auto-updating that I sometimes find myself expecting other programs to do it…“OK, I saved that image, why the heck isn’t it showing up in Blender?! …oh yeah, I have to do that myself…”)
Yep, you have access to nearly everything (if not everything, I dont know. Everything I’ve ever wanted.) that Mono comes with. So I’ve just been using the MSDN documentation and that has suited me just great. I’m pretty sure it doesn’t come with something like Windows.Forms, but XML, Net stuff, System.Environment, you name it.
With a permanent watermark though. As for the C# questions, all three languages (Javascript, Boo, C#) used by Unity are basically the same when it comes to functionality. I’m sure they all must compile to the same opcode. I pretty much guarantee you’ll spend far more time dealing with the syntax of the Unity commands than the language syntax anyway.
Haha, yes. I’m an awful programmer and an awful artist, but Unity was intuitive to me from the beginning, and I’ve become much better in both areas through it because I don’t have to worry about the middleman. No other engine would ever be suitable for a writer but Unity; it doesn’t limit the imagination, but takes limited effort.
You can build anything you want. The problem is that you have to be very careful with polygon count. Also, if you use interiors, you can have a huge loss in performance, since Unity doesn’t have a interior renderer, so you end up rendering everything around even if you can’t see it.
You can use “normal c#” as long as it is 1.1. Unity at this time supports mono’s c# implementation, which is at version 1.1 (basically there’s no support for generics).
Unity is much faster to learn and create prototypes. It is great for designers you just want to do simple demos (i.e. simple programming) to show their portfolio.
It is really great for programmers to. It has a great functionality, the exposed variables, which lets you tune your variables in order to get the desired behavior.
I only see one “problem” (aside from the interior renderer) with Unity at the time - it’s kind of slow on my machine. Maybe this is because it uses mono, or simply my machine’s specs (I have a powerbook G4 1.67 with a radeon 9700 with 128 mb, and halo, wow and warcraft 3 run fine on it, so I think it’s a mono ‘problem’).