¿Cómo hago un prototipo de un juego en línea? [cerrado]

8

Me gustaría saber si ustedes conocen bibliotecas, motores o incluso simplemente diseñan patrones que simplifiquen en gran medida la tarea de compartir información y enviar mensajes entre programas en red, para que uno pueda concentrarse en ajustar el juego en lugar de reescribir el código de red, mientras prototipos de juegos en red. Dado que esto es para prototipos, la facilidad de uso y la flexibilidad son mucho más importantes que la velocidad y la seguridad.

Pijama Panda
fuente
1
Bueno, escuché que Unity es capaz de crear juegos de estilo MMO, sin embargo, es un motor que se enfoca en 3D, puedes hacer 2D pero solo tienes que ser un poco creativo (como hacer un avión que contenga el sprite 2D como una textura y configurar la cámara para mirar hacia abajo.) Sé que 3D Buzz hizo un tutorial sobre la programación de Unity MMO, pero no creo que esté disponible para el público. Te sugiero que estés con Paper Prototyping, que es donde intentas crear un juego usando recortes de papel y mover las cosas por tu cuenta, es una buena manera de obtener comentarios sin crear el juego completo, solo maneja los eventos en línea tú mismo.
Benjamin Danger Johnson
1
ZMQ es asombroso para reducir las repeticiones de redes.
Anko el
@BenjaminDangerJohnson He usado Unity, pero sus componentes de red son demasiado específicos para compartir posiciones de objetos. Tienes que escribir tu propio motor encima si quieres usarlo para otra cosa, y eso frustra todo el propósito de la creación de prototipos.
Panda Pyjama
@Anko 0MQ parece interesante, y lo intentaré. Me preocupa que intente simplificar la capa de transporte , lo que probablemente significa que, eventualmente, tendrá que escribir su propio protocolo de aplicación, que es precisamente lo que quiero evitar para la fase de creación de prototipos.
Panda Pyjama
2
Basado en la reescritura, 0MQ (o RabbitMQ) funcionará bien. Ningún sistema de mensajería puede automatizar la replicación de datos de su juego, el contenido del mensaje siempre dependerá de usted para crearlo e interpretarlo. Demonios, en una LAN podría simplemente enviar transmisiones de correo no deseado y cualquiera que esté escuchando podría elegir los paquetes destinados a ellos, los datos podrían ser XML o JSON o un flujo de pares de texto de clave-valor fácil porque para la creación de prototipos localmente se garantiza que tendrá toneladas de ancho de banda. Pero aún tienes que hacer el trabajo de código.
Patrick Hughes el

Respuestas:

4

La forma más fácil de crear un prototipo de un juego en línea, que le permite cambiar rápidamente casi cualquier cosa en el juego (incluso factores como en tiempo real o por turnos), es implementar el prototipo como un juego físico. Reúna a todos los diseñadores en una sala, obtenga un montón de cartas, dados o componentes del juego de mesa, o lo que sea necesario para crear prototipos de las interacciones generales del juego. Entonces juega el juego.

Puede hacer esto sin necesidad de pagar programadores o artistas. Probar diferentes variaciones de las reglas del juego lleva solo uno o dos minutos en lugar de requerir horas o días (¡o semanas!) De trabajo de programación, y puede saber si su juego funciona o no realmente jugando, en lugar de tener que diseñar antes de implementación y hacer conjeturas sobre lo que funcionará o no. Además, a tus programadores todavía les gustará al final del proceso. :)

  • Al hacer esto, recomiendo que al menos una persona actúe como observador; no participar en el juego en sí, y otra persona cuyo trabajo es mantener notas sobre quién hizo qué y cuándo. Esos datos sobre lo que realmente sucedió durante cada juego pueden ser tremendamente útiles al ajustar la regla establecida entre los juegos.

Bolígrafo, papel, dados, cartas, tableros, fichas. Eso es realmente todo lo que necesitas. Y para crear prototipos de un diseño de juego, es mejor que cualquier otra cosa.

