jQuery e MooTools são incríveis bibliotecas JavaScript; Eu prefiro o jQuery. Qualquer um irá ajudá-lo no desenvolvimento do jogo JS, se você usar o DOM. Se você optar pela renderização do Canvas, ainda acho que você deve usar uma dessas bibliotecas, mas precisará aprender as funções do Canvas. Aqui está um tutorial que apresenta a tela criando um clone do Breakout, portanto, pode ser exatamente o tipo de coisa que você está procurando (e usa jQuery).
Animar sprites é uma questão de alterar uma imagem src, ou pré-carregar várias imagens e trocá-las, ou em uma tela apenas desenhar quadros de uma animação. As bibliotecas acima podem ajudar em qualquer um desses casos. As bibliotecas também ajudam na entrada (consulte eventos como onkeypress e onmousemove).
Para pré-carregar recursos, pareço alguns jogos que usam uma única imagem "folha de sprite" ( aqui está a do jogo Pacman do Google ). Acredito que eles basicamente criam um DIV de um tamanho de bloco, com a propriedade CSS background-image definida como a folha de sprite e a propriedade background-position definida como o deslocamento do bloco na folha de sprite. Não vi uma biblioteca que faça isso por você, mas o jQuery ou o MooTools podem ajudá-lo a criar dinamicamente o DIV e manipular seu CSS. Caso contrário, o pré-carregamento de imagens é uma questão de criar <img>
tags das imagens que você deseja pré-carregadas e não adicioná-las à página (ou adicioná-las invisivelmente). Aqui está uma postagem no blog que possui algum código para uma função usando o jQuery para pré-carregar imagens para você.
O SoundManager 2 parece ser a biblioteca de sons JS a ser usada; Sei que Vanthia o usa, e o Pacman do Googleusou algo semelhante (ou pelo menos a mesma técnica) ao usar um arquivo Flash oculto na página para reproduzir sons.
Para redes, o jQuery pode manipular o AJAX para você ou, se você quiser muito mais redes em tempo real (e tiver o servidor para isso), procure nos soquetes JavaScript . Eu não sei se há uma biblioteca estável lá fora para isso, mas você pode olhar para esta ou esta . Essencialmente, ele usa um arquivo Java ou Flash oculto na página para que você possa realizar uma verdadeira comunicação de soquete com JavaScript, que é muito mais rápido que a pesquisa AJAX e um pouco mais eficiente que o "AJAX Push" . No entanto, provavelmente, o AJAX Push será o que você deseja e o APE (Ajax Push Engine) é provavelmente a biblioteca a ser usada.
Além disso, aqui está uma palestra técnica do Google sobre "Construindo um mecanismo de jogo baseado em JavaScript para a Web" . Parece arrumado.