A programação de jogos é diríamos a mais complexa que existe pois pega vários "ramos" de programação, desde a parte de interação com mouse, teclado, sons, imagem, objetos, etc.
Como já fizeram vários comentários sobre as linguagens de programação, vou tentar dar idéias de como pode ser feito isso...
Existe um estilo clássico de programação desse tipo de jogos que é apelidado de Sistema de Tiles, o que seria isso? É muito simples, trata-se de colisão de blocos. Com assim? é simples, fixa-se por exemplo uma matriz 3x3 e nela em cada 1x você adiciona um objeto e programa a colisão entre eles, por exemplo, coloca o player no quadrado 2x2, e se ele ir para o quadrado 1x2 que possui um fogo qual ação que ocorre, e através disso efeta-se todos os cálculos e salvando-se, ou seja, necessitando de um banco de dados (que ficaria no servidor e não no cliente) para poder dizer onde é o atual 2x2 dele e o que teria no 1x2. Tibia é programado dessa forma, inclusive as vezes fico louco de ver o Tibia comendo tanta memória do computador, eles jogam tudo na memória e é o envia e recebe pacotes intermináveis, eles poderiam melhorar ainda mto nesse quesito em próximo updates, fazer um cliente mais completo pode ajudar em mto na qualidade e capacidades de consoles servidores.
Se quiser mais idéias de como se programa esse tipo de jogo "tabuleiro" e quiser dicas só mandar MP, sou formado em Ciência da Computação e tenho boa vontade...
Se vc quiser um bom exemplo de colisão de blocos, dá uma olhada no seguinte joguinho feito em flash em
http://www.digisonline.com/tacticscore/