Trevor Powell
fuente
66
De lo contrario. Si sus compañeros de trabajo se niegan a hacer lo que es demostrable la manera más rápida y más económica para que la compañía rápidamente iterar el diseño de un prototipo de juego, entonces usted está no en un entorno profesional.
Trevor Powell
2
No convirtamos esto en una discusión en el lugar de trabajo. Ciertamente, la creación de prototipos físicos es muy buena, pero no siempre es posible, y no todos los juegos son físicamente triviales. Por lo general, puedo hackear ideas de juegos 2D para un jugador en unas pocas horas y modificarlas para ver si son interesantes. Solo quiero poder hacer lo mismo para los juegos multijugador.
Panda Pyjama
55
Tú eres quien trajo los ambientes de trabajo, no yo. Si no quieres hablar de ellos, está bien. Pero no espere que me quede en silencio mientras hace afirmaciones de que la creación de prototipos físicos de alguna manera no puede funcionar en entornos de trabajo "profesionales". Porque eso simplemente no es cierto.
Trevor Powell el
2
Además, no todos los juegos son trivialmente físicamente prototipables. Los juegos de rompecabezas y estrategia son fáciles de hacer con su propuesta, pero los juegos de acción, musicales, carreras, deportes y simulación pueden no serlo.
Panda Pyjama
1
Ningún método hará que la creación de prototipos sea "trivial" para cualquier tipo de juego (mucho menos para cada tipo de juego). Doblemente cuando las redes están involucradas. Que no sea "trivial" no es una razón para descartar ningún método de creación de prototipos, porque nunca encontrarás un método que sea trivial.
Trevor Powell
2

relatively simple rule changes such as "let's try this in real time instead of turn-based"Eso me parece un cambio bastante fundamental, no un simple cambio de reglas. Creo que se deben tomar decisiones de diseño fundamentales como esa antes incluso de escribir código de red, ya sea con prototipos fuera de línea o incluso prototipos en papel.

Es decir, prototipo del juego sin hacer ninguna red. Eso significaría escribir un juego que sea multijugador local (es decir, ambos jugadores están en la misma computadora) para probar ideas de juego.

Quiero decir, en mi trabajo, una vez tomamos un juego que ya estaba medio desarrollado por turnos y lo convertimos a tiempo real, y sí, eso implicaba una reescritura masiva del código de red. En retrospectiva, esa era una forma realmente ineficiente de abordar las cosas, y decidimos "nunca más".

jhocking
fuente
En realidad no, si no está en red, cambiar un juego por turnos en tiempo real no es muy difícil. El problema al intentar en la misma computadora es que estás limitado a dos, o tal vez hasta cuatro usuarios al mismo tiempo. De todos modos, ese fue un ejemplo, pero hay muchas otras cosas que quiero probar que definitivamente pueden hacerse más fáciles de probar si realmente están conectadas en red ...
Panda Pyjama
No entiendo el punto de tu primera oración. Eso es exactamente lo que quiero decir, que hacer que el cambio de juego sea fácil si el juego no está en red. Y si hay otras cosas que solo se pueden probar una vez que la red está realmente establecida (por ejemplo, la sincronización a través de Internet), tome tantas decisiones como sea posible antes de comenzar a preocuparse por eso.
jhocking
0

No puedo imaginar la necesidad de tal herramienta porque creo que la lógica de red se realiza mejor a través de un análisis sólido de qué información necesita ir a dónde.

Pero, si me viera obligado a crear tal cosa para alguien que quisiera uno, usaría:

  • el lenguaje de programación Python
  • 0MQ para mensajería (a través de pyzmq )
  • el módulo pickle para enviar datos arbitrarios (como se muestra en un ejemplo aquí )

Esto cubre todos los problemas de transporte confiable, delineación de mensajes y serialización / deserialización. (Pickle no es seguro para otra cosa que no sea el uso de la intranet).

Aún tendrá que configurar la lógica para decidir qué hacer con los datos, tomar e implementar la decisión de qué computadoras se conectan a qué otras computadoras, y así sucesivamente. Y no admite mensajes poco confiables, ni llamadas a procedimientos remotos, ni replicación de estado automática, etc. Es por eso que generalmente es mejor planear lo que desea y escribirlo de esa manera.

Kylotan
fuente