Estamos planeando desarrollar un juego de rompecabezas en 2D basado en la cuadrícula, y aunque todavía es muy temprano en las etapas de planificación, nos gustaría tomar nuestras decisiones bien desde el principio.
Nuestra estrategia será hacer que el juego esté disponible para la mayor cantidad de plataformas posible, por ejemplo, PC (Windows, Mac y / o Linux), teléfonos móviles (iPhone y / o teléfonos basados en Android), consolas de juegos (XBLA y / o PSN) La PC tendrá un énfasis, pero creo que esa es la plataforma más flexible, por lo que no debería ser un problema.
Entonces, ¿qué lenguaje de programación, motor de juego, marcos y herramientas generales serían los más adecuados para nuestro objetivo?
PD: Apuesto a que un conjunto de herramientas no cubrirá TODAS ellas, y que todavía habrá algún tipo de esfuerzo de "traducción" para algunas plataformas, pero nos gustaría saber cuáles son las de mayor alcance.
fuente
Respuestas:
Tenemos un marco grueso de C ++ encima de una capa de plataforma delgada, también C ++. Portar un juego a una nueva plataforma es una cuestión de implementar una nueva capa de plataforma, que debido a que es bastante delgada, es bastante rápida.
Además, todas nuestras dependencias son bibliotecas de código abierto y multiplataforma, como SDL, Ogg, LibPNG, etc.
Por ejemplo, tenemos una plataforma Win32 / DirectX, una plataforma SDL / OpenGL para Linux y Mac, trabajando en una plataforma iOS para iPhone / iPad, y también sería posible un puerto Android. Durante un tiempo tuvimos una plataforma Playground, lo que significa que nuestro framework se ejecutó sobre el motor Playground de PlayFirst. Este enfoque en capas le permite aprovechar cualquier interfaz que tenga con el hardware / SO subyacente, siempre que pueda dibujar un quad con textura, obtener algo de entrada y reproducir un sonido, ya está listo.
Seré criticado por esto, pero C ++ es probablemente el lenguaje más multiplataforma que existe. Es probable que cada arquitectura y sistema operativo tenga un compilador de C ++ o que se pueda portar gcc.
fuente
Solo usa Unity
fuente
Me acabo de enterar de NME hace unos días en otra pregunta y pensé que valdría la pena correr la voz. Sobre el tema del soporte multiplataforma, la página principal establece lo siguiente:
Todavía no lo he probado personalmente, pero me pareció interesante por muchas razones:
No tengo mucho tiempo para probarlo en este momento, por lo que si alguien lo hace, sería útil si pudiera dejar algún comentario al respecto.
fuente
Bueno, eso depende, ¿puedes programar en C / C ++, Obj-C y C #?
Unity3D es el mejor tamaño 1 para todos, pero los juegos en 2D pueden ser un poco difíciles (para un juego en 2D de todos modos).
Si está apuntando a Xbox con XNA (también conocida como la tienda independiente), entonces debe usar C #. Pero realmente no puedes usar C # con iOS (excepto con la unidad). Si bien puede usar C / C ++ para iOS, aún necesita usar un poco de Obj-C a menos que use algún tipo de middleware.
Si no usa un motor, creo que lo mejor es escribir su propia capa de abstracción. Para que cualquier llamada a su biblioteca tenga que pasar por esta capa intermedia, por lo que cuando llegue el momento del puerto, solo necesita cambiar la implementación de la capa de abstracción y su código de juego estará más o menos intacto.
fuente
Otras respuestas han cubierto bastante bien las herramientas y los lenguajes, pero desde el punto de vista gráfico, definitivamente recomendaría hacer sus gráficos (2D) en formato vectorial y asegurar que se vean bien en tamaños pequeños y grandes. Demasiados detalles escalan mal, muy pocos detalles escalan mal.
fuente
Moai SDK es un marco de código abierto y actualmente es capaz de publicar en Android, iOS y Chrome. Moai podría extenderse para cubrir hosts como consolas de juegos, dependiendo de su habilidad y conocimiento en esas áreas.
fuente
Yo diría que su mejor opción de idioma sería c #. Puede usarlo para desarrollar en Unity para varias plataformas. c # también es el lenguaje utilizado en MonoTouch (para desarrollar para iOS) y MondoDroid (aún no está disponible, pero le permitirá apuntar a plataformas Android). Y, por supuesto, c # se puede usar en XNA, que le permite apuntar a XBOX 360 y Windows Phones.
Eso prácticamente cubre todo. Todavía habrá trabajo por hacer en el hecho de que usará diferentes herramientas para manipular el contenido del juego, pero su lógica principal del juego no debería necesitar cambiar si todo está en c #.
ah y, por supuesto, c # se usa en Silverlight, lo que también le permitiría apuntar a la web.
fuente
El primer paso probablemente debería ser hacer el juego, al menos un prototipo decente, utilizando sus herramientas / tecnología favoritas, para una sola plataforma (o un pequeño número de plataformas).
Es muy fácil empantanarse en herramientas multiplataforma / desarrollo tecnológico. Centrarse demasiado en la multiplataforma antes de tener un juego es como una optimización prematura. Ciertamente vale la pena pensar desde el principio, pero no gastes todo tu tiempo en eso hasta que realmente tengas un juego.
Intentar admitir todas las plataformas antes de saber si el juego será un éxito suena como una estrategia de alto riesgo, especialmente si es un juego simple de bajo presupuesto (donde el costo de desarrollar sistemas multiplataforma podría superar enormemente el costo de desarrollar el juego ¿sí mismo?).
¿No tendría sentido lanzarlo en un pequeño número de plataformas, ver qué tan bien funciona y determinar si vale la pena admitir las plataformas más desafiantes (por ejemplo, sistemas menos potentes, aquellos con dispositivos de entrada arkward o aquellos que requieren una completa puerto a C # o Java)
fuente
Sé que es impopular, pero AS3 con Starling podría ser su respuesta para dispositivos móviles, computadoras de escritorio y web. Es IMPRESIONANTE y funciona de manera sorprendente. Hice un juego kinect para iOS que también se ejecutaba en Windows y Android. No había nada más que pudiera manejar las necesidades computacionales y era esa plataforma cruzada. Además, puede conectar cualquier proyecto Arduino sin problemas. La mayoría de las personas simplemente no se han dado cuenta de lo que Adobe ha hecho a las herramientas flash / flash builder últimamente ...
fuente
Flash y Java tienen un soporte muy extendido; funcionan en todas las PC (más o menos) y en muchos dispositivos móviles (más o menos), y estoy seguro de que son tan fáciles de portar a una consola como cualquier otro proyecto con influencia de PC.
fuente