Voy a escribir un servidor para un multijugador en línea con estos requisitos:
- Juego basado en turnos bastante simple (piense en un juego de cartas) que se juega completamente en el servidor (razones de seguridad)
- Debe poder ejecutar múltiples juegos (mesas) con 4 jugadores por mesa, pero no se requiere un sistema de lobby (otro servidor se encarga de eso)
- Puede soportar tantos jugadores a la vez como sea posible; Podría necesitar múltiples servidores
- Chat entre jugadores
- Conexión de socket a un cliente Flash / AIR
- Debe poder comunicarse con otros servidores (para cuentas de jugador y demás)
Ahora, estoy considerando dos opciones:
- Smartfox (o equivalente)
- Una solución Java personalizada en algo como Tomcat
¿Por qué Smartfox?
- Maneja múltiples salas y chatea de forma nativa
- Presumiblemente tiene soluciones para problemas de juego multijugador bien conocidos.
¿Por qué personalizado?
- Smartfox tiene muchas funciones innecesarias, malas para el rendimiento
- Smartfox se comunica con un formato basado en XML, podría usar uno binario más eficiente.
- No sé si ejecutar el modelo de juego completo en el servidor es conveniente con el mecanismo de extensión de Smartfox
- Múltiples salas y chat son fáciles de reimplementar
- Tomcat o un contenedor ligero es más fácil de implementar que Smartfox
- Mejor soporte IDE para desarrollar en Tomcat (implementación automática, etc.)
¿Qué piensas? ¿Son correctas mis suposiciones? ¿Tienes algo que añadir? ¿Qué opción debo elegir (o tal vez una completamente diferente)?