I normally code my admittedly simple games by hand in either Assembly or C but I'm looking to go a little more high level. I also want to build more modern skills so I'm looking at UDK. What are the pro's and cons of it for indie 3D development. I plan to use graphics, control and physics from the engine so I'm wondering if I should also consider source engine or anything else?
UDK is a proven SDK, used in many AAA titles. But as with any other professional tools, it has a quite steep learning curve. The 25% royalty term in the Commercial Licensing is also kind of painful. We evaluated it when we were planning to build a game for presentation purposes in our company.
There are other good alternatives :
- Unity, mature, cross-platform (Windows, Mac, Web, iPhone, iPad, and even Android), it also has a free version. I think this would suit your needs better, this is what we finally end up with.
- Torque Game Engine, IMHO not as polished as Unity, but worth a look.
There is also another good, lower-level library that you might be interested to check out:
- Ogre3D, open-source 3D rendering engine. It is a mature, stable rendering engine that has a very large user base. We used it in our projects. It is easily integrated with OIS for input, has bindings for Newton, PhysX, ODE & Bullet physics engines.
jMonkeyEngine is a very good, general purpose, open source game engine.
There's a long feature list you can use to see if it covers your needs but in my experience it has pretty much everything you are likely to want for an indie game.
It runs on the JVM so you can get all the higher-level advantages of the managed Java runtime environment (proper garbage collection, multi-threading, cross platform etc.). Coding is normally in Java but you can also use other JVM langauges relatively easily (Scala, Clojure etc.)
Try 001. It's mediocre for experienced game designers, but really nice for people new to the game designing world.