Posted 26 April 2012 - 05:09 PM
I would pick a managed language, such as python, and get a 2d library for it like pygame or pyglet. Study the language first and then write some games with the library. I still consider it the best way to get a general appreciation for game programming. You will do your own rectangular collision algorithms and simple physics, and possibly a-star path finding from a top view, and have a general idea how everything works.
I think it would be possible to also start with an engine like Unity, but it leaves a lot of holes in your knowledge base since most things are already done like collision detection, etc. 2d games are also easier to get resources for and are more elemental, so it helps from a game design stand point. The only real problem is that 2d animation is horribly complicated, so you have to keep it really simple on that end. That's sort of better too, though, because you will write games that are games, not graphics.
Another 2d engine choice might be flashpunk if you are more interested in web games. I think python is really the best starting language, though, and has many purposes, so will always be useful.
What generally happens is people choose an engine like Unity, then decide to do something like an rpg because getting models in the engine and using someone else's script is pretty easy. They find out that they can't produce enough models and they have to write their own scripts which are quite a bit of work and eventually give up. If they had started out with realistic expectations and had a little patience, they may have found a hobby or career they enjoyed. I have known a lot of people that have started rpg's, but none that have finished one.
Currently using Blender and Unity.