TL; DR: escriba su propio backend en C / C ++ y use NoSQL.
Usar PHP y MySQL como backend de un juego es una mala idea. No están diseñados para esto. La razón es una gran diferencia entre la forma en que las aplicaciones web manejan los datos y la forma en que lo hacen los juegos. Las aplicaciones web abren la conexión, envían algunos datos, obtienen la solicitud y la cierran. En su caso, tiene un flujo de datos constante del cliente al servidor, por lo que su conexión está activa todo el tiempo y los datos se envían cuando es necesario.
PHP es un preprocesador. Esto significa que cuando su servidor web, por ejemplo, Apache o nginx, recibe una solicitud, inicia un proceso PHP secundario, que analiza su secuencia de comandos y cuando el proceso se cierra, el servidor web le envía una respuesta. Por lo tanto, cada jugador realizará entre 50 y 300 solicitudes por segundo. Incluso si tienes 10 jugadores, tu servidor seguramente morirá: cada segundo se iniciarán entre 5 y 3000 procesos.
Por lo tanto, al elegir un back-end, necesita algo que se ejecute todo el tiempo, manejando todas las solicitudes por sí mismo. La mejor opción sería escribir su propio backend en C / C ++ usando sockets. De esta manera, su servidor será rápido y capaz de manejar miles de jugadores (si está bien escrito y se ejecuta en un servidor robusto).
- ¿Cuánto tiempo llevará aprender el diseño web?
- ¿Qué puede ser un enfoque innovador / académico para API RESTful para un proyecto de graduación de licenciatura CS?
- ¿En los últimos navegadores se necesita Cache-Busting?
- ¿Cuáles son los componentes necesarios para hacer una API web?
- ¿Cómo es el futuro de las hojas de estilo en cascada?
MySQL también fue diseñado para usar con aplicaciones web. Es demasiado lento para ser un servidor de juegos DB. Por lo tanto, es posible que desee utilizar un software NoSQL DB, como MongoDB, CouchDB, etc. Están diseñados para una alta concurrencia. Además, utilizan su propia forma de comunicación con el servidor de fondo, lo que disminuye el tiempo de gestión de solicitudes.