Well, personaly I always start with the mechanics of the game. First thing I plan and start making is the engine of my game: Player movement, enemies, power ups, obstacles, multiplayer, etc... during this fase I use mockups for the sprites of pretty much everything. When I'm done withthe mechanics then it's a nice time to get into the graphics of the game like sprites, menus, tilesets, etc...
Then I can make a 'test level' of the game and start imagining what sounds would I want when the player jumps or kills a enemy, the music I want to be played on background and everything audio relationed.
After that I can think about the plot of the game, which will probabily have an effect in the level design of the game which would be my next step.
That's pretty much the "algorithm" that I follow when developing a game, nothing too complex.
Extra credits have a pretty good video(series) with tips of where to start your game: