Hola!
mira... para la pregunta de ... con que se inicia??.... yo creo que la respuesta es con muuuuchas cosas depende de que cosas quieras hacer.... asi que te puedo decir con que me inicié yo.
bueno...
por el principio
1) El lenguaje de programacion...
obiamente que con cualquier lenguaje de programacion es posible hacer un juego pero el mas adecuado o por lo menos es que se usa a nivel profesional o el que utilizan las grandes compañias es el "C" o "C++"... muchos diran!! oye!! el C# tambien es muy bueno.... sip... pero no tengo experiencia con el, asi que no opino.
porque el C++ o C... porque es muy robusto, rapido, multiplataforma, poderoso, y OO.
IMPORTANTE: creo que es mejor conseguir un lenguaje Orientado a Objetos...
resumen... hay que saber C y POO.
como compilador, uso Visual C++ 6.0, creo que es suficiente
2) Utilizar API...
api son cosas que te ayudan desdentenderte de lo complejo y por medio de objetos e interfaces previamente creadas, puedes usar los metodos para hacer de tu programación mas rapida y facil para manejar lo complejo...
me refiero a las APIs que manejan el Video, el Sonido, Red, Mouse, Teclado, etc...
para esos casos tenemos varios DirectX y OpenGL por ejemplo.
yo uso DirectX.
que es DirectX, es un conjunto de APIs que permite hacer transparente todo hardware de tu computador... osea... no tienes que saber que tarjeta de sonido usa cada computador... solo le dices que "toque el sonido".
HARDWARE
l l
DIRECTX
l l
JUEGO
directx estaría al medio de lo que tegas que hacer...
resumen: Aprende DirectX (solo para Windows) o OpenGL.
Eso es para empezar...
ahora...
tu juego sera 2D o 3D!!!
como no sabes ... te recomiendo partir con 2D , haciendo un Tetris, luego un Pacman, luego un Mario y despues de eso puedes hacer cualquier cosa!!!!!!
y de ahi te tiras con 3D...
ahora tienes como para empezar...
que queda un mundo por aprender...
-Manejo de Tiles
-Tiles Animados
-Sprites
-Animaciones
-Musica
-Sonido
-MUCHO!!!!
es muy dificil y agotador... pero muy satisfactorio!!!