Every video game programming involves numerous steps. Game designing is the longest step in game programming. The storyline, characters, and game physics are all designed in it. 3D modelling, Character design, artwork, gameplay, sounds and music are all part of game designing. Softwares like Cinema 4D, ZBrush are used for character modelling, and game physics. If you want to try it on your own, then you could use Blender which is an OSS, hence free to download and use. Sounds and musics are recorded and edited mostly through Audacity because Audacity is literally perfection even for professionals.
Nowadays, coding a game is done in C++ or in the Unreal Engine. Mobile and Web Games use Objective C or Flash but PC’s and Consoles use C++.The important thing to remember while coding a game is the system’s API levels. Most of the systems like PC’s and Consoles have various API’s supporting them and more API’s eases the job of the coders.
Once a game is designed and coded, game testing begins. No, it’s not fun. Although you may feel game testing is fun, trust me, it’s terrible. Game testing reveals bugs and issues with design. Patches are made and the game goes on for alpha and beta testing.