Since you have a programming base, it is easy to create games in Flash which supports object oriented programming.
In fact, Flash is one of the most popular platforms (along with Java) for creating 2D games.
1. Creativity & Imagination
2. A good storyboard (like a series of drawn pictures that visually explains what your story is gonna look like)
3. A good toolset like 3D Magix or Maya
I've been doing animation since 2002 and have produced 30 sec shots that took about a week to create.
Everything...