Vou escrever um servidor para um multiplayer online com estes requisitos:
- Jogo baseado em turnos bastante simples (pense em um jogo de cartas) que é jogado inteiramente no servidor (razões de segurança)
- Deve ser capaz de executar vários jogos (mesas) com 4 jogadores por mesa, mas nenhum sistema de lobby é necessário (outro servidor cuida disso)
- Pode suportar o maior número possível de jogadores ao mesmo tempo; Pode precisar de vários servidores
- Conversar entre jogadores
- Conexão de soquete com um cliente Flash / AIR
- Deve ser capaz de se comunicar com outros servidores (para contas de jogadores e outros)
Agora, estou considerando duas opções:
- Smartfox (ou equivalente)
- Uma solução Java personalizada em algo como o Tomcat
Porquê Smartfox?
- Ele lida com várias salas e conversa nativamente
- Presumivelmente, possui soluções para problemas conhecidos de jogos multiplayer
Por que personalizado?
- O Smartfox possui muitas funções desnecessárias, ruins para o desempenho
- Smartfox se comunica com um formato baseado em XML, eu poderia usar um formato binário mais eficiente.
- Não sei se a execução de todo o modelo de jogo no servidor é conveniente com o mecanismo de extensão da Smartfox
- Várias salas e bate-papo são fáceis de reimplementar
- O Tomcat ou um contêiner leve é mais fácil de implantar do que o Smartfox
- Melhor suporte de IDE para desenvolvimento no Tomcat (implantação automática, etc.)
O que você acha? Minhas suposições estão corretas? Você tem algo a acrescentar? Que opção devo escolher (ou talvez uma totalmente diferente)?