¿Es una buena idea usar Laravel y MySQL como back-end para grandes juegos?

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).

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.

Es solo una idea válida si quieres que tu juego esté basado principalmente en texto. Existen algunos juegos web basados ​​en PHP, pero generalmente carecen de los efectos visuales de la mayoría de los juegos modernos. En esencia, los juegos basados ​​en PHP existentes son solo de texto (tal vez algunos tengan una interfaz de usuario basada en gif, pero no efectos animados o 3D). PHP / Laravel pondrá limitaciones extremas de UI en tu juego. Depende de usted si eso funciona para lo que imagina o no.

Si quieres un juego más profesional con un atractivo amplio, querrás usar un lenguaje compilado. Recomendaría inscribirse en una clase de diseño de juegos basada en la web, ya que hay algunos marcos y bibliotecas realmente geniales que pueden hacer que su proyecto despegue de manera rápida y fácil.

More Interesting

¿Qué navegadores admiten de forma nativa Array.prototype.forEach?

¿Qué es un marco de código abierto simple que se puede utilizar para crear una cartera?

¿Cómo encuentro páginas de WordPress creadas dinámicamente con etiquetas?

¿Cuál es la diferencia entre el código JavaScript colocado dentro de una etiqueta de encabezado y el código colocado fuera de una etiqueta de cuerpo?

¿Qué es la etiqueta de plantilla de WordPress?

¿Cómo decides si construir un nuevo sitio desde cero frente a WordPress o Drupal o similar?

Cómo identificar la mejor estrategia de imán de plomo y herramienta de conversión para atraer quiroprácticos para el diseño de sitios web

¿Cómo me enseñaría a diseñar sitios web?

¿Por qué Quora eligió Python para su desarrollo? ¿Qué desafíos tecnológicos enfrentaron los fundadores antes de decidirse por Python en lugar de PHP?

¿Cuáles son las mejores prácticas y herramientas para la colaboración de equipos frontend y backend en una startup web?

Cómo aprender diseño web de forma gratuita

¿Puede agrupar códigos HEX de color en rangos con el fin de buscar por color?

En Node.JS, ¿es una buena idea usar un proceso hijo de Python para manejar tareas pesadas de bloqueo de CPU?

¿Puedo agregar un reproductor de video de YouTube en mi sitio web para reproducir mis videos personalizados colocados en mi servidor, sin tener que alojar mis videos en YouTube? Si es así, ¿cómo?

Cómo ocultar un cuadro de texto usando jQuery