First what you will want to do is make sure you have all the right software. This will be including various tools such as photo editing software, modeling software or sprite animator software, game engine tools or IDE applications.
When selecting the software you want to use consider price, compatibility, and what you can & can't do with it. You may want several image photo editing software, including adobe photoshop, illustrator, gimp, inkscape, or pretty much any basic paint tool that supports png or tga formats with transparency.
For modeling selection there is nearly always a cost, some times even the free software doesn't allow commercial use, you have to becareful with what you get because many modeling softwares lack basic functionality, over complicate things, and include unnessary steps. I personally prefer milkshape3d over all, but blender is fine so long as you set it up properly and take the time to learn it, it takes a long while to do so and the GUI in blender is always changing and it is a real mess but in functionality wise it is decent. Others will prefer 3dsmax, maya, and much more it really is your own taste. I prefer the closest thing to drafting out a model though, with very decent amount of export types with animations too.
If you are not making a 3d game or need 2d animated assets there are 2d animation programs out there too, they will include joints/bones, and have keyframes, I use one called spriter it is for construct 2 mostly but it can be used for other engines, and even in some IDE's with API's such as C# w/ XNA or C++ w/ directX or C++ w/ SDL as gif or bmp w/ sprite strips.
When choosing the IDE or game engine you need to think how can I get this to my audience, and what am I willing to learn. This includes engine basics, language basics, introduction to programming, and over all how much will it cost. Visual studios is something most schools try to push onto its students at a college level trying to say the microsoft way is the best way yatta yatta yatta. When the GNU C++ compiler will work just fine which means IDE's such as CodeBlocks, Monodevelop, and even codeevny may work out fine for C++ & C# based games so long as they either use SDL, OpenGL, C# w/ monogames(Similar to XNA).
For game engines it is very much the same when choosing a IDE, there are various selections some with high costs others free to affordable. But with engines there tends to be more limitations on what it can do for you, often some have several different types of licence such as unity, gamemaker, construct 2, and they restrict what you can and can't do based on them. It is easy to use a engine but hard to know what is doing on unless you understand the backbone, what it is based on and what it uses. Once you do that you can fined out how it does certain things and use the enigne outside of its intended use especially if it is extendable with plugins of some kind. I prefer unity or construct 2 depending on wheather I want a 3d or 2d game.
Once you have all the tools you should want to start drawing out ideas on how you want your game to play, and start making art work based around it. Make temporary assets in which you intended to replace, if some are good enough to keep use them. This is to get a general idea not to complete the game. The next thing you will want to do is make a prototype with the assets using the game engine. Some srpites/models you may want animate to some small degree.
Next thing you want to do is play your prototype and think of every instance that sounds are needed, and either make them, purchase rights to sound packs, or download them be wary of licencing agreements on sound eiditng tools, making, or sound asset packs some restrict you from releasing your games certain ways and are very strict often leading to law suits. Just read their terms of service on each one.
Once you have the sounds made, implement them and then begin the long process of story boarding if your game has one. Concept art is a must, it gives a idea of how you would like to make the game not only look but of the overall level design. Remember it isn't the finished work and it can be used in game if re-worked which is often the case in most games, even AAA games.
Once you have all your story boards done and concept art, implement what assets you have made for the game replace assests as needed from what you have from the gameplay prototype. Add more to the gameplay as needed, which means a lot of programming. Adding and implementing the assets as needed.
Often what needs to be done is a layer of polish before you release. Create your levels just as if they were art assests and design unquie assets for every level just to bring out your game, make it feel like a good experience to play.
Quality assurance is needed for a good game, have many testers provide feedback. Listen to their feedback don't just blow them off unless someone needs to. Bugs are a common thing blown off with "around too it" excuses, bugs are very serious issues. If someone finds a bug in testing it is almost certain someone will find it outside of it, meaning the base consumer. Remember it is the testers job to break the game, provide feedback on what is and isn't fun, and what they liked and disliked with the game. Keep your testers in your target audience.