O problema é que, no desenvolvimento da Web, uma grande parte da apresentação normalmente é feita no lado do servidor (usando uma estrutura que incorpora algum tipo de sistema de modelo para gerar HTML para o cliente). Se você deseja fazer jogos interativos, muito do trabalho deve acontecer no lado do cliente (no navegador), portanto, o problema não é tanto como você gera HTML, mas como você faz as coisas se moverem na tela do usuário.
Para esta parte do lado do cliente, como mencionado, sua escolha é Flash ou JS (potencialmente usando o Canvas para o navegador moderno).
Para a parte de comunicação cliente-servidor-db, qualquer tecnologia mencionada seria adequada. O navegador e o servidor podem se comunicar usando chamadas ajax clássicas, se necessário.
Não conheço uma estrutura que possa lidar com os dois problemas, mas provavelmente porque eles são realmente distintos e estão acontecendo no lado diferente do mix cliente-servidor.