You can write a game in any programming language that has graphics libraries, which is almost all of them. It highly depends on what you want to do (2D/3D, mixed? shaders?, dynamic lightning?...) and what level of performance you're expecting. Low-level languages are usually faster, e.g. assembly, C, C++ but using these requires more programming experience to code a game with. Higher-level languages are easier to program with but usually slower. So for high performance games you will need to learn C++, which I think is THE language for top 3D games. You will also need to learn either OpenGL (all platforms) or DirectX (only Windows), because this libraries do all the tedious and slow 3D calculations for you.
For the physics part (bullets, collisions, shockwaves, movement, gravity...) you need to know, as it name implies, physics. You have to modelize physics formulae so the computer can calculate trajectories, collisions, etc... There are also libraries for this, like Unity (as mentioned above). I strongly suggest you check
these tutorials because I think with your level, this is what you are looking for
Good luck with it!
PS: oh and consoles are no different from PCs, they are all computers; have fun